Commit d6b64c76 authored by John's avatar John

Site updated: 2018-11-03 23:18:43

parent 8baaa096
......@@ -19,7 +19,7 @@
<meta property="og:description" content="Oopsies! Looks like the page you wanted isn’t here. Sorry about that.">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/default.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.176Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Four OH 4">
<meta name="twitter:description" content="Oopsies! Looks like the page you wanted isn’t here. Sorry about that.">
......@@ -75,7 +75,7 @@
<p>Sorry about that.</p>
</div>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.176Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="Oopsies!
Looks like the page you wanted isn’t here.
Sorry about that.">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="My name is John. I’m a Embedded Developer. Over the years I’ve dabbled in a lot of side projects. I have a deep interest in making IoT and…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/default.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.180Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="About Me">
<meta name="twitter:description" content="My name is John. I’m a Embedded Developer. Over the years I’ve dabbled in a lot of side projects. I have a deep interest in making IoT and…">
......@@ -82,8 +82,7 @@
that tracks where clicks came from, what posts they viewed, and for how long. This analytics both respects “Do Not Track” and anonymizes ip addresses. There is no way I can make this an opt-in however if you would like to opt-out click below.
</p>
<iframe style="border: 0; height: 200px; width: 600px;" src="http://anal.thebestjohn.com/index.php?module=CoreAdminHome&action=optOut&language=en&backgroundColor=&fontColor=&fontSize=&fontFamily="><br></iframe></div>
<div class="article__author"
itemscope="" itemprop="author" itemtype="https://schema.org/Person"><img class="article__author__image" src="/images/avatar.jpg" alt="John Warren"><a class="article__author__link" title="About John Warren" rel="author">John Warren</a>
<div class="article__author" itemscope="" itemprop="author" itemtype="https://schema.org/Person"><img class="article__author__image" src="/images/avatar.jpg" alt="John Warren"><a class="article__author__link" title="About John Warren" rel="author">John Warren</a>
<p class="article__author__desc">Just a place to make stuff</p>
<div class="article__author__socials"><a class="article__author__socials__item" href="/atom.xml" title="rss" target="_blank"><i class="fa fa-rss"></i></a></div>
<meta itemprop="name" content="John Warren">
......@@ -91,8 +90,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -108,7 +106,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.180Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="My name is John. I’m a Embedded Developer. Over the years I’ve dabbled in a lot of side projects. I have a deep interest in making IoT and smart home systems, setting up offline backups of...">
<meta itemprop="url" content="/about/index.html">
<meta itemprop="mainEntityOfPage" content="/about/index.html">
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
</section>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
<article class="post-list__item">
......@@ -91,8 +90,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
<article class="post-list__item">
......@@ -91,8 +90,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
</section>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
</section>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -78,8 +78,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
......@@ -11,18 +11,18 @@
<link rel="stylesheet" href="/css/index.css">
<link rel="stylesheet" href="/css/highlights/dracula.css">
<link rel="canonical" href="http://blog.thebestjohn.com/glossary/">
<meta name="description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your…">
<meta name="description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your head.…">
<meta property="og:type" content="website">
<meta property="og:title" content="Glossary">
<meta property="og:url" content="http://blog.thebestjohn.com/glossary/">
<meta property="og:site_name" content="TheBestJohn">
<meta property="og:description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your…">
<meta property="og:description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your head.…">
<meta property="og:locale" content="en">
<meta property="og:image" content="https://imgs.xkcd.com/comics/ten_thousand.png">
<meta property="og:updated_time" content="2018-10-30T19:10:38.292Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.370Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Glossary">
<meta name="twitter:description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your…">
<meta name="twitter:description" content="Comic credit to xkcd! One of my favorites It’s understandable that a lot of the things I talk about on this site may go above your head.…">
<meta name="twitter:image" content="https://imgs.xkcd.com/comics/ten_thousand.png">
<link rel="icon" href="/images/icon.png">
<link rel="alternate" href="/atom.xml" type="application/atom+xml" title="TheBestJohn">
......@@ -72,8 +72,7 @@
<div class="article__contents">
<p><img src="https://imgs.xkcd.com/comics/ten_thousand.png" alt="Ten Thousand"></p>
<h6 id="Comic-credit-to-xkcd-One-of-my-favorites"><a href="#Comic-credit-to-xkcd-One-of-my-favorites" class="headerlink" title="Comic credit to xkcd! One of my favorites"></a>Comic credit to <a href="http://www.xkcd.com" rel="external nofollow noopener noreferrer" target="_blank">xkcd</a>!
One of my favorites
</h6>
One of my favorites</h6>
<p>It’s understandable that a lot of the things I talk about on this site may go above your head. They went above my head when I wanted to learn too! I’m going to try to fill out this glossary with as many blurbs and succinct explanations as
I can about common embedded or programming concepts. There are some that may need more explanation. For those, I may write a “Fundamentals” post to explain more fully. If you’ve ever got a question, don’t hesitate to ask and I’ll see about
putting a term in here.</p>
......@@ -88,8 +87,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -105,10 +103,9 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.292Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.370Z">
<meta itemprop="articleBody" content="
Comic credit to xkcd! One of my
favorites
Comic credit to xkcd! One of my favorites
It’s understandable that a lot of the things I talk about on this site may go above your head. They went above my head when I wanted to learn too! I’m...">
<meta itemprop="url" content="/glossary/index.html">
<meta itemprop="mainEntityOfPage" content="/glossary/index.html">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="ssh-keygen -t rsa ~/runnerboi Generating public/private rsa key pair. …">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/default.jpg">
<meta property="og:updated_time" content="2018-11-02T02:49:24.549Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.578Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn">
<meta name="twitter:description" content="ssh-keygen -t rsa ~/runnerboi Generating public/private rsa key pair. …">
......@@ -67,7 +67,7 @@
<div class="content-inner" itemscope="" itemtype="https://schema.org/Blog">
<article class="article" id="article" itemscope="" itemtype="https://schema.org/BlogPosting">
<h1 class="article__title" itemprop="headline">Untitled</h1>
<div class="article__meta"><time class="article__meta__time" datetime="2018-11-02T02:49:24.549Z" itemprop="datePublished">November 1st 2018</time></div>
<div class="article__meta"><time class="article__meta__time" datetime="2018-11-03T23:17:02.578Z" itemprop="datePublished">November 3rd 2018</time></div>
<hr>
<div class="article__contents">
<div id="rsa">
......@@ -84,8 +84,7 @@
<span data-prompt="Enter a passphrase(empty for no passphrase):" data-strings="" data-action="prompt" data-delay="3000">Enter a passphrase(empty for no passphrase):</span>
<span data-prompt="Enter same passphrase again:" data-strings="" data-action="prompt" data-delay="2000">Enter same passphrase again:</span>
<span data-strings="Your identification has been saved in /Users/jwarren/testtt.<br>Your public key has been saved in /Users/jwarren/testtt.pub.<br>The key fingerprint is:<br>SHA256:wdsn98Q+L96juYXdPFHZ/UN3ucpfO7CqOqwornyNavI<br>The key's randomart image is:<br>+---[RSA 2048]----+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+*|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;..&nbsp;*|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;o&nbsp;o&nbsp;o+.|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+.=+.+|<br>|&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+*++|<br>|oo&nbsp;o..&nbsp;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.=*+|<br>|*=E.&nbsp;...o....=++=|<br>+----[SHA256]-----+"
data-action="print" data-delay="0">
<span data-strings="Your identification has been saved in /Users/jwarren/testtt.<br>Your public key has been saved in /Users/jwarren/testtt.pub.<br>The key fingerprint is:<br>SHA256:wdsn98Q+L96juYXdPFHZ/UN3ucpfO7CqOqwornyNavI<br>The key's randomart image is:<br>+---[RSA 2048]----+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+*|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;..&nbsp;*|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;o&nbsp;o&nbsp;o+.|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+.=+.+|<br>|&nbsp;&nbsp;&nbsp;&nbsp;o&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+*++|<br>|oo&nbsp;o..&nbsp;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.=*+|<br>|*=E.&nbsp;...o....=++=|<br>+----[SHA256]-----+" data-action="print" data-delay="0">
Your identification has been saved in /Users/jwarren/testtt.<br>
Your public key has been saved in /Users/jwarren/testtt.pub.<br>
The key fingerprint is:<br>
......@@ -122,8 +121,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -139,7 +137,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-11-02T02:49:24.549Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.578Z">
<meta itemprop="articleBody" content="
......
......@@ -74,8 +74,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/sonoff-micropython-wonderland/" title="SONOFF MicroPython Wonderland">SONOFF MicroPython Wonderland</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/">ESP8266/ESP32</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/ESP8266-ESP32/Automation/">Automation</a></div>
<p
class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
<p class="post-list__item__description">Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but...</p>
</div>
</article>
<article class="post-list__item">
......@@ -87,8 +86,7 @@
<div class="post-list__item__col-2">
<h3 class="post-list__item__title"><a href="/posts/setting-up-hexo-auto-deploy-from-gitlab/" title="Setting up Hexo Auto-deploy from Gitlab">Setting up Hexo Auto-deploy from Gitlab</a></h3>
<div class="post-list__item__meta"><a class="post-list__item__meta__link" href="/categories/Web-Dev/">Web Dev</a><span class="post-list__item__meta__label">,</span><a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="post-list__item__meta__label">,</span>
<a
class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="post-list__item__meta__link" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
<p class="post-list__item__description">In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to...</p>
</div>
......
function Terminal(settings) {
this.prefixChar = settings.prompt || "";
this.cursorChar = settings.cursor || "|";
this.target = $(settings.target);
this.target = settings.target;
this.autoplay = settings.auto || true;
this.position = -1;
this.continue = true;
var script = []
this.target.find(".history").children("span").each(function(index) {
var datavals = $(this).data();
var spans = this.target.querySelector(".history").getElementsByTagName("span")
for (var i = 0; i < spans.length; i++) {
var datavals = spans[i].dataset;
var scriptNode = {};
for (var key in datavals) {
scriptNode[key] = datavals[key];
// console.log(index+" : "+key + " : " + datavals[key]);
}
if (scriptNode.action) {
script.push(scriptNode);
}
})
}
this.script = script;
this.target.html("");
var head = $("<header>");
var button1 = $("<div>", {
"class": "button green"
});
head.append(button1);
var button2 = $("<div>", {
"class": "button yellow"
});
head.append(button2);
var button3 = $("<div>", {
"class": "button red"
});
head.append(button3);
this.target.append(head);
var sect = $("<section>", {
"class": "terminal"
});
var his = $("<div>", {
"class": "history"
});
sect.append(his);
var pre = $("<span>", {
"class": "prefix"
});
sect.append(pre);
this.target.innerHTML = "";
var head = document.createElement("header")
var button1 = document.createElement("div")
button1.className = "button red"
head.appendChild(button1);
var button2 = document.createElement("div")
button2.className = "button yellow"
head.appendChild(button2);
var button3 = document.createElement("div")
button3.className = "button green"
head.appendChild(button3);
this.target.appendChild(head);
var sect = document.createElement("section")
sect.className = "terminal"
var his = document.createElement("div")
his.className = "history"
sect.appendChild(his);
var pre = document.createElement("span")
pre.className = "prefix"
sect.appendChild(pre);
this.promptName = "prompt" + Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
console.log(this.promptName);
var prom = $("<span>", {
"class": this.promptName
});
sect.append(prom);
this.target.append(sect);
var prom = document.createElement("span")
prom.className = this.promptName
sect.appendChild(prom);
this.target.appendChild(sect);
this.prompt = this.target.find("." + this.promptName);
this.prefix = this.target.find(".prefix");
this.history = this.target.find(".history");
this.prompt = this.target.querySelector("." + this.promptName);
this.prefix = this.target.querySelector(".prefix");
this.history = this.target.querySelector(".history");
this.MoveToHis = function(callback) {
var history = this.history.html();
var history = this.history.innerHTML;
if (this.script[this.position]["action"] == "prompt") {
this.history.html(history + this.prefix.html() + this.prompt.html() + "<br>")
this.history.innerHTML = history + this.prefix.innerHTML + this.prompt.innerHTML + "<br>"
} else {
this.history.html(history + this.prefixChar + this.prompt.html() + "<br>")
this.history.innerHTML = history + this.prefixChar + this.prompt.innerHTML + "<br>"
}
this.position = this.position + 1;
this.prefix.html(this.prefixChar);
this.prompt.text("");
this.prefix.innerHTML = this.prefixChar;
this.prompt.textContent = "";
callback()
}
......@@ -93,13 +82,10 @@ function Terminal(settings) {
setTimeout(function() {
hist(bound)
}, delay);
// $('section.terminal').scrollTop($('section.terminal').height());
}
this.maketyper = function() {
this.prefix.html(this.prefixChar);
this.prefix.innerHTML = this.prefixChar;
var bound = this.TypeCallback.bind(this);
this.typer = new Typed("." + this.promptName, {
......@@ -108,38 +94,33 @@ function Terminal(settings) {
typeSpeed: 30,
onComplete: bound,
})
this.cursor = this.target.find(".typed-cursor");
this.cursor = this.target.querySelector(".typed-cursor");
}
this.maketyper();
this.Prompt = function() {
this.prefix.html(this.script[this.position].prompt);
this.prompt.removeData(); //cleanup
this.cursor.text('');
// console.log(this.script[this.position].prompt);
//
this.prefix.innerHTML = this.script[this.position].prompt;
this.cursor.textContent = "";
this.typer.strings = this.script[this.position]["strings"].split(':;');
this.typer.reset();
// this.prompt.html(this.script[this.position].prompt);
}
this.Print = function() {
this.prefix.html("");
this.prompt.removeData();
this.cursor.text('');
var history = this.history.html();
this.history.html(history + this.script[this.position]["strings"] + "<br>")
this.prefix.innerHTML = "";
this.cursor.textContent = "";
var history = this.history.innerHTML;
this.history.innerHTML = history + this.script[this.position]["strings"] + "<br>"
this.prompt.html();
this.prompt.innerHTML;
var bound = this.Play.bind(this);
this.position = this.position + 1;
section = this.target.find("section");
section.scrollTop(section.height());
section = this.target.querySelector("section");
section.scrollBy(0, section.scrollTopMax)
if (this.position < this.script.length) {
setTimeout(bound, this.script[this.position - 1].delay || 0);
......@@ -148,19 +129,16 @@ function Terminal(settings) {
}
this.Type = function() {
this.prefix.html(this.prefixChar);
this.prompt.removeData(); //cleanup
this.cursor.text('');
this.prefix.html = this.prefixChar;
this.cursor.textContent = "";
this.typer.strings = this.script[this.position]["strings"].split(':;');
this.typer.reset();
}
this.Empty = function() {
this.prefix.html(this.prefixChar);
this.prompt.removeData(); //cleanup
this.cursor.text('');
this.prefix.html = this.prefixChar;
this.cursor.textContent = "";
}
this.Test = function() {
......@@ -191,8 +169,9 @@ function Terminal(settings) {
this.Play = function() {
// scroll to bottom of screen
section = this.target.find("section");
section.scrollTop(section.height());
section = this.target.querySelector(".terminal");
section.scrollBy(0, section.scrollTopMax)
if (this.position >= this.script.length - 1) {
this.position = 0;
......
<h1 id="Font-Awesome-v4-7-0"><a href="#Font-Awesome-v4-7-0" class="headerlink" title="Font Awesome v4.7.0"></a><a href="http://fontawesome.io" rel="external nofollow noopener noreferrer" target="_blank">Font Awesome v4.7.0</a></h1>
<h3 id="The-iconic-font-and-CSS-framework"><a href="#The-iconic-font-and-CSS-framework" class="headerlink" title="The iconic font and CSS framework"></a>The iconic font and CSS framework</h3>
<p>Font Awesome is a full suite of 675 pictographic icons for easy scalable vector graphics on websites,<br>created and maintained by <a href="https://twitter.com/davegandy" rel="external nofollow noopener noreferrer" target="_blank">Dave Gandy</a>.<br>Stay
up to date with the latest release and announcements on Twitter:<br><a href="http://twitter.com/fontawesome" rel="external nofollow noopener noreferrer" target="_blank">@fontawesome</a>.</p>
<p>Font Awesome is a full suite of 675 pictographic icons for easy scalable vector graphics on websites,<br>created and maintained by <a href="https://twitter.com/davegandy" rel="external nofollow noopener noreferrer" target="_blank">Dave Gandy</a>.<br>Stay up to date with the latest release and announcements on
Twitter:<br><a href="http://twitter.com/fontawesome" rel="external nofollow noopener noreferrer" target="_blank">@fontawesome</a>.</p>
<p>Get started at <a href="http://fontawesome.io" rel="external nofollow noopener noreferrer" target="_blank">http://fontawesome.io</a>!</p>
<h2 id="License"><a href="#License" class="headerlink" title="License"></a>License</h2>
<ul>
......@@ -53,8 +53,7 @@
<li>v3.0.0 - all icons redesigned from scratch, optimized for Bootstrap’s 14px default</li>
</ul>
<h2 id="Contributing"><a href="#Contributing" class="headerlink" title="Contributing"></a>Contributing</h2>
<p>Please read through our <a href="https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md" rel="external nofollow noopener noreferrer" target="_blank">contributing guidelines</a>.<br>Included are directions for opening issues, coding standards,
and notes on development.</p>
<p>Please read through our <a href="https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md" rel="external nofollow noopener noreferrer" target="_blank">contributing guidelines</a>.<br>Included are directions for opening issues, coding standards, and notes on development.</p>
<h2 id="Versioning"><a href="#Versioning" class="headerlink" title="Versioning"></a>Versioning</h2>
<p>Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered<br>with the following format:</p>
<p><code>&lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;</code></p>
......
<h1 id="Spoqa-Han-Sans-v2-1-1"><a href="#Spoqa-Han-Sans-v2-1-1" class="headerlink" title="Spoqa Han Sans v2.1.1"></a>Spoqa Han Sans v2.1.1</h1>
<p><a href="https://www.npmjs.com/package/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://badge.fury.io/js/spoqa-han-sans.svg" alt="npm version"></a><br><a href="https://travis-ci.org/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer"
target="_blank"><img src="https://travis-ci.org/spoqa/spoqa-han-sans.svg?branch=master" alt="Build Status"></a><br><a href="https://github.com/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://img.shields.io/github/release/spoqa/spoqa-han-sans.svg" alt="GitHub release"></a></p>
<p><a href="https://www.npmjs.com/package/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://badge.fury.io/js/spoqa-han-sans.svg" alt="npm version"></a><br><a href="https://travis-ci.org/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://travis-ci.org/spoqa/spoqa-han-sans.svg?branch=master" alt="Build Status"></a><br>
<a href="https://github.com/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://img.shields.io/github/release/spoqa/spoqa-han-sans.svg" alt="GitHub release"></a>
</p>
<p>스포카 한 산스는 국문, 영문, 일문, 숫자, 글리프의 어울림이 훌륭합니다.<br>가는 굵기(Thin), 보통 굵기(Regular), 두꺼운 굵기(Bold) 세 가지 자족으로,<br>디지털 환경에서 언어를 아름답게 표현합니다.</p>
<p>스포카 혼자 쓰기엔 지나치게 산뜻한 스포카 한 산스,<br>한글날을 맞이하여 누구나 무료로 쓸 수 있도록 배포합니다.</p>
<h2 id="제작-정보"><a href="#제작-정보" class="headerlink" title="제작 정보"></a>제작 정보</h2>
<p>Spoqa Han Sans에 대한 제작 배경 및 미리보기에 대한 정보는 <a href="http://spoqa-han-sans.com/" rel="external nofollow noopener noreferrer" target="_blank">Spoqa Han Sans Introduction</a>에서 얻으실 수 있습니다.</p>
<h2 id="오픈-소스"><a href="#오픈-소스" class="headerlink" title="오픈 소스"></a>오픈 소스</h2>
<p>Spoqa Han Sans는 Spoqa에서 관리하고 있는 오픈 소스 서체로, <a href="http://scripts.sil.org/OFL" rel="external nofollow noopener noreferrer" target="_blank">SIL Open Font License</a>로 배포되고 있습니다. (<a href="https://github.com/spoqa/spoqa-han-sans/graphs/contributors" rel="external nofollow noopener noreferrer"
target="_blank">프로젝트에 기여한 분들의 목록</a> 참고.)</p>
\ No newline at end of file
<p>Spoqa Han Sans는 Spoqa에서 관리하고 있는 오픈 소스 서체로, <a href="http://scripts.sil.org/OFL" rel="external nofollow noopener noreferrer" target="_blank">SIL Open Font License</a>로 배포되고 있습니다. (<a href="https://github.com/spoqa/spoqa-han-sans/graphs/contributors" rel="external nofollow noopener noreferrer" target="_blank">프로젝트에 기여한 분들의 목록</a> 참고.)</p>
\ No newline at end of file
<h1 id="Spoqa-Han-Sans-v2-1-1"><a href="#Spoqa-Han-Sans-v2-1-1" class="headerlink" title="Spoqa Han Sans v2.1.1"></a>Spoqa Han Sans v2.1.1</h1>
<p><a href="https://www.npmjs.com/package/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://badge.fury.io/js/spoqa-han-sans.svg" alt="npm version"></a><br><a href="https://travis-ci.org/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer"
target="_blank"><img src="https://travis-ci.org/spoqa/spoqa-han-sans.svg?branch=master" alt="Build Status"></a><br><a href="https://github.com/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://img.shields.io/github/release/spoqa/spoqa-han-sans.svg" alt="GitHub release"></a></p>
<p><a href="https://www.npmjs.com/package/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://badge.fury.io/js/spoqa-han-sans.svg" alt="npm version"></a><br><a href="https://travis-ci.org/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://travis-ci.org/spoqa/spoqa-han-sans.svg?branch=master" alt="Build Status"></a><br>
<a href="https://github.com/spoqa/spoqa-han-sans" rel="external nofollow noopener noreferrer" target="_blank"><img src="https://img.shields.io/github/release/spoqa/spoqa-han-sans.svg" alt="GitHub release"></a>
</p>
<p>스포카 한 산스는 국문, 영문, 일문, 숫자, 글리프의 어울림이 훌륭합니다.<br>가는 굵기(Thin), 보통 굵기(Regular), 두꺼운 굵기(Bold) 세 가지 자족으로,<br>디지털 환경에서 언어를 아름답게 표현합니다.</p>
<p>스포카 혼자 쓰기엔 지나치게 산뜻한 스포카 한 산스,<br>한글날을 맞이하여 누구나 무료로 쓸 수 있도록 배포합니다.</p>
<h2 id="제작-정보"><a href="#제작-정보" class="headerlink" title="제작 정보"></a>제작 정보</h2>
<p>Spoqa Han Sans에 대한 제작 배경 및 미리보기에 대한 정보는 <a href="http://spoqa-han-sans.com/" rel="external nofollow noopener noreferrer" target="_blank">Spoqa Han Sans Introduction</a>에서 얻으실 수 있습니다.</p>
<h2 id="오픈-소스"><a href="#오픈-소스" class="headerlink" title="오픈 소스"></a>오픈 소스</h2>
<p>Spoqa Han Sans는 Spoqa에서 관리하고 있는 오픈 소스 서체로, <a href="http://scripts.sil.org/OFL" rel="external nofollow noopener noreferrer" target="_blank">SIL Open Font License</a>로 배포되고 있습니다. (<a href="https://github.com/spoqa/spoqa-han-sans/graphs/contributors" rel="external nofollow noopener noreferrer"
target="_blank">프로젝트에 기여한 분들의 목록</a> 참고.)</p>
\ No newline at end of file
<p>Spoqa Han Sans는 Spoqa에서 관리하고 있는 오픈 소스 서체로, <a href="http://scripts.sil.org/OFL" rel="external nofollow noopener noreferrer" target="_blank">SIL Open Font License</a>로 배포되고 있습니다. (<a href="https://github.com/spoqa/spoqa-han-sans/graphs/contributors" rel="external nofollow noopener noreferrer" target="_blank">프로젝트에 기여한 분들의 목록</a> 참고.)</p>
\ No newline at end of file
......@@ -19,7 +19,7 @@
<meta property="og:description" content="So you want to create your own membrane keypad? Why? well making your own keypad can be useful for many reasons. It’s cheap and easy to…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/matrix/finished.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.180Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Create Own Membrane Matrix Keypad (and Hooking It Up to the Arduino)">
<meta name="twitter:description" content="So you want to create your own membrane keypad? Why? well making your own keypad can be useful for many reasons. It’s cheap and easy to…">
......@@ -153,8 +153,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -170,7 +169,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.180Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="So you want to create your own membrane keypad? Why? well making your own keypad can be useful for many reasons. It’s cheap and easy to do, it can be placed in situations where it may be...">
<meta itemprop="url" content="/posts/matrix-keypad/">
<meta itemprop="mainEntityOfPage" content="/posts/matrix-keypad/">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/gitlabrunner/runner.png">
<meta property="og:updated_time" content="2018-11-03T18:11:22.621Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Setting up Hexo Auto-deploy from Gitlab">
<meta name="twitter:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…">
......@@ -74,8 +74,7 @@
<h1 class="article__title" itemprop="headline">Setting up Hexo Auto-deploy from Gitlab</h1>
<div class="article__meta"><time class="article__meta__time" datetime="2018-04-30T21:40:00.000Z" itemprop="datePublished">April 30th 2018</time>
<div class="article__meta__categories"><a class="article__meta__categories__item" href="/categories/Web-Dev/">Web Dev</a><span class="article__meta__categories__separator">/</span><a class="article__meta__categories__item" href="/categories/Web-Dev/Gitlab/">Gitlab</a><span class="article__meta__categories__separator">/</span>
<a
class="article__meta__categories__item" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
<a class="article__meta__categories__item" href="/categories/Web-Dev/Gitlab/Automation/">Automation</a>
</div>
</div>
<div class="article__contents"><img src="/images/gitlabrunner/runner.png">
......@@ -104,8 +103,7 @@
<span data-prompt="Enter a passphrase(empty for no passphrase):" data-strings="" data-action="prompt" data-delay="3000">Enter a passphrase(empty for no passphrase):<br></span>
<span data-prompt="Enter same passphrase again:" data-strings="" data-action="prompt" data-delay="2000">Enter same passphrase again:<br></span>
<span data-strings="Your identification has been saved in /Users/john/testtt.<br>Your public key has been saved in /Users/john/testtt.pub.<br>The key fingerprint is:<br>SHA256:j+FL93E5e6btfzLZxkrWrZdrBkwqanJQtba1RZwROO8 runnerboi@gitlab<br/>The key's randomart image is:<br/>+---[RSA&nbsp;2048]----+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oo+&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;o&nbsp;+&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;.&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;o&nbsp;.&nbsp;+&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;S&nbsp;o&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;.&nbsp;*&nbsp;o&nbsp;E&nbsp;o.|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;=&nbsp;+&nbsp;.&nbsp;B++|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;=&nbsp;o&nbsp;.&nbsp;=+OO|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;.&nbsp;&nbsp;&nbsp;.&nbsp;B%B|<br>+----[SHA256]-----+"
data-action="print" data-delay="0">
<span data-strings="Your identification has been saved in /Users/john/testtt.<br>Your public key has been saved in /Users/john/testtt.pub.<br>The key fingerprint is:<br>SHA256:j+FL93E5e6btfzLZxkrWrZdrBkwqanJQtba1RZwROO8 runnerboi@gitlab<br/>The key's randomart image is:<br/>+---[RSA&nbsp;2048]----+<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oo+&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;o&nbsp;+&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;.&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;o&nbsp;.&nbsp;+&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;S&nbsp;o&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;.&nbsp;*&nbsp;o&nbsp;E&nbsp;o.|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;=&nbsp;+&nbsp;.&nbsp;B++|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;=&nbsp;o&nbsp;.&nbsp;=+OO|<br>|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;.&nbsp;&nbsp;&nbsp;.&nbsp;B%B|<br>+----[SHA256]-----+" data-action="print" data-delay="0">
Your identification has been saved in /Users/john/testtt.<br>
Your public key has been saved in /Users/john/testtt.pub.<br>
The key fingerprint is:<br>
......@@ -123,8 +121,7 @@
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;.&nbsp;&nbsp;&nbsp;.&nbsp;B%B|<br fix="*">
+----[SHA256]-----+<br></span>
<span data-strings="^3000cat ~/runnerboi.pub^600" data-action="type" data-delay="1000">$ cat ~/runnerboi.pub<br></span>
<span data-strings="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXnZZ0e0BKqH6i15DL+RO68paFABpXH+alHpAuyrhn3dtbPX0lOQJF275kt/qn8wwDRYAQvdWeTGynmj5d5ul1Fo+ONK+kPvAjX1WZowLEjsewWTHC1Qf0CtYphGoXoc1XRNPTu+wW3xPOCQQwz/gnqJeUw9bNpdj+qAo6JCkqnEb7eXWYfNWBckqgPx3R+hVDlrZxDGxoFOHQ06Wp3UkoWV5LUE1++0akjpIApU0pduX1wnBFCVH183oYuOeSftqYx7MBBGlsLO1+WNmOdaFSGqRLkrDT8e95NGdIGZuGovIRHwq+InnYOghOYQYRhgenaZw4u9Rf5hvVCMcvHHd1 runnerboi@gitlab"
data-action="print">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXnZZ0e0BKqH6i15DL+RO68paFABpXH+alHpAuyrhn3dtbPX0lOQJF275kt/qn8wwDRYAQvdWeTGynmj5d5ul1Fo+ONK+kPvAjX1WZowLEjsewWTHC1Qf0CtYphGoXoc1XRNPTu+wW3xPOCQQwz/gnqJeUw9bNpdj+qAo6JCkqnEb7eXWYfNWBckqgPx3R+hVDlrZxDGxoFOHQ06Wp3UkoWV5LUE1++0akjpIApU0pduX1wnBFCVH183oYuOeSftqYx7MBBGlsLO1+WNmOdaFSGqRLkrDT8e95NGdIGZuGovIRHwq+InnYOghOYQYRhgenaZw4u9Rf5hvVCMcvHHd1 runnerboi@gitlab</span>
<span data-strings="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXnZZ0e0BKqH6i15DL+RO68paFABpXH+alHpAuyrhn3dtbPX0lOQJF275kt/qn8wwDRYAQvdWeTGynmj5d5ul1Fo+ONK+kPvAjX1WZowLEjsewWTHC1Qf0CtYphGoXoc1XRNPTu+wW3xPOCQQwz/gnqJeUw9bNpdj+qAo6JCkqnEb7eXWYfNWBckqgPx3R+hVDlrZxDGxoFOHQ06Wp3UkoWV5LUE1++0akjpIApU0pduX1wnBFCVH183oYuOeSftqYx7MBBGlsLO1+WNmOdaFSGqRLkrDT8e95NGdIGZuGovIRHwq+InnYOghOYQYRhgenaZw4u9Rf5hvVCMcvHHd1 runnerboi@gitlab" data-action="print">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXnZZ0e0BKqH6i15DL+RO68paFABpXH+alHpAuyrhn3dtbPX0lOQJF275kt/qn8wwDRYAQvdWeTGynmj5d5ul1Fo+ONK+kPvAjX1WZowLEjsewWTHC1Qf0CtYphGoXoc1XRNPTu+wW3xPOCQQwz/gnqJeUw9bNpdj+qAo6JCkqnEb7eXWYfNWBckqgPx3R+hVDlrZxDGxoFOHQ06Wp3UkoWV5LUE1++0akjpIApU0pduX1wnBFCVH183oYuOeSftqYx7MBBGlsLO1+WNmOdaFSGqRLkrDT8e95NGdIGZuGovIRHwq+InnYOghOYQYRhgenaZw4u9Rf5hvVCMcvHHd1 runnerboi@gitlab</span>
<span data-action="empty"></span>
</div>
......@@ -137,7 +134,7 @@
<p>In the above example, we called it “runnerboi” and that generated us <code>runnerboi</code> and <code>runnerboi.pub</code>. <code>runnerboi</code> is your private key, which we’ll need later, and the <code>.pub</code> file is the public key.
Go ahead and cat that out, copy it to your clipboard and continue by adding our user.</p>
Go ahead and <code>cat</code> that out like the last part of the example, copy it to your clipboard and continue by adding our user.</p>
<p><img src="/images/gitlabrunner/newuser.png" alt="Add new user"></p>
<p>We add the user. It really doesn’t matter the username, email, name etc. We aren’t even going to verify this user. We’re never going to log in or set up a password. We’re just going to make it and use our admin superpowers to set it up.</p>
<p>If you don’t have admin powers on the gitlab instance, I’d imagine you could do this using a legitimate email and go that way but I have no idea how you’d go about setting up a CI on that or even if it’s feasible. So for now we’re going to
......@@ -257,8 +254,7 @@
the file that was generated along with <code>runnerboi.pub</code>, and move over to your <strong>blogsource</strong> repo’s CI/CD settings. Here we make a variable, name it <code>SSH_PRIVATE_KEY</code>, and paste the entire contents of that
file.</p>
<p><img src="/images/gitlabrunner/vars.png" alt="pipeline variables"></p>
<p>While we’re still on this page we want to add some ssh client config values. You can look more into setting up ssh configuration files in <a href="https://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/" rel="external nofollow noopener noreferrer"
target="_blank">this wonderful blog post</a>. For our purposes, we’ve set it up to ignore host key settings for every host, and set up our own gitlab server to use a specific port. If your server is visible to the internet, you’re definitely
<p>While we’re still on this page we want to add some ssh client config values. You can look more into setting up ssh configuration files in <a href="https://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/" rel="external nofollow noopener noreferrer" target="_blank">this wonderful blog post</a>. For our purposes, we’ve set it up to ignore host key settings for every host, and set up our own gitlab server to use a specific port. If your server is visible to the internet, you’re definitely
going to want to change the default port so, if you have, this is where you’d tell your runner about it.</p>
<p>This is what I put under the CI variable for <code>SSH_CONFIG</code>:<br><code>Host *\n\tStrictHostKeyChecking no\n\nHost gitlab.mysite.com\n\tport 2202</code><br><code>\n</code> is code for making a new line and <code>\t</code> is code for
pressing tab. This will parse out to:<br>
......@@ -332,8 +328,7 @@
<p>The “only” part of this will make it only run the “public” scripts when we commit to master.</p>
<h2 id="Using-it"><a href="#Using-it" class="headerlink" title="Using it."></a>Using it.</h2>
<p>Now we’re set up to run our build when we commit to blogsource. Commit these files and the CI should jump into action trying to build your site. Once it’s done, check your “blog” repo and you should have all your files nice and tidy. From
here you can do a git clone or git pull on your live server and your site will be updated. I’m working on making this part more automated for a future post but if you’re impatient you could try something like they did in <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps"
rel="external nofollow noopener noreferrer" target="_blank">this post on digital ocean</a>.</p>
here you can do a git clone or git pull on your live server and your site will be updated. I’m working on making this part more automated for a future post but if you’re impatient you could try something like they did in <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps" rel="external nofollow noopener noreferrer" target="_blank">this post on digital ocean</a>.</p>
<h2 id="Back-to-Gitlab-one-final-time-1"><a href="#Back-to-Gitlab-one-final-time-1" class="headerlink" title="Back to Gitlab one final time"></a>Back to Gitlab one final time</h2>
<p><img src="/images/gitlabrunner/vars.png" alt="pipeline variables"></p>
<p>Add to .known_hosts in order to not get “Host key verification failed…” error</p>
......@@ -353,15 +348,11 @@
</p>
<h2 id="Using-it-1"><a href="#Using-it-1" class="headerlink" title="Using it."></a>Using it.</h2>
<p>But really, I don’t want to have it build every commit… Sometimes I’m just editing drafts and literally nothing will change on the frontend. Well as of right now you need to add <code>[ci-skip]</code> to the commit message for that to happen.
Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits"
rel="external nofollow noopener noreferrer" target="_blank">this merge request</a> to implement that with <code>git push -o ci-skip</code>. Pretty interesting!</p>
<p><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/14499" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/14499</a><br><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/18667"
rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/18667</a></p>
Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits" rel="external nofollow noopener noreferrer" target="_blank">this merge request</a> to implement that with <code>git push -o ci-skip</code>. Pretty interesting!</p>
<p><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/14499" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/14499</a><br><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/18667" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/18667</a></p>
<p>Really though, I don’t want to have it build every commit. Sometimes I’m just editing drafts and literally nothing will change on the frontend. Well as of right now you need to add <code>[ci-skip]</code> to the commit message for that to happen.
Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits"
rel="external nofollow noopener noreferrer" target="_blank">this merge request</a> to implement that with <code>git push -o ci-skip</code>. Pretty interesting!</p>
<p><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/14499" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/14499</a><br><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/18667"
rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/18667</a></p>
Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits" rel="external nofollow noopener noreferrer" target="_blank">this merge request</a> to implement that with <code>git push -o ci-skip</code>. Pretty interesting!</p>
<p><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/14499" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/14499</a><br><a href="https://gitlab.com/gitlab-org/gitlab-ce/issues/18667" rel="external nofollow noopener noreferrer" target="_blank">https://gitlab.com/gitlab-org/gitlab-ce/issues/18667</a></p>
<h2 id="That’s-all-folks"><a href="#That’s-all-folks" class="headerlink" title="That’s all folks!"></a>That’s all folks!</h2>
<p>As always, if you have any questions, just drop me a line and I’ll do my best to get you some answers. Have fun, keep making cool stuff and I’ll see you on the next project!</p>
<!-- useful links
......@@ -374,23 +365,25 @@ https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html
-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
<script src="/js/term.js"></script>
<script type="text/javascript">
var terminals = []
var terminals = [];
$(document).ready(function() {
$(".terminal-window").each(function(index) {
console.log(index, this);
(function() {
// your page initialization code here
// the DOM will be available here
var terms = document.getElementsByClassName("terminal-window");
for (var i = 0; i < terms.length; i++) {
console.log(terms[i], this)
var ts = {}
ts.target = this
ts.target = terms[i]
ts.prompt = "$ "
ts.cursor = "&#9610"
var terminal = new Terminal(ts);
terminals.push(terminal);
})
});
}
})();
</script>
</div>
<div class="article__author" itemscope="" itemprop="author" itemtype="https://schema.org/Person"><img class="article__author__image" src="/images/avatar.jpg" alt="John Warren"><a class="article__author__link" title="About John Warren" rel="author">John Warren</a>
......@@ -401,8 +394,7 @@ https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -418,7 +410,7 @@ https://docs.gitlab.com/ee/user/project/pipelines/job_artifacts.html
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-11-03T18:11:22.621Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to share how I got mine set up to
basically post...">
<meta itemprop="url" content="/posts/setting-up-hexo-auto-deploy-from-gitlab/">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/sonoff/sonoff.jpg">
<meta property="og:updated_time" content="2018-10-31T03:26:20.505Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="SONOFF MicroPython Wonderland">
<meta name="twitter:description" content="Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few…">
......@@ -89,8 +89,7 @@
it to the outlet to see if it still powered on. swapped Tx and Rx. Nothing!… All I have to say now is, make sure you are connecting ground to ground and not “DTR GRN” to ground. GRN looks a lot like GND at first glance. I did however ensure
my FTDI was in 3.3V mode. Make sure you do too!</p>
<p><img src="/images/sonoff/ftdi.jpg" alt="FTDI Basic, Annotations added by me"></p>
<h6 id="CC-BY-2-0-made-available-by-Sparkfun-Electronics"><a href="#CC-BY-2-0-made-available-by-Sparkfun-Electronics" class="headerlink" title="CC BY 2.0 made available by Sparkfun Electronics."></a><a href="https://creativecommons.org/licenses/by/2.0/" rel="external nofollow noopener noreferrer"
target="_blank">CC BY 2.0</a> made available by Sparkfun Electronics.</h6>
<h6 id="CC-BY-2-0-made-available-by-Sparkfun-Electronics"><a href="#CC-BY-2-0-made-available-by-Sparkfun-Electronics" class="headerlink" title="CC BY 2.0 made available by Sparkfun Electronics."></a><a href="https://creativecommons.org/licenses/by/2.0/" rel="external nofollow noopener noreferrer" target="_blank">CC BY 2.0</a> made available by Sparkfun Electronics.</h6>
<p>Once that was sorted it was time to do a quick <code>flash_erase</code> and a <code>flash_write</code> of the new Micropython build for the 8266. Things should be smooth sailing from here. Let’s just do a quick <code>erase_flash</code></p>
<figure class="highlight plain">
<table>
......@@ -148,8 +147,7 @@
<hr>
<h2 id="Failure"><a href="#Failure" class="headerlink" title="Failure."></a>Failure.</h2>
<p><img src="/images/sonoff/ahhhh.gif" alt="ahhhh"></p>
<p>I tried this time and time again on my windows box, swapped over to my more familiar OSX laptop and did it again, tried older pre-compiled bins from <a href="https://micropython.org/download#esp8266" rel="external nofollow noopener noreferrer"
target="_blank">micropython</a>. Nothing was getting me anywhere.</p>
<p>I tried this time and time again on my windows box, swapped over to my more familiar OSX laptop and did it again, tried older pre-compiled bins from <a href="https://micropython.org/download#esp8266" rel="external nofollow noopener noreferrer" target="_blank">micropython</a>. Nothing was getting me anywhere.</p>
<p>Off to the googler (well, the duck, duck, go-er) to figure out what the issue is here. Most of what I find is people flashing Micropython on the SONOFF with no problems. Technically, I did it with no problem according to the flash verification.
What I’m specifically looking for is “SONOFF Micropython no REPL”. That lead me to this solution.</p>
<figure class="highlight plain">
......@@ -178,8 +176,7 @@
</table>
</figure>
</p>
<h5 id="Props-go-to-pythoncoder-for-what-I’m-sure-was-a-very-frustrating-time-figuring-this-out"><a href="#Props-go-to-pythoncoder-for-what-I’m-sure-was-a-very-frustrating-time-figuring-this-out" class="headerlink" title="Props go to pythoncoder for what I’m sure was a very frustrating time figuring this out."></a>Props go to <a href="https://forum.micropython.org/viewtopic.php?f=16&amp;t=3777"
rel="external nofollow noopener noreferrer" target="_blank">pythoncoder</a> for what I’m sure was a very frustrating time figuring this out.</h5>
<h5 id="Props-go-to-pythoncoder-for-what-I’m-sure-was-a-very-frustrating-time-figuring-this-out"><a href="#Props-go-to-pythoncoder-for-what-I’m-sure-was-a-very-frustrating-time-figuring-this-out" class="headerlink" title="Props go to pythoncoder for what I’m sure was a very frustrating time figuring this out."></a>Props go to <a href="https://forum.micropython.org/viewtopic.php?f=16&amp;t=3777" rel="external nofollow noopener noreferrer" target="_blank">pythoncoder</a> for what I’m sure was a very frustrating time figuring this out.</h5>
<p>He’s also posted a fairly detailed write up on why you shouldn’t waste your time with the SONOFF modules as they seem to all be unreliable both in runtime and connectivity. I won’t let that discourage me as I’m not using it for anything mission
critical or non accessible right now.</p>
<h3 id="Back-on-track"><a href="#Back-on-track" class="headerlink" title="Back on track"></a>Back on track</h3>
......@@ -265,8 +262,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -282,7 +278,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-31T03:26:20.505Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="Over the weekend I flashed off the default firmware on a cheap Sonoff basic Internet connected relay. Along the way I ran into a few issues, but eventually got MicroPython running on it.
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/default.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.180Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Static what Generator?!">
<meta name="twitter:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and…">
......@@ -126,8 +126,7 @@
<h3 id="A-Word-on-interactivity"><a href="#A-Word-on-interactivity" class="headerlink" title="A Word on interactivity"></a>A Word on interactivity</h3>
<p>Static sites are very useful for serving your content. However, there are a few times where some interactivity is really useful. For instance, the comments section down below. Well in those cases, we can employ third party services with javascript
to bridge that gap. Discus seems to be very vigilant when it comes to user identity and exploit elimination. They provide an <abbr title="Application Programming Interface">API</abbr> in which you can send them your “shortname” and the
<abbr
title="Uniform Resource Locator">URL</abbr> of your post and they’ll provide a comments section that you can embed there.</p>
<abbr title="Uniform Resource Locator">URL</abbr> of your post and they’ll provide a comments section that you can embed there.</p>
</div>
<div class="article__author" itemscope="" itemprop="author" itemtype="https://schema.org/Person"><img class="article__author__image" src="/images/avatar.jpg" alt="John Warren"><a class="article__author__link" title="About John Warren" rel="author">John Warren</a>
<p class="article__author__desc">Just a place to make stuff</p>
......@@ -137,8 +136,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -154,7 +152,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.180Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive...">
<meta itemprop="url" content="/posts/static-what-generator/">
<meta itemprop="mainEntityOfPage" content="/posts/static-what-generator/">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="If there is one thing that grinds my gears it’s table based design and the “web development” companies that continue to use it. Web…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/tableCode.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.180Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Table based design: Why I loathe it, and you should too!">
<meta name="twitter:description" content="If there is one thing that grinds my gears it’s table based design and the “web development” companies that continue to use it. Web…">
......@@ -107,8 +107,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -124,7 +123,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.180Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="If there is one thing that grinds my gears it’s table based design and the “web development” companies that continue to use it.
Web development is one heck of an industry. It changes, transforms,...">
<meta itemprop="url" content="/posts/table-based-design/">
......
......@@ -19,7 +19,7 @@
<meta property="og:description" content="Well today’s the day! On the eve of Canada day I have made a giant step towards a good version of the plasma speaker! After letting the…">
<meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/plasmaHead.jpg">
<meta property="og:updated_time" content="2018-10-30T19:10:38.180Z">
<meta property="og:updated_time" content="2018-11-03T23:17:02.262Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="The Plasma Speaker Saga pt.III">
<meta name="twitter:description" content="Well today’s the day! On the eve of Canada day I have made a giant step towards a good version of the plasma speaker! After letting the…">
......@@ -106,8 +106,7 @@
<div class="sharer" id="sharer">
<div class="sharer-inner">
<div class="sharer__right"><button class="sharer__item" id="sharer-facebook"><i class="fa fa-facebook-official"></i></button><button class="sharer__item" id="sharer-twitter"><i class="fa fa-twitter"></i></button><button class="sharer__item" id="sharer-pinterest"><i class="fa fa-pinterest"></i></button>
<button
class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
<button class="sharer__item" id="sharer-pocket"><i class="fa fa-get-pocket"></i></button>
</div>
</div>
</div>
......@@ -123,7 +122,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-10-30T19:10:38.180Z">
<meta itemprop="dateModified" content="2018-11-03T23:17:02.262Z">
<meta itemprop="articleBody" content="Well today’s the day! On the eve of Canada day I have made a giant step towards a good version of the plasma speaker! After letting the magic smoke out of countless ICs and Diodes I have finally...">
<meta itemprop="url" content="/posts/the-plasma-speaker-saga-pt-iii/">
<meta itemprop="mainEntityOfPage" content="/posts/the-plasma-speaker-saga-pt-iii/">
......
......@@ -2,72 +2,72 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://blog.thebestjohn.com/posts/setting-up-hexo-auto-deploy-from-gitlab/</loc>
<loc>http://blog.thebestjohn.com/inc/rsa.html</loc>
<lastmod>2018-11-03T18:11:22.621Z</lastmod>
<lastmod>2018-11-03T23:17:02.578Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/inc/rsa.html</loc>
<loc>http://blog.thebestjohn.com/glossary/index.html</loc>
<lastmod>2018-11-02T02:49:24.549Z</lastmod>
<lastmod>2018-11-03T23:17:02.370Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/posts/sonoff-micropython-wonderland/</loc>
<lastmod>2018-10-31T03:26:20.505Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/glossary/index.html</loc>
<loc>http://blog.thebestjohn.com/posts/static-what-generator/</loc>
<lastmod>2018-10-30T19:10:38.292Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/posts/static-what-generator/</loc>
<loc>http://blog.thebestjohn.com/posts/table-based-design/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/posts/matrix-keypad/</loc>
<loc>http://blog.thebestjohn.com/posts/the-plasma-speaker-saga-pt-iii/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/posts/table-based-design/</loc>
<loc>http://blog.thebestjohn.com/posts/setting-up-hexo-auto-deploy-from-gitlab/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/posts/the-plasma-speaker-saga-pt-iii/</loc>
<loc>http://blog.thebestjohn.com/posts/matrix-keypad/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/about/index.html</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
<url>
<loc>http://blog.thebestjohn.com/404/index.html</loc>
<lastmod>2018-10-30T19:10:38.176Z</lastmod>
<lastmod>2018-11-03T23:17:02.262Z</lastmod>
</url>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment