<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Gary's World]]></title><description><![CDATA[Lets see if we can figure it out...]]></description><link>http://127.0.0.1:8000/</link><image><url>http://127.0.0.1:8000/favicon.png</url><title>Gary&apos;s World</title><link>http://127.0.0.1:8000/</link></image><generator>Ghost 2.9</generator><lastBuildDate>Thu, 17 Aug 2023 22:59:01 GMT</lastBuildDate><atom:link href="http://127.0.0.1:8000/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[A game of tic-tac-toe]]></title><description><![CDATA[



Tic-Tac-Toe





Reset

]]></description><link>http://127.0.0.1:8000/a-game-test/</link><guid isPermaLink="false">Ghost__Post__64cbf5e44784910f75f70e90</guid><category><![CDATA[games]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Thu, 03 Aug 2023 19:05:06 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2023/08/video-game-icon-clipart-7.png" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2023/08/video-game-icon-clipart-7.png" alt="A game of tic-tac-toe"/><p>In this post I'm trying to implement a simple game with javascript that can be played within the page of the post...</p><p>8/11/23 - I have updated the code with simple ai to pick best move to make the game more difficult.</p><hr><!--kg-card-begin: html--><!DOCTYPE html>
<html lang="en">

<head>
  <title>Tic-Tac-Toe</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      text-align: center;
    }

    h1 {
      margin-top: 30px;
    }

    .board {
      display: grid;
      grid-template-columns: repeat(3, 100px);
      grid-template-rows: repeat(3, 100px);
      gap: 5px;
      margin-top: 30px;
    }

    .cell {
      width: 100px;
      height: 100px;
      background-color: lightgray;
      border: 1px solid #000;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 36px;
      cursor: pointer;
    }

    button {
      margin-top: 20px;
      font-size: 16px;
      cursor: pointer;
    }
  </style>
</head>

<body>
  <h1>Tic-Tac-Toe</h1>
  <div id="board" class="board">
    <!-- The board will be populated dynamically -->
  </div>
  <button onclick="resetBoard()">Reset</button>
  <script>

      const board = document.getElementById("board");
      let currentPlayer = "X";
      let gameOver = false;

      // Create the game board cells
      for (let i = 0; i < 9; i++) {
        const cell = document.createElement("div");
        cell.className = "cell";
        cell.dataset.index = i;
        board.appendChild(cell);
        cell.addEventListener("click", () => makeMove(cell));
      }

      function makeMove(cell) {
        if (!gameOver && !cell.textContent) {
          cell.textContent = currentPlayer;
          checkWinner(currentPlayer);
          currentPlayer = currentPlayer === "X" ? "O" : "X";

          if (currentPlayer === "O" && !gameOver) {
            setTimeout(computerMove, 500);
          }
        }
      }

      function computerMove() {
        if (!gameOver) {
          const bestMove = findBestMove();
          const chosenCell = document.querySelector(`[data-index="${bestMove.index}"]`);
          makeMove(chosenCell);
        }
      }

      function evaluateBoard(board) {
        // Evaluate the board and return a score
        // You can customize the scoring system based on your preference
        // This is a simplified example where X wins = 10, O wins = -10, draw = 0
        if (checkWin(board, "X")) {
          return 10;
        } else if (checkWin(board, "O")) {
          return -10;
        }
        return 0;
      }

      function checkWin(board, player) {
        const winningCombos = [
          [0, 1, 2], [3, 4, 5], [6, 7, 8], // Rows
          [0, 3, 6], [1, 4, 7], [2, 5, 8], // Columns
          [0, 4, 8], [2, 4, 6] // Diagonals
        ];

        for (const combo of winningCombos) {
          const [a, b, c] = combo;
          if (board[a] === player && board[b] === player && board[c] === player) {
            return true;
          }
        }
        return false;
      }

      function isMoveLeft(board) {
        return board.includes("");
      }

      function minimax(board, depth, isMaximizingPlayer) {
        if (checkWin(board, "X")) {
          return 10 - depth;
        }
        if (checkWin(board, "O")) {
          return depth - 10;
        }
        if (!isMoveLeft(board)) {
          return 0;
        }

        if (isMaximizingPlayer) {
          let bestScore = -Infinity;
          for (let i = 0; i < board.length; i++) {
            if (board[i] === "") {
              board[i] = "X";
              bestScore = Math.max(bestScore, minimax(board, depth + 1, false));
              board[i] = "";
            }
          }
          return bestScore;
        } else {
          let bestScore = Infinity;
          for (let i = 0; i < board.length; i++) {
            if (board[i] === "") {
              board[i] = "O";
              bestScore = Math.min(bestScore, minimax(board, depth + 1, true));
              board[i] = "";
            }
          }
          return bestScore;
        }
      }

      function findBestMove() {
        let bestScore = -Infinity;
        let bestMove = -1;
        const cells = [...document.querySelectorAll(".cell")];
        const board = cells.map(cell => cell.textContent || "");

        for (let i = 0; i < board.length; i++) {
          if (board[i] === "") {
            board[i] = "X";
            const score = minimax(board, 0, false);
            board[i] = "";
            if (score > bestScore) {
              bestScore = score;
              bestMove = i;
            }
          }
        }

        return { index: bestMove };
      }

      function checkWinner(player) {
        const winningCombos = [
          [0, 1, 2], [3, 4, 5], [6, 7, 8], // Rows
          [0, 3, 6], [1, 4, 7], [2, 5, 8], // Columns
          [0, 4, 8], [2, 4, 6] // Diagonals
        ];

        for (const combo of winningCombos) {
          const [a, b, c] = combo;
          const cells = document.querySelectorAll(".cell");
          if (cells[a].textContent === player && cells[b].textContent === player && cells[c].textContent === player) {
            
            document.getElementById('board').children[a].style.backgroundColor = 'green';
            document.getElementById('board').children[b].style.backgroundColor = 'green';
            document.getElementById('board').children[c].style.backgroundColor = 'green';
            
            announceWinner(player);
            return;
          }
        }

        const isTie = [...document.querySelectorAll(".cell")].every(cell => cell.textContent !== "");
        if (isTie) {
          announceTie();
        }
      }

      function announceWinner(player) {
        gameOver = true;
        setTimeout(() => alert(`Player ${player} wins!`), 100);
      }

      function announceTie() {
        gameOver = true;
        setTimeout(() => alert("It's a tie!"), 100);
      }
      
    
      function resetBoard() {
        currentPlayer = "X";
        gameOver = false;

        for (let i = 0; i < board.length; i++) {
          board[i] = "";
        }  

        const cells = document.getElementsByClassName('cell');
        for (let i = 0; i < cells.length; i++) {
          cells[i].innerText = '';
          cells[i].style.backgroundColor = 'lightgray';
        }
      }

  </script>
</body>

</html><!--kg-card-end: html--><hr><p/><p>Test end...  This one tries to win!</p></hr></hr>]]></content:encoded></item><item><title><![CDATA[The retirement booklist]]></title><description><![CDATA[Since retirement I have begun to read in earnest again.  With the following post I will be cataloging the books I have read and plan to add links to how to purchase and possibly some brief descriptions or reviews.  I will clean up the list below and put into a table by author next.  More to come...


Non-fiction

Great Good Thing - Andrew Klavan

Laptop from Hell - Miranda Devine




Fiction

The Expanse - James SA Cory

The Peripheral - William Gibson

Agency - William Gibson

Inferno - Kurt Sc]]></description><link>http://127.0.0.1:8000/the-good-day/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f5</guid><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Tue, 25 Jul 2023 14:18:44 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2023/07/books1-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2023/07/books1-1.jpg" alt="The retirement booklist"/><p>Since retirement I have begun to read in earnest again.  With the following post I will be cataloging the books I have read and plan to add links to how to purchase and possibly some brief descriptions or reviews.  I will clean up the list below and put into a table by author next.  More to come...</p><hr><h2 id="non-fiction">Non-fiction</h2><p>Great Good Thing - Andrew Klavan</p><p>Laptop from Hell - Miranda Devine</p><p/><hr><h2 id="fiction">Fiction</h2><p>The Expanse - James SA Cory</p><p>The Peripheral - William Gibson</p><p>Agency - William Gibson</p><p>Inferno - Kurt Schlichter</p><p>The Wheel of Time - Robert Jordon</p><p>Foundation - Isaac Asimov</p></hr></hr>]]></content:encoded></item><item><title><![CDATA[Ghost update]]></title><description><![CDATA[Just updated to ghost version and gatsby version... so testing a post to see if auto deploy works.

this is a test

some more text and a youtube video...]]></description><link>http://127.0.0.1:8000/ghost-update/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f7</guid><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Wed, 31 May 2023 02:47:26 GMT</pubDate><content:encoded><![CDATA[<p>Just updated to ghost version and gatsby version... so testing a post to see if auto deploy works.</p><hr><p>this is a test</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2023/07/GOPR0243-png.png" class="kg-image" alt="" loading="lazy" width="800" height="600" srcset="https://dohmeier.dyndns.info/content/images/size/w600/2023/07/GOPR0243-png.png 600w, https://dohmeier.dyndns.info/content/images/2023/07/GOPR0243-png.png 800w" sizes="(min-width: 720px) 720px"><figcaption>hopefully it will work</figcaption></img></figure><p>some more text and a youtube video...</p><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/iRIrk8xHhCM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" title="Blinkiies"/></figure></hr>]]></content:encoded></item><item><title><![CDATA[Coming soon]]></title><description><![CDATA[This is Gary's World, a brand new site by Gary Dohmeier II that's just getting started. Things will be up and running here shortly, but you can subscribe in the meantime if you'd like to stay up to date and receive emails when new content is published!]]></description><link>http://127.0.0.1:8000/coming-soon/</link><guid isPermaLink="false">Ghost__Post__6476acdb400a55e73c1eb9ed</guid><category><![CDATA[News]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Wed, 31 May 2023 02:11:39 GMT</pubDate><media:content url="https://static.ghost.org/v4.0.0/images/feature-image.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://static.ghost.org/v4.0.0/images/feature-image.jpg" alt="Coming soon"/><p>This is Gary's World, a brand new site by Gary Dohmeier II that's just getting started. Things will be up and running here shortly, but you can <a href="#/portal/">subscribe</a> in the meantime if you'd like to stay up to date and receive emails when new content is published!</p>]]></content:encoded></item><item><title><![CDATA[Coups and Common Sense]]></title><description><![CDATA[An article by Victor Davis Hanson "The Coup We Never Knew" on the American Greatness website asks many questions that seem to be about common sense.  

Seems to me that many people today have lost their common sense.  They have bought into a crazy idealogy that teaches the opposite of what is true is the truth.  This "woke" cult changes and twists accepted language, pits people against each other and 'cancels' anyone who does not accept its lunacy. If I disagree with wokeness, it does not mean I]]></description><link>http://127.0.0.1:8000/questions/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f9</guid><category><![CDATA[politics]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Wed, 25 Jan 2023 20:31:15 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1554749622-38ef20b71ced?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHwlMjBjb21tb24lMjBzZW5zZXxlbnwwfHx8fDE2NzQ2Nzg4MTk&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1554749622-38ef20b71ced?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDExfHwlMjBjb21tb24lMjBzZW5zZXxlbnwwfHx8fDE2NzQ2Nzg4MTk&ixlib=rb-4.0.3&q=80&w=2000" alt="Coups and Common Sense"/><p>An <a href="https://amgreatness.com/2023/01/04/the-coup-we-never-knew/?ref=dohmeier.dyndns.info">article</a> by Victor Davis Hanson "The Coup We Never Knew" on the American Greatness website asks many questions that seem to be about common sense.  </p><p>Seems to me that many people today have lost their common sense.  They have bought into a crazy idealogy that teaches the opposite of what is true is the truth.  This "woke" cult changes and twists accepted language, pits people against each other and 'cancels' anyone who does not accept its lunacy. If I disagree with wokeness, it does not mean I hate or am phobic, it just means I disagree. The freedom to disagree peacfully is the american way and is common sense. Trying to redefine common sense is nonsence.</p><p>Whether you are liberal or conservative, the <a href="https://amgreatness.com/2023/01/04/the-coup-we-never-knew/?ref=dohmeier.dyndns.info">article</a> by Victor is worth a read and some reflection.</p>]]></content:encoded></item><item><title><![CDATA[Countdown to retirement]]></title><description><![CDATA[As the date for my retirement approached...]]></description><link>http://127.0.0.1:8000/countdown-to-retirement/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f8</guid><category><![CDATA[Technology]]></category><category><![CDATA[retire]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Sat, 07 Jan 2023 07:16:57 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1624953336495-0b5af4d962f2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHJldGlyZXxlbnwwfHx8fDE2NzMxMjIwMjI&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1624953336495-0b5af4d962f2?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHJldGlyZXxlbnwwfHx8fDE2NzMxMjIwMjI&ixlib=rb-4.0.3&q=80&w=2000" alt="Countdown to retirement"/><p/><p>As the date for my retirement approached, I thought it would be fun to create a count down timer to the last day.  I have made a few iterations to it over the last couple of days.  </p><p>The code for the countdown clock is in gitlab <a href="https://gitlab.com/gdohmeier/countdown/?ref=dohmeier.dyndns.info">here</a>.</p><p>Here is the final version...</p><hr><!--kg-card-begin: html-->
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.container {
  position: relative;
  text-align: center;
}

.bottom-left {
  position: absolute;
  bottom: 8px;
  left: 10%;
}

.bottom-right {
  position: absolute;
  bottom: 8px;
  right: 16px;
}

.top-left {
  position: absolute;
  top: 8px;
  left: 16px;
}

.centered {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
</style>

<script>
// Set the date we're counting down to
var countDownDate = new Date("Jan 20, 2023 17:00:00").getTime();

// Update the count down every 1 second
var countdownfunction = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();
  
  // Find the distance between now an the count down date
  var distance = countDownDate - now;
  
  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  
  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";
  
  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(countdownfunction);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
</script>

    
</meta></head>

<body>

<div class="container" style="font-size:20px;font-weight: bold;">
  <img src="https://scifiempire.net/wordpress/wp-content/gallery/the-fifth-element-movie/Leeloo-jump-The-Fifth-Element.JPG" alt="Countdown to retirement" style="width:100%;">
  <div class="bottom-left">
    <table style="font-size:4vw;font-size:18px;font-weight:bold;color:white"><tr>
    <td style="background-image:none;vertical-align:none;border:none">
    So long and thanks for all the fish!</td>
    </tr></table>
  </div>
  <div class="centered">
    <table style="font-size:4vw;font-size:20px;font-weight:bold;color:white"><tr>
    <td style="background-image:none;vertical-align:none;border:none">
    <p>Time left...:</p></td>
    <td style="background-image:none;vertical-align:none;border:none">
    <p id="demo" <="" p=""/></td>
    </tr></table>
  </div> 

</img></div></body><!--kg-card-end: html--></hr>]]></content:encoded></item><item><title><![CDATA[Ginger]]></title><description><![CDATA[Here is a page for the new Puppy addition to our houshold, Ginger.  She is a goolden doodle and is so sweet.

The day we picked Ginger up and she met Gus.



Ginger on a walk with Max.



...more to come.]]></description><link>http://127.0.0.1:8000/ginger/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f6</guid><category><![CDATA[dogs]]></category><category><![CDATA[Getting Started]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Fri, 21 Oct 2022 16:39:22 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2022/10/2022-09-19-20.07.50.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2022/10/2022-09-19-20.07.50.jpg" alt="Ginger"/><p>Here is a page for the new Puppy addition to our houshold, Ginger.  She is a goolden doodle and is so sweet.</p><p>The day we picked Ginger up and she met Gus.</p><figure class="kg-card kg-image-card"><img src="https://dohmeier.dyndns.info/content/images/2022/10/IMG_20221006_085934-2.jpg" class="kg-image" alt="Ginger" loading="lazy"/></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2022/10/IMG_20221006_085939-1.jpeg" class="kg-image" alt="Ginger" loading="lazy"><figcaption>\</figcaption></img></figure><figure class="kg-card kg-image-card"><img src="https://dohmeier.dyndns.info/content/images/2022/10/IMG_20221006_064337-1.jpeg" class="kg-image" alt="Ginger" loading="lazy"/></figure><figure class="kg-card kg-image-card"><img src="https://dohmeier.dyndns.info/content/images/2022/10/IMG_20221006_064257-1.jpeg" class="kg-image" alt="Ginger" loading="lazy"/></figure><p/><p>Ginger on a walk with Max.</p><figure class="kg-card kg-image-card"><img src="https://dohmeier.dyndns.info/content/images/2022/10/image.jpeg" class="kg-image" alt="Ginger" loading="lazy"/></figure><p/><p>...more to come.</p>]]></content:encoded></item><item><title><![CDATA[Summer fun in FL]]></title><description><![CDATA[It's a bright sunny summer day, and the pool is looking really good.]]></description><link>http://127.0.0.1:8000/summer-fun-in-fl/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f4</guid><category><![CDATA[Family]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Tue, 13 Jul 2021 16:15:45 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2021/07/190E469B-D114-45A1-B3F3-9B9A49288CCD.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2021/07/190E469B-D114-45A1-B3F3-9B9A49288CCD.jpeg" alt="Summer fun in FL"/><p>It's a bright sunny summer day, and the pool is looking really good. </p>]]></content:encoded></item><item><title><![CDATA[Happy Birthday Dad!]]></title><description><![CDATA[Tomorrow, my Dad turns 85, but he can't celebrate his birthday with family because he lives in a retirement community... But there was a surprise!]]></description><link>http://127.0.0.1:8000/happy-birthday-dad/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f3</guid><category><![CDATA[Photos]]></category><category><![CDATA[Family]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Mon, 20 Apr 2020 04:56:17 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2020/04/clipforheader.png" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2020/04/clipforheader.png" alt="Happy Birthday Dad!"/><p>This is a short but cool (in my opinion) post.  Tomorrow, my Dad turns 85, but he can't celebrate his birthday with family because he lives in a retirement community.  The community is on lock down due to the Covid-19 pandemic, so no one gets in and they encourage residents not to go out. This protects dad and his neighbors from the virus but makes a birthday difficult.    </p><p>So my Brother Greg came up with an idea to make the best of the situation.  The cool thing is, we had an online birthday celebration and a family get together.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/IMG_2081a.jpg" class="kg-image" alt="Happy Birthday Dad!" loading="lazy"><figcaption>Happy Dad</figcaption></img></figure><p>We had the children, grand children and great grand children all together to wish Happy Birthday and talk to Dad (Poppy) with a video conference.  </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/IMG_2081.jpg" class="kg-image" alt="Happy Birthday Dad!" loading="lazy"><figcaption>The whole crew</figcaption></img></figure><p>We did a zoom birthday party were we all joined together for over an hour and shared what we had been doing and our plans.  We all got to see the great grand babies, one was only 7 weeks old.  One of the grand kids, Bethany, sang a beautiful Happy Birthday. We had a great time of fellowship and sharing and I know it was a real blessing for Dad.  I was was also a great joy for me to see everyone!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/IMG_2084a.jpg" class="kg-image" alt="Happy Birthday Dad!" loading="lazy"><figcaption>Thank you everyone...this was super cool!</figcaption></img></figure>]]></content:encoded></item><item><title><![CDATA[Dog Days with Covid-19]]></title><description><![CDATA[Don’t let the Dog Days of covid-19 get you down.  Count your blessings instead....]]></description><link>http://127.0.0.1:8000/dog-days-with-covid19/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f2</guid><category><![CDATA[Family]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Sat, 11 Apr 2020 19:47:07 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2020/04/E39A7056-4E6B-44D2-A0B8-DEE957F4E108.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2020/04/E39A7056-4E6B-44D2-A0B8-DEE957F4E108.jpeg" alt="Dog Days with Covid-19"/><p>This past week has been interesting.  I work from home, so social distancing (is that even a real thing) has been starting to get to me a bit.  I take a two mile walk on the beach each morning to excercise and clear the cobwebs, but the beach is now closed.  I still take my walk in the neighborhood but its not the same, there isn't that beautiful ocean there reminding me how small I am in the world.  </p><figure class="kg-card kg-image-card"><img src="https://dohmeier.dyndns.info/content/images/2020/04/IMG_1712.jpg" class="kg-image" alt="Dog Days with Covid-19" loading="lazy"/></figure><p>The folks I see along the way on my walk are usually walking with a dog or exercising.  Most are cheerful and wave and share greetings; but we do so as we move to the other side of the sidewalk or street.  So I guess the thing that is getting to me a bit is the idea that we will be forced into this new normal where we have to wear masks, cross to the other side of the sidewalk, or generally avoid contact with people. Since I work from home and don't socialize much I am missing times that I do spend with other people.  And if there has been a time when pets have been a blessing for us and many others - its now... thank God for pets.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/BB125468-71D5-40FD-87DD-727041E14007.jpeg" class="kg-image" alt="Dog Days with Covid-19" loading="lazy"><figcaption>The family kitty Widget</figcaption></img></figure><p>So, for my part, I refuse to live in fear of Covid-19 and I refuse to accept a 'new normal'; I know that this too shall pass.  I beleve that <strong>GOD is in control</strong> of all things and that he loves us and wants the best for us.  So when the dog days of the covid-19 shelter in place get me down, I count my blessings. </p><p>I kiss my wife and tell her I love her and I'm thankful for her.  </p><p>I hug my youngest daughter Danielle, who is staying with us and thank her coming to visit. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2023/05/william.jpeg" class="kg-image" alt="Dog Days with Covid-19" loading="lazy" width="2000" height="1823" srcset="https://dohmeier.dyndns.info/content/images/size/w600/2023/05/william.jpeg 600w, https://dohmeier.dyndns.info/content/images/size/w1000/2023/05/william.jpeg 1000w, https://dohmeier.dyndns.info/content/images/size/w1600/2023/05/william.jpeg 1600w, https://dohmeier.dyndns.info/content/images/size/w2400/2023/05/william.jpeg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Danielle's sweet dog William</figcaption></img></figure><p>I facetime with my granddaughter and sing the Abc's or Old McDonald and thank God that she has an awesome mom and dad, and she is loved and she is safe and happy.</p><p> I thank God that I am able to work from home, that I have a job and house over my head and food to eat.</p><p>I thank God for all of the first responders, doctors, nurses, care givers that put themselves in harms way to help other who are ill.</p><p>I thank God for all the leaders, politicians, administrators and others in the media that are working hard to help others, promote positive thinking and offer constructive ideas and solutions.  </p><p>I pet my dog Gus on the head and rub his belly and give him a biscuit and thank God for his love and loyalty.  I am thankful that even thought these are Dog Days, they are also days full of blessings and dogs...</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/DSC_0889.jpg" class="kg-image" alt="Dog Days with Covid-19" loading="lazy"><figcaption>Our big boy Gus</figcaption></img></figure><p>During this time of Passover and Easter , I thank God for all the blessings he has given me - especially the gift of eternal life thru His son Jesus Christ - who died and rose again for me and my sins and promises eternal life!</p><p/><p/>]]></content:encoded></item><item><title><![CDATA[Gary's first post]]></title><description><![CDATA[This is the first post.  Set up of this Gatsby/Ghost site was not as easy as it could have been with some better instructions...]]></description><link>http://127.0.0.1:8000/garys-first-post/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6f1</guid><category><![CDATA[Getting Started]]></category><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Fri, 03 Apr 2020 03:30:28 GMT</pubDate><media:content url="https://dohmeier.dyndns.info/content/images/2020/04/105500_development_512x512-3.png" medium="image"/><content:encoded><![CDATA[<img src="https://dohmeier.dyndns.info/content/images/2020/04/105500_development_512x512-3.png" alt="Gary's first post"/><p>This is the first post.  Set up of this Gatsby/Ghost site was not as easy as it could have been with some better instructions.  Later, I will do a post of instructions; but for now I want to try out the editor to see how easy it is to use...</p><p>Here is a link to my business <a href="https://itechmb.com/?ref=dohmeier.dyndns.info">Innovative Technology</a> and my <a href="https://www.linkedin.com/in/garydohmeier/?ref=dohmeier.dyndns.info">LinkdIn</a> page and my <a href="https://about.me/garydohmeier?ref=dohmeier.dyndns.info">AboutMe</a> page.</p><p>Last weekend we did take some time to stretch our legs while still social distancing by taking a walk at <a href="https://www.brookgreen.org/?ref=dohmeier.dyndns.info">Brookgreen Gardens</a>.  I took my SLR camera and took some nice pictures.  Check them out below.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/FAF2E4B5-966F-4A02-BBB8-7CF0F1BCC2DB.jpeg" class="kg-image" alt="Gary's first post" loading="lazy"><figcaption>They have some beautiful ponds and fountains with water lilies.</figcaption></img></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://dohmeier.dyndns.info/content/images/2020/04/D5B3DC73-F31E-4EB8-882F-4C42AD4D3F7C.jpeg" class="kg-image" alt="Gary's first post" loading="lazy"><figcaption>There is an abundance of little critters.</figcaption></img></figure><p>Another thing that would be great is to share some videos.  Here is a video I made with my daughters years ago using stop action photography - i think we had a two megapixel camera at the time.  I took us a while to make it but it was a really fun family project.</p><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/iRIrk8xHhCM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" title="Blinkiies"/></figure><p/><p>Another thing I would like to do with this blog is share code and programming projects so I wanted to try that with some teaching code I wrote a while back. I was able to do it with a html &lt;pre&gt; tag and that worked pretty well.</p><!--kg-card-begin: html--><pre>
// gad
// august 2018
// https://repl.it/@gdohmeier/qsort
//

public class qsort {
    private int[] data; 

    private void swap( int i, int j ) {
        int temp; 

        temp = data[i];
        data[i] = data[j];
        data[j] = temp;
    }

    public void quicksort( int left, int right ) {
        int i, last;

        if (left >= right )
            return;
        swap( left, (left + right)/2 );
        last = left; 
        for ( i = left+1; i <= right;="" i++="" )="" if="" (="" data[i]="" <="" data[left]="" swap(="" ++last,="" i="" );="" left,="" last="" quicksort(="" last-1="" last+1,="" right="" }="" quicksort="" private="" void="" printlist="" ()="" {="" int="" length="data.length;" for(int="" length;="" length-1="" system.out.println(data[i]="" +="" ".");="" else="" system.out.print(data[i]="" ",="" ");="" for="" public="" static="" main(string="" parms[]){="" qsort="" sort="new" qsort();="" sort.data="new" int[]{24,2,45,20,56,75,16,56,99,53,12};="" system.out.println("unsorted="" list.");="" sort.printlist();="" sort.quicksort(0,="" length-1);="" system.out.println("sorted="" main="" pre=""><!--kg-card-end: html--><p/><p>Well that's it for now - I will try some more later...</p><p>-g</p><p/></=></pre>]]></content:encoded></item><item><title><![CDATA[Writing posts with Ghost ✍️]]></title><description><![CDATA[Discover familiar formatting options in a functional toolbar and the ability to add dynamic content seamlessly.]]></description><link>http://127.0.0.1:8000/the-editor/</link><guid isPermaLink="false">Ghost__Post__6476b42ee9aa8aeccd5db6ef</guid><dc:creator><![CDATA[Gary Dohmeier II]]></dc:creator><pubDate>Tue, 31 Mar 2020 03:16:47 GMT</pubDate><media:content url="https://static.ghost.org/v3.0.0/images/writing-posts-with-ghost.png" medium="image"/><content:encoded><![CDATA[<h2 id="just-start-writing">Just start writing</h2><img src="https://static.ghost.org/v3.0.0/images/writing-posts-with-ghost.png" alt="Writing posts with Ghost ✍️"/><p>Ghost has a powerful visual editor with familiar formatting options, as well as the ability to add dynamic content.</p><p>Select your text to add formatting such as headers or to create links. Or use Markdown shortcuts to do the work for you - if that's your thing. </p><figure class="kg-card kg-image-card"><img src="https://static.ghost.org/v2.0.0/images/formatting-editor-demo.gif" class="kg-image" alt="Writing posts with Ghost ✍️" loading="lazy"/></figure><h2 id="rich-editing-at-your-fingertips">Rich editing at your fingertips</h2><p>The editor can also handle rich media objects, called <strong>cards</strong>, which can be organised and re-ordered using drag and drop. </p><p>You can insert a card either by clicking the  <code>+</code>  button, or typing  <code>/</code>  on a new line to search for a particular card. This allows you to efficiently insert<strong> images</strong>, <strong>markdown</strong>, <strong>html, embeds </strong>and more.</p><p><strong>For example</strong>:</p><ul><li>Insert a video from YouTube directly by pasting the URL</li><li>Create unique content like buttons or forms using the HTML card</li><li>Need to share some code? Embed code blocks directly </li></ul><pre><code>&lt;header class="site-header outer"&gt;
    &lt;div class="inner"&gt;
        {{&gt; "site-nav"}}
    &lt;/div&gt;
&lt;/header&gt;</code></pre><p>It's also possible to share links from across the web in a visual way using bookmark cards that automatically render information from a websites meta data. Paste any URL to try it out: </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://ghost.org/?ref=dohmeier.dyndns.info"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Ghost: The #1 open source headless Node.js CMS</div><div class="kg-bookmark-description">The world’s most popular modern open source publishing platform. A headless Node.js CMS used by Apple, Sky News, Tinder and thousands more. MIT licensed, with 30k+ stars on Github.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ghost.org/icons/icon-512x512.png?v&#x3D;188b8b6d743c6338ba2eab2e35bab4f5" alt="Writing posts with Ghost ✍️"><span class="kg-bookmark-author">Ghost</span></img></div></div><div class="kg-bookmark-thumbnail"><img src="https://ghost.org/images/meta/Ghost.png" alt="Writing posts with Ghost ✍️"/></div></a></figure><h2 id="working-with-images-in-posts">Working with images in posts</h2><p>You can add images to your posts in many ways:</p><ul><li>Upload from your computer</li><li>Click and drag an image into the browser</li><li>Paste directly into the editor from your clipboard</li><li>Insert using a URL</li></ul><h3 id="image-sizes">Image sizes</h3><p>Once inserted you can blend images beautifully into your content at different sizes and add captions and alt tags wherever needed.</p><figure class="kg-card kg-image-card"><img src="https://static.ghost.org/v3.0.0/images/image-sizes-ghost-editor.png" class="kg-image" alt="Writing posts with Ghost ✍️" loading="lazy"/></figure><h3 id="image-galleries">Image galleries</h3><p>Tell visual stories using the gallery card to add up to 9 images that will display as a responsive image gallery: </p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://static.ghost.org/v3.0.0/images/gallery-sample-1.jpg" width="6000" height="4000" loading="lazy" alt="Writing posts with Ghost ✍️"/></div><div class="kg-gallery-image"><img src="https://static.ghost.org/v3.0.0/images/gallery-sample-2.jpg" width="5746" height="3831" loading="lazy" alt="Writing posts with Ghost ✍️"/></div><div class="kg-gallery-image"><img src="https://static.ghost.org/v3.0.0/images/gallery-sample-3.jpg" width="5872" height="3915" loading="lazy" alt="Writing posts with Ghost ✍️"/></div></div></div></figure><h3 id="image-optimisation">Image optimisation</h3><p>Ghost will automatically resize and optimise your images with lossless compression. Your posts will be fully optimised for the web without any extra effort on your part.</p><h2 id="next-publishing-options">Next: Publishing Options</h2><p>Once your post is looking good, you'll want to use the <a href="https://dohmeier.dyndns.info/publishing-options/">publishing options</a> to ensure it gets distributed in the right places, with custom meta data, feature images and more.</p>]]></content:encoded></item></channel></rss>