diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..37f5eaa --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'github-pages', group: :jekyll_plugins diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..2545605 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,248 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.5) + dnsruby (1.61.2) + addressable (~> 2.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.12.0) + ffi (>= 1.3.0) + eventmachine (1.2.7-x64-mingw32) + execjs (2.7.0) + faraday (0.15.4) + multipart-post (>= 1.2, < 3) + ffi (1.10.0-x64-mingw32) + forwardable-extended (2.6.0) + gemoji (3.0.0) + github-pages (197) + activesupport (= 4.2.10) + github-pages-health-check (= 1.16.1) + jekyll (= 3.7.4) + jekyll-avatar (= 0.6.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.5) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.11.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.12.1) + jekyll-mentions (= 1.4.1) + jekyll-optional-front-matter (= 0.3.0) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.2.0) + jekyll-redirect-from (= 0.14.0) + jekyll-relative-links (= 0.6.0) + jekyll-remote-theme (= 0.3.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.5.0) + jekyll-sitemap (= 1.2.0) + jekyll-swiss (= 0.4.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.3) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.1) + jemoji (= 0.10.2) + kramdown (= 1.17.0) + liquid (= 4.0.0) + listen (= 3.1.5) + mercenary (~> 0.3) + minima (= 2.5.0) + nokogiri (>= 1.8.5, < 2.0) + rouge (= 2.2.1) + terminal-table (~> 1.4) + github-pages-health-check (1.16.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.10.0) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.4) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.6.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.5) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1) + rouge (~> 2) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.11.0) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.12.1) + jekyll (~> 3.4) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.4.1) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-optional-front-matter (0.3.0) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.2.0) + jekyll (~> 3.0) + jekyll-redirect-from (0.14.0) + jekyll (~> 3.3) + jekyll-relative-links (0.6.0) + jekyll (~> 3.3) + jekyll-remote-theme (0.3.1) + jekyll (~> 3.5) + rubyzip (>= 1.2.1, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.5.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-swiss (0.4.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.3) + jekyll (~> 3.5) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.1) + jekyll (~> 3.3) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.10.2) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.17.0) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.4.0) + minima (2.5.0) + jekyll (~> 3.5) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.11.3) + multipart-post (2.0.0) + nokogiri (1.10.2-x64-mingw32) + mini_portile2 (~> 2.4.0) + octokit (4.14.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (3.0.3) + rb-fsevent (0.10.3) + rb-inotify (0.10.0) + ffi (~> 1.0) + rouge (2.2.1) + ruby-enum (0.7.2) + i18n + ruby_dep (1.5.0) + rubyzip (1.2.2) + safe_yaml (1.0.5) + sass (3.7.3) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.3.1) + ethon (>= 0.9.0) + tzinfo (1.2.5) + thread_safe (~> 0.1) + unicode-display_width (1.5.0) + +PLATFORMS + x64-mingw32 + +DEPENDENCIES + github-pages + +BUNDLED WITH + 2.0.1 diff --git a/_config.yml b/_config.yml index fc24e7a..b5b5f3d 100644 --- a/_config.yml +++ b/_config.yml @@ -1 +1,2 @@ -theme: jekyll-theme-hacker \ No newline at end of file +theme: jekyll-theme-tactile +title: josiah ledbetter diff --git a/_layouts/_site/defaults.html b/_layouts/_site/defaults.html new file mode 100644 index 0000000..7a67cda --- /dev/null +++ b/_layouts/_site/defaults.html @@ -0,0 +1,62 @@ + + + + + + + + + + +{% seo %} + + + +
+
+ +
+ + +
+
+ {% if site.show_downloads %} + Download .zip + Download .tar.gz + {% endif %} + {% if site.github.public %} + {% if site.github.is_project_page %} + View on GitHub + {% else %} + View on GitHub + {% endif %} + {% endif %} +
+
+
+ {{ content }} +
+ + + +
+
+ + {% if site.google_analytics %} + + {% endif %} + + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..0ed7a0c --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,59 @@ + + + + + + + + + + +{% seo %} + + + +
+
+ +
+

{{ page.title | default: site.title | default: site.github.repository_name }}

+
+
+ {% if site.show_downloads %} + Download .zip + Download .tar.gz + {% endif %} + {% if site.github.public %} + {% if site.github.is_project_page %} + View on GitHub + {% else %} + View on GitHub + {% endif %} + {% endif %} +
+
+
+ {{ content }} +
+ + + +
+
+ + {% if site.google_analytics %} + + {% endif %} + + diff --git a/_site/README.md b/_site/README.md new file mode 100644 index 0000000..d0f2b95 --- /dev/null +++ b/_site/README.md @@ -0,0 +1 @@ +# me.jowj.net \ No newline at end of file diff --git a/_site/assets/css/print.css b/_site/assets/css/print.css new file mode 100644 index 0000000..4b19b67 --- /dev/null +++ b/_site/assets/css/print.css @@ -0,0 +1,228 @@ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + padding: 0; + margin: 0; + font: inherit; + font-size: 100%; + vertical-align: baseline; + border: 0; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +body { + font-family: 'Helvetica Neue', Helvetica, Arial, serif; + font-size: 13px; + line-height: 1.5; + color: #000; +} + +a { + font-weight: bold; + color: #d5000d; +} + +header { + padding-top: 35px; + padding-bottom: 10px; +} + +header h1 { + font-size: 48px; + font-weight: bold; + line-height: 1.2; + color: #303030; + letter-spacing: -1px; +} + +header h2 { + font-size: 24px; + font-weight: normal; + line-height: 1.3; + color: #aaa; + letter-spacing: -1px; +} +#downloads { + display: none; +} +#main_content { + padding-top: 20px; +} + +code, pre { + margin-bottom: 30px; + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; + font-size: 12px; + color: #222; +} + +code { + padding: 0 3px; +} + +pre { + padding: 20px; + overflow: auto; + border: solid 1px #ddd; +} +pre code { + padding: 0; +} + +ul, ol, dl { + margin-bottom: 20px; +} + + +/* COMMON STYLES */ + +table { + width: 100%; + border: 1px solid #ebebeb; +} + +th { + font-weight: 500; +} + +td { + font-weight: 300; + text-align: center; + border: 1px solid #ebebeb; +} + +form { + padding: 20px; + background: #f2f2f2; + +} + + +/* GENERAL ELEMENT TYPE STYLES */ + +h1 { + font-size: 2.8em; +} + +h2 { + margin-bottom: 8px; + font-size: 22px; + font-weight: bold; + color: #303030; +} + +h3 { + margin-bottom: 8px; + font-size: 18px; + font-weight: bold; + color: #d5000d; +} + +h4 { + font-size: 16px; + font-weight: bold; + color: #303030; +} + +h5 { + font-size: 1em; + color: #303030; +} + +h6 { + font-size: .8em; + color: #303030; +} + +p { + margin-bottom: 20px; + font-weight: 300; +} + +a { + text-decoration: none; +} + +p a { + font-weight: 400; +} + +blockquote { + padding: 0 0 0 30px; + margin-bottom: 20px; + font-size: 1.6em; + border-left: 10px solid #e9e9e9; +} + +ul li { + list-style-position: inside; + list-style: disc; + padding-left: 20px; +} + +ol li { + list-style-position: inside; + list-style: decimal; + padding-left: 3px; +} + +dl dd { + font-style: italic; + font-weight: 100; +} + +footer { + padding-top: 20px; + padding-bottom: 30px; + margin-top: 40px; + font-size: 13px; + color: #aaa; +} + +footer a { + color: #666; +} + +/* MISC */ +.clearfix:after { + display: block; + height: 0; + clear: both; + visibility: hidden; + content: '.'; +} + +.clearfix {display: inline-block;} +* html .clearfix {height: 1%;} +.clearfix {display: block;} diff --git a/_site/assets/css/style.css b/_site/assets/css/style.css new file mode 100644 index 0000000..87ed322 --- /dev/null +++ b/_site/assets/css/style.css @@ -0,0 +1,185 @@ +/* generated by rouge http://rouge.jneen.net/ original base16 by Chris Kempson (https://github.com/chriskempson/base16) +*/ +@import url("https://fonts.googleapis.com/css?family=Chivo:900"); +.highlight table td { padding: 5px; } + +.highlight table pre { margin: 0; } + +.highlight, .highlight .w { color: #d0d0d0; } + +.highlight .err { color: #151515; background-color: #ac4142; } + +.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs { color: #888; } + +.highlight .cp { color: #f4bf75; } + +.highlight .nt { color: #f4bf75; } + +.highlight .o, .highlight .ow { color: #d0d0d0; } + +.highlight .p, .highlight .pi { color: #d0d0d0; } + +.highlight .gi { color: #90a959; } + +.highlight .gd { color: #ac4142; } + +.highlight .gh { color: #6a9fb5; font-weight: bold; } + +.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv { color: #aa759f; } + +.highlight .kc { color: #d28445; } + +.highlight .kt { color: #d28445; } + +.highlight .kd { color: #d28445; } + +.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 { color: #90a959; } + +.highlight .sr { color: #75b5aa; } + +.highlight .si { color: #8f5536; } + +.highlight .se { color: #8f5536; } + +.highlight .nn { color: #f4bf75; } + +.highlight .nc { color: #f4bf75; } + +.highlight .no { color: #f4bf75; } + +.highlight .na { color: #6a9fb5; } + +.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx { color: #90a959; } + +.highlight .ss { color: #90a959; } + +/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) +*/ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { padding: 0; margin: 0; font: inherit; font-size: 100%; vertical-align: baseline; border: 0; } + +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } + +body { line-height: 1; } + +ol, ul { list-style: none; } + +blockquote, q { quotes: none; } + +blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } + +table { border-spacing: 0; border-collapse: collapse; } + +/* LAYOUT STYLES */ +body { font-family: 'Helvetica Neue', Helvetica, Arial, serif; font-size: 1em; line-height: 1.5; color: #6d6d6d; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); background: #e7e7e7 url(../images/body-bg.png) 0 0 repeat; } + +a { color: #d5000d; } + +a:hover { color: #c5000c; } + +header { padding-top: 35px; padding-bottom: 25px; } + +header h1 { font-family: 'Chivo', 'Helvetica Neue', Helvetica, Arial, serif; font-size: 48px; font-weight: 900; line-height: 1.2; color: #303030; letter-spacing: -1px; } + +header h2 { font-size: 24px; font-weight: normal; line-height: 1.3; color: #aaa; letter-spacing: -1px; } + +#container { min-height: 595px; background: transparent url(../images/highlight-bg.jpg) 50% 0 no-repeat; } + +.inner { width: 620px; margin: 0 auto; } + +#container .inner img { max-width: 100%; } + +#downloads { margin-bottom: 40px; } + +a.button { display: block; float: left; width: 179px; padding: 12px 8px 12px 8px; margin-right: 14px; font-size: 15px; font-weight: bold; line-height: 25px; color: #303030; background: #fdfdfd; /* Old browsers */ background: -moz-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fdfdfd), color-stop(100%, #f2f2f2)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* IE10+ */ background: linear-gradient(to top, #fdfdfd 0%, #f2f2f2 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f2f2f2',GradientType=0 ); /* IE6-9 */ border-top: solid 1px #cbcbcb; border-right: solid 1px #b7b7b7; border-bottom: solid 1px #b3b3b3; border-left: solid 1px #b7b7b7; border-radius: 30px; -webkit-box-shadow: 10px 10px 5px #888; -moz-box-shadow: 10px 10px 5px #888; box-shadow: 0px 1px 5px #e8e8e8; -moz-border-radius: 30px; -webkit-border-radius: 30px; } + +a.button:hover { background: #fafafa; /* Old browsers */ background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fdfdfd), color-stop(100%, #f6f6f6)); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* IE10+ */ background: linear-gradient(to top, #fdfdfd 0%, #f6f6f6, 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */ border-top: solid 1px #b7b7b7; border-right: solid 1px #b3b3b3; border-bottom: solid 1px #b3b3b3; border-left: solid 1px #b3b3b3; } + +a.button span { display: block; height: 23px; padding-left: 50px; } + +#download-zip span { background: transparent url(../images/zip-icon.png) 12px 50% no-repeat; } + +#download-tar-gz span { background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat; } + +#view-on-github span { background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat; } + +#view-on-github { margin-right: 0; } + +code, pre { margin-bottom: 30px; font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal; font-size: 14px; color: #222; } + +code { padding: 0 3px; background-color: #f2f2f2; border: solid 1px #ddd; } + +pre { padding: 20px; overflow: auto; color: #f2f2f2; text-shadow: none; background: #303030; } + +pre code { padding: 0; color: #f2f2f2; background-color: #303030; border: none; } + +ul, ol, dl { margin-bottom: 20px; } + +/* COMMON STYLES */ +hr { height: 1px; padding-bottom: 1em; margin-top: 1em; line-height: 1px; background: transparent url("../images/hr.png") 50% 0 no-repeat; border: none; } + +strong { font-weight: bold; } + +em { font-style: italic; } + +table { width: 100%; border: 1px solid #ebebeb; } + +th { font-weight: 500; } + +td { font-weight: 300; text-align: center; border: 1px solid #ebebeb; } + +form { padding: 20px; background: #f2f2f2; } + +/* GENERAL ELEMENT TYPE STYLES */ +h1 { font-size: 32px; } + +h2 { margin-bottom: 8px; font-size: 22px; font-weight: bold; color: #303030; } + +h3 { margin-bottom: 8px; font-size: 18px; font-weight: bold; color: #d5000d; } + +h4 { font-size: 16px; font-weight: bold; color: #303030; } + +h5 { font-size: 1em; color: #303030; } + +h6 { font-size: .8em; color: #303030; } + +p { margin-bottom: 20px; font-weight: 300; } + +a { text-decoration: none; } + +p a { font-weight: 400; } + +blockquote { padding: 0 0 0 30px; margin-bottom: 20px; font-size: 1.6em; border-left: 10px solid #e9e9e9; } + +ul li { list-style-position: inside; list-style: disc; padding-left: 20px; } + +ol li { list-style-position: inside; list-style: decimal; padding-left: 3px; } + +dl dt { color: #303030; } + +footer { padding-top: 20px; padding-bottom: 30px; margin-top: 40px; font-size: 13px; color: #aaa; background: transparent url("../images/hr.png") 0 0 no-repeat; } + +footer a { color: #666; } + +footer a:hover { color: #444; } + +/* MISC */ +.clearfix:after { display: block; height: 0; clear: both; visibility: hidden; content: '.'; } + +.clearfix { display: inline-block; } + +* html .clearfix { height: 1%; } + +.clearfix { display: block; } + +/* #Media Queries +================================================== */ +/* Smaller than standard 960 (devices and browsers) */ +/* Tablet Portrait size to standard 960 (devices and browsers) */ +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { header { padding-top: 10px; padding-bottom: 10px; } + #downloads { margin-bottom: 25px; } + #download-zip, #download-tar-gz { display: none; } + .inner { width: 94%; margin: 0 auto; } } +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ diff --git a/_site/assets/images/body-bg.png b/_site/assets/images/body-bg.png new file mode 100644 index 0000000..5e8c4c2 Binary files /dev/null and b/_site/assets/images/body-bg.png differ diff --git a/_site/assets/images/highlight-bg.jpg b/_site/assets/images/highlight-bg.jpg new file mode 100644 index 0000000..355e089 Binary files /dev/null and b/_site/assets/images/highlight-bg.jpg differ diff --git a/_site/assets/images/hr.png b/_site/assets/images/hr.png new file mode 100644 index 0000000..d32f689 Binary files /dev/null and b/_site/assets/images/hr.png differ diff --git a/_site/assets/images/octocat-icon.png b/_site/assets/images/octocat-icon.png new file mode 100644 index 0000000..2406608 Binary files /dev/null and b/_site/assets/images/octocat-icon.png differ diff --git a/_site/assets/images/tar-gz-icon.png b/_site/assets/images/tar-gz-icon.png new file mode 100644 index 0000000..502e67d Binary files /dev/null and b/_site/assets/images/tar-gz-icon.png differ diff --git a/_site/assets/images/zip-icon.png b/_site/assets/images/zip-icon.png new file mode 100644 index 0000000..732aced Binary files /dev/null and b/_site/assets/images/zip-icon.png differ diff --git a/_site/index.html b/_site/index.html new file mode 100644 index 0000000..5409b28 --- /dev/null +++ b/_site/index.html @@ -0,0 +1,59 @@ + + + + + + + + + + + +josiah ledbetter | Public Blog + + + + + + + + + + + + +
+
+ +
+

josiah ledbetter

+
+
+ + +
+
+
+

hi you have reached the landingpage of me, the person whose name is above this text. please click a link below if you are curious about me:

+ + + +
+ + + +
+
+ + + + diff --git a/_site/index.md b/_site/index.md new file mode 100644 index 0000000..bc98901 --- /dev/null +++ b/_site/index.md @@ -0,0 +1,5 @@ +hi you have reached the landingpage of me, the person whose name is above this text. please click a link below if you are curious about me: + +* [projects](/projects.md) +* [personal](/personal.md) +* [resume](/josiah-resume.pdf) diff --git a/_site/josiah-resume.pdf b/_site/josiah-resume.pdf new file mode 100644 index 0000000..0c00a60 Binary files /dev/null and b/_site/josiah-resume.pdf differ diff --git a/_site/personal.html b/_site/personal.html new file mode 100644 index 0000000..620a47b --- /dev/null +++ b/_site/personal.html @@ -0,0 +1,58 @@ + + + + + + + + + + + +josiah ledbetter | Public Blog + + + + + + + + + + + + +
+
+ +
+

josiah ledbetter

+
+
+ + +
+
+
+

personal posts are here:

+ + +
+ + + +
+
+ + + + diff --git a/_site/personal.md b/_site/personal.md new file mode 100644 index 0000000..020754b --- /dev/null +++ b/_site/personal.md @@ -0,0 +1,4 @@ +personal posts are here: +* [friendsgiving](/personal/friendsgiving.md) +* [thanksgiving in seattle](/personal/lt-thanksgiving.md) +* [rad boys only](/personal/rad-boys-only.md) diff --git a/_site/personal/friendsgiving.html b/_site/personal/friendsgiving.html new file mode 100644 index 0000000..7c0d6d8 --- /dev/null +++ b/_site/personal/friendsgiving.html @@ -0,0 +1,65 @@ + + + + + + + + + + + +friendsgiving | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

friendsgiving

+
+
+ + +
+
+
+

the best table

+

look at how pretty this fucking table is

+

my sister made a bunch of that stuff there; the candles were all melted on to the wood and the gourds that they were resting on; the wreathes of Whatever Plant were picked from her garden; even the table it all sat on was made by my sister and her family

+ +

it’s lovely and makes me feel fucking warm to have been there.

+ +

here’s some photos

+

avery

+ +

micah

+ +

eli-and-jillian

+ + +
+ + + +
+
+ + + + diff --git a/_site/personal/lt-thanksgiving.html b/_site/personal/lt-thanksgiving.html new file mode 100644 index 0000000..b34aa1f --- /dev/null +++ b/_site/personal/lt-thanksgiving.html @@ -0,0 +1,70 @@ + + + + + + + + + + + +lt-friendsgiving | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

lt-friendsgiving

+
+
+ + +
+
+
+

seattle

+

we flew in to seattle from austin at 845 am. don’t take that flight it was fucking horrible but it did give us a full day there despite flying for 4 hours.

+ +

sheri’s house

+

we drove around a bunch, but we started the night at sheri’s. we saw new (baby!) cats and ate good food and had our photo taken by a family friend. +sheri’s house

+ +

jill’s house

+

i forgot to take pictures this trip so here’s some from last year: +josiah +this is jill’s back porch and it feels fake to me. so many trees it’s stunning.

+ +

mule +we played a lot of mule, an old atari 800 game. it’s a lot of fun; laura hates computer games but since this is just a board game with calculations and tabulations done by a computer she sorta fell in love

+ +

food at martha’s

+

i forgot to take pictures of food. and also forgot to take a lot of other pictures. i did get a funny picture of laura’s family though, it was great: +family sit time

+ +
+ + + +
+
+ + + + diff --git a/_site/personal/rad-boys-only.html b/_site/personal/rad-boys-only.html new file mode 100644 index 0000000..cf01e70 --- /dev/null +++ b/_site/personal/rad-boys-only.html @@ -0,0 +1,80 @@ + + + + + + + + + + + +rad boys only | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

rad boys only

+
+
+ + +
+
+
+

rad boys only

+

we are boys and we are rad +sometimes our cooking makes us sad

+ +

but not this time, this time we made ceviche and it was fucking bomb

+ +

we were gonna play games first tho

+

noahs monstrous desk

+ +

noah’s desk, was so large +it was, like, the size of a barge

+ +

micah’s smol desk

+ +

micah’s desk was very sad +it was so small +and so lonely

+ +

my desk

+ +

my desk is the perfect size and my laptop is totally a normal weight why do you ask

+ +

we forgot to play games

+

and made ceviche and watched tv

+ +

kitchen1 +kitchen2 +salt salt salt

+ +
+ + + +
+
+ + + + diff --git a/_site/photos/friendsgiving/avery.jpeg b/_site/photos/friendsgiving/avery.jpeg new file mode 100644 index 0000000..6d6c893 Binary files /dev/null and b/_site/photos/friendsgiving/avery.jpeg differ diff --git a/_site/photos/friendsgiving/eli-and-jillian.jpeg b/_site/photos/friendsgiving/eli-and-jillian.jpeg new file mode 100644 index 0000000..bbe5944 Binary files /dev/null and b/_site/photos/friendsgiving/eli-and-jillian.jpeg differ diff --git a/_site/photos/friendsgiving/friendsgiving-header.jpeg b/_site/photos/friendsgiving/friendsgiving-header.jpeg new file mode 100644 index 0000000..c9cbf4a Binary files /dev/null and b/_site/photos/friendsgiving/friendsgiving-header.jpeg differ diff --git a/_site/photos/friendsgiving/micah.jpeg b/_site/photos/friendsgiving/micah.jpeg new file mode 100644 index 0000000..7caf6ee Binary files /dev/null and b/_site/photos/friendsgiving/micah.jpeg differ diff --git a/_site/photos/lt-thanksgiving/family-sit-time.jpeg b/_site/photos/lt-thanksgiving/family-sit-time.jpeg new file mode 100644 index 0000000..629e37f Binary files /dev/null and b/_site/photos/lt-thanksgiving/family-sit-time.jpeg differ diff --git a/_site/photos/lt-thanksgiving/josiah.jpeg b/_site/photos/lt-thanksgiving/josiah.jpeg new file mode 100644 index 0000000..cbb549e Binary files /dev/null and b/_site/photos/lt-thanksgiving/josiah.jpeg differ diff --git a/_site/photos/lt-thanksgiving/mule.jpeg b/_site/photos/lt-thanksgiving/mule.jpeg new file mode 100644 index 0000000..e912d0d Binary files /dev/null and b/_site/photos/lt-thanksgiving/mule.jpeg differ diff --git a/_site/photos/lt-thanksgiving/sheris-house.jpeg b/_site/photos/lt-thanksgiving/sheris-house.jpeg new file mode 100644 index 0000000..e0f8e6b Binary files /dev/null and b/_site/photos/lt-thanksgiving/sheris-house.jpeg differ diff --git a/_site/photos/rad-boys-only/josiah-desk.JPG b/_site/photos/rad-boys-only/josiah-desk.JPG new file mode 100644 index 0000000..e7246b9 Binary files /dev/null and b/_site/photos/rad-boys-only/josiah-desk.JPG differ diff --git a/_site/photos/rad-boys-only/kitchen1.JPG b/_site/photos/rad-boys-only/kitchen1.JPG new file mode 100644 index 0000000..2cc1e2b Binary files /dev/null and b/_site/photos/rad-boys-only/kitchen1.JPG differ diff --git a/_site/photos/rad-boys-only/kitchen2.JPG b/_site/photos/rad-boys-only/kitchen2.JPG new file mode 100644 index 0000000..251f46b Binary files /dev/null and b/_site/photos/rad-boys-only/kitchen2.JPG differ diff --git a/_site/photos/rad-boys-only/micah-desk.JPG b/_site/photos/rad-boys-only/micah-desk.JPG new file mode 100644 index 0000000..620bbef Binary files /dev/null and b/_site/photos/rad-boys-only/micah-desk.JPG differ diff --git a/_site/photos/rad-boys-only/noah-desk.JPG b/_site/photos/rad-boys-only/noah-desk.JPG new file mode 100644 index 0000000..48d0793 Binary files /dev/null and b/_site/photos/rad-boys-only/noah-desk.JPG differ diff --git a/_site/photos/rad-boys-only/salt.JPG b/_site/photos/rad-boys-only/salt.JPG new file mode 100644 index 0000000..0316696 Binary files /dev/null and b/_site/photos/rad-boys-only/salt.JPG differ diff --git a/_site/projects.html b/_site/projects.html new file mode 100644 index 0000000..546a13c --- /dev/null +++ b/_site/projects.html @@ -0,0 +1,58 @@ + + + + + + + + + + + +josiah ledbetter | Public Blog + + + + + + + + + + + + +
+
+ +
+

josiah ledbetter

+
+
+ + +
+
+
+ + +
+ + + +
+
+ + + + diff --git a/_site/projects.md b/_site/projects.md new file mode 100644 index 0000000..f37dbb9 --- /dev/null +++ b/_site/projects.md @@ -0,0 +1,4 @@ +* [hosting static sites on s3](/projects/hostingStaticSitesOnS3.md) +* [building a slack bot](/projects/mojojojo-bot.md) +* [agares, the multi-armed demon](/projects/agares.md) +* [using git on iPhone](/projects/workingcopy.md) diff --git a/_site/projects/agares.html b/_site/projects/agares.html new file mode 100644 index 0000000..9cf5ecc --- /dev/null +++ b/_site/projects/agares.html @@ -0,0 +1,111 @@ + + + + + + + + + + + +agares | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

agares

+
+
+ + +
+
+
+

agares, a multi armed demon

+

well, originally i don’t think the multi armed part was mentioned in the “list of demons” i found on the internet. now, though, agares is absolutely multi armed because I keep adding so much bullshit to this project.

+ +
    +
  • sync my dot files. .emacs, bash, powershell, etc.
  • +
  • configure windows devices. install software, some minor software configuration, remove windows bullshit.
  • +
  • sync my keyboard config; this involves updating a .png as well as a folder of .json an .kll files to apply firmware to ergodox.
  • +
  • house deployments for home projects
  • +
+ +

Up next is configuring an Mac device, and then whatever else I get to throw at it.

+ +

dot file sync

+

I think I’m doing this poorly. So far all i’m really doing is configuring all devices actual dot files to load these agares/ dotfiles.

+ +
    +
  • powershell: make sure you don’t have powershell, vscode /ise, and pwsh.exe all looking for the same profile. you’ll hate yourself. split them up.
  • +
  • .emacs: this is pretty straightforward unless you use more emacs features than me (easy to do). I leave in just a single .emacs file.
  • +
  • .bashrc: there’s a complicated set of rules that determines, at least on mac, when different .bash* files get loaded. be careful that yours only loads when you want it
  • +
  • .tmux: straight forward.
  • +
  • conemu: i don’t have an elegant solve for this. I just import this file whenever I set up a new machine. there is likely a better way.
  • +
+ +

further .bashrc info

+

I found this link very useful, quoted below:
+When a “login shell” starts up, it reads the file “/etc/profile” and then “~/.bash_profile” or “~/.bash_login” or “~/.profile” (whichever one exists - it only reads one of these, checking for them in the order mentioned).

+ +

When a “non-login shell” starts up, it reads the file “/etc/bashrc” and then the file “~/.bashrc”.

+ +

Note that when bash is invoked with the name “sh”, it tries to mimic the startup sequence of the Bourne shell (“sh”). In particular, a non-login shell invoked as “sh” does not read any dot files by default. See the bash man page for details.

+ +

What this means is that you don’t want to link or load the agares .bashrc file from .bashrc necessarily. It depends on your usage. you’ll likely wanna call it from .bash_profile instead, if you’re on a mac.

+ +

configure windows devices

+

3rd party app install is all handled through chocolatey. this is a great / terrible tool for this. great because it actually exists (wonderful!). Terrible because of certain usability problems. some packages install very weirdly through. emacs, for instance; do you want emacs? or emacs64? Those are not just optimized for different cpus, but are actually different versions of emacs (24 vs 25) that have different features shipped natively.

+ +

removing windows kruft

+

windows, particularly windows10, now ships with a bunch of bullshit that no sane person wants on their fucking computer. fucking 3rd party games are my favorite. thanks msft, get the fuck out. I stole a bunch of functions from this gist (which stole them from another). I definitely recommend perusing powershell module file i made before running the functions therein. Some are easy wins, or simple “get started” features, like removing a game or unpinning stuff from the start menu. Some are more hit or miss, like disabling the windows store; great 90% of the time IME, but if you didn’t have WSL you must have the windows store or you can’t install it.

+ +

a note on hypervisors

+

i do a lot of work on hyper-v, especially recently, because there’s a great suite of automation tools that work natively on that platform. hyperv is a fine tool for many things, particularly home labbing, but far less useful as a “need to run second OS without dual boot” utility. If you need that you’ll likely need something like vmware workstation or virtualbox. the bad news is you cannot have hyperv and another hypervisor active on the same machine at the same time. hyperv blocks other hypervisors from working because its petty and rude (something about the way it operates does this. for more information on this check out this superuser answer).

+ +

keyboard firmware sync

+

i use an infinity ergodox at home. this is a fun entry level diy project that taught me to solder (badly) and introduced me to QMK and TMK. I avoid having to dive very deep into those and instead use input.club’s online configurator tool. i download the output and put them into the keyboard dir of agares, along with a screenshot of the configurator tool, so that I know how everything is currently configured. this helps especially early on when you’re tweaking the keymap every few days trying to remember “where the fuck did i put the _ sign??”.

+ +

Once that’s downloaded you still have to flash your ergodox. do yourself a favor and keep a “flash” keybinding easily accessible on both sides of your keyboard or you will hate yourself.

+ +

Some guides say you only need to flash one side of the keyboard as long as they are plugged into each other. That has never worked for me and I must flash both sides or the keymap will be incorrect.

+ +

flashing the keyboard on windows

+

i absolutely can not get this to work unless i’m running a linux guest in virtualbox. instead, I flash from a mac or other *nix computer because its just hilariously easy and I don’t have to fuck with loading a new driver first. sorry for this terrible answer, but for the infinity ergodox this is literally the easiest way. if anyone knows one for the love of god please email me.

+ +

flashing the keyboard on *nix

+

read this here poast

+ +

deployments for home projects

+

right now this is really just a spot for my deployment of mojojojo-bot, my slackbot. you can read more about it (in an out of date blog post) here.

+ +

I deploy it using ansible targeting one of my few docker hosts. right now those are all local. eventually, i hope to build out a spot, or a deployment mechanism, for pushing it to Azure or AWS. I call mojo.yml with ansible-playbook, referencing a custom inventory file of hosts.yml, with --ask-vault-pass to prompt for password to decrypt mojo-vault-vars.yml, containing the slack-bot API token. this allows me to sync the actual API token via github, encrypted, without worrying about everyone and their dog fucking with my slack server.

+ +
+ + + +
+
+ + + + diff --git a/_site/projects/hostingStaticSitesOnS3.html b/_site/projects/hostingStaticSitesOnS3.html new file mode 100644 index 0000000..d029937 --- /dev/null +++ b/_site/projects/hostingStaticSitesOnS3.html @@ -0,0 +1,66 @@ + + + + + + + + + + + +Hosting static sites on S3 | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

Hosting static sites on S3

+
+
+ + +
+
+
+

Hosting static sites on S3

+ +

Turns out this was pretty straightforward. The steps are basically:

+ +
* decide on a dns name for your static page
+* create an S3 bucket using that name (bullshit.jowj.net) 
+* upload at least one file to your bucket
+* change bucket to enable hosting static pages (ensure you set the file you uploaded to be your index)
+* copy fully qied aws name of endpoint and point cname (bullshit) to that endpoint
+* boom done. 
+
+ +

I’d had this as a “thing to do” for forever, but I guess I thought it’d be more involved. this was just really straight forward.

+ + +
+ + + +
+
+ + + + diff --git a/_site/projects/mojojojo-bot.html b/_site/projects/mojojojo-bot.html new file mode 100644 index 0000000..7948b4f --- /dev/null +++ b/_site/projects/mojojojo-bot.html @@ -0,0 +1,137 @@ + + + + + + + + + + + +mojojojo-bot | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

mojojojo-bot

+
+
+ + +
+
+
+

mojojojo-bot

+

this was relatively easy to build initially (straight from a template), but building any functionality that I wanted into was, as expected, hard. because i am garbage at python.

+ +

learnings

+ +

1. import pdb (python debugger)

+
pdb.set_trace
+SETS A BREAK POINT IN CODE AND I CAN WRITE CODE THERE AND INTERACT WITH IT HOOOO MY GOD
+
+ +

this is probably the biggest thing i learned; para exemplar say you have a bit of code that defines a variable eq to individual objects you iterate through one at a time:

+
events = slack_client.rtm_read()
+for event in events:
+    thing = event.property
+    thing2 = event.otherproperty
+    do stuff with thing / thing2
+
+

sometimes (all the time) you run into problems where maybe one of the variables you defined doesn’t have the data you expect. so in order to troubleshoot you open you repl and try and do some adhoc definitions of variables and tokens so you can see what the deal is. as you might expect, that’s bad and doesn’t work very well. but with pdb.set_trace you can define a break point in your code that will give you a prompt, and then you can type “interact” into the prompt and it will let you type python into a repl provided with the state inherent in that point in your code! how fucking cool is that??

+ +
import pdb
+events = slack_client.rtm_read()
+for event in events:
+    thing = event.property
+    thing2 = event.otherproperty
+    pdb.set_trace
+    do stuff with thing / thing2
+
+

now the code looks like this and you can just call dir(events) and view its properties!!

+ +

2. accessing data in dict of dicts

+

python is not powershell python is not powershell python is not powershell python is no

+ +

so in powershell if you’re given a dict you can access its indexes using dot params. like

+
PS /> $dict = @{}                                                                                                                                                                                                                                                             
+PS /> $dict.Add('firstname','jowj')                                                                                                                                                                                                                                           
+PS /> $dict.Add('pet','metroid')                                                                                                                                                                                                                                              
+PS /> $dict                                                                                                                                                                                                                                                                   
+
+Name                           Value                                                                                                                                                                                                                                         
+----                           -----                                                                                                                                                                                                                                         
+pet                            metroid                                                                                                                                                                                                                                       
+firstname                      jowj                                                                                                                                                                                                                                          
+
+
+PS /> $dict.pet                                                                                                                                                                                                                                                               
+metroid
+PS /> 
+
+ +

in python you cannot do this. in python, in order to pull data for a particular key/value pair, you must index using they key value.

+
>>> dict = {}
+>>> dict
+{}
+>>> dict = {"firstname" : "jowj", "pet" : "metroid"}
+>>> dict
+{'firstname': 'jowj', 'pet': 'metroid'}
+>>> dict.firstname
+Traceback (most recent call last):
+  File "<stdin>", line 1, in <module>
+AttributeError: 'dict' object has no attribute 'firstname'
+>>> dict[0]
+Traceback (most recent call last):
+  File "<stdin>", line 1, in <module>
+KeyError: 0
+>>> dict["firstname"]
+'jowj'
+>>> 
+
+ +

it took me. so. so. so. long.

+ +

what’s next:

+

i gotta finish fixing this bot to get everything i want into 1 file (right now i have some of the functionality i want in two different scripts). then maybe add some extra functionality like:

+
    +
  • commanding to my twitter bot
  • +
  • …other stuff.
  • +
+ +

resources:

+
    +
  • basic tutorial / code i stole - https://www.fullstackpython.com/blog/build-first-slack-bot-python.html
  • +
  • to set an environment variable in powershell in userscope, you gotta go out to .net - [Environment]::SetEnvironmentVariable(“SLACK_BOT_TOKEN”, “Test value.”, “User”)
  • +
  • responding to messages with specific text - http://pfertyk.me/2016/11/automatically-respond-to-slack-messages-containing-specific-text/
  • +
  • api docs - https://github.com/slackapi/python-slackclient
  • +
+ +
+ + + +
+
+ + + + diff --git a/_site/projects/workingcopy.html b/_site/projects/workingcopy.html new file mode 100644 index 0000000..a48e144 --- /dev/null +++ b/_site/projects/workingcopy.html @@ -0,0 +1,60 @@ + + + + + + + + + + + +editing files tracked in gif while on your phone | josiah ledbetter + + + + + + + + + + + + +
+
+ +
+

editing files tracked in gif while on your phone

+
+
+ + +
+
+
+

editing files tracked in gif while on your phone

+ +

i open it in “working copy” and then send it to your markdown editor. then you sent it back to working copy.

+ +

so writing this is not bad

+

really, it’s a lot better than i expected it to be. i’m writing this on my phone for christ sake, but it’s still really straight forward to add a list, insert images, whatever

+ +

that is so fucking great tbh

+ +
+ + + +
+
+ + + + diff --git a/index.md b/index.md index 77885a3..bc98901 100644 --- a/index.md +++ b/index.md @@ -1,11 +1,5 @@ -you can read some of the bullshit i'm working on: +hi you have reached the landingpage of me, the person whose name is above this text. please click a link below if you are curious about me: -* [hosting static sites on s3](/blogposts/hostingStaticSitesOnS3.md) -* [building a slack bot](/blogposts/mojojojo-bot.md) -* [agares, the multi-armed demon](/blogposts/agares.md) -* [using git on iPhone](/blogposts/workingcopy.md) - -i am also experimenting with posting terrible pictures here. you can view them: -* [friendsgiving](/blogposts/personal/friendsgiving.md) -* [thanksgiving in seattle](/blogposts/personal/lt-thanksgiving.md) -* [rad boys only](/blogposts/personal/rad-boys-only.md) \ No newline at end of file +* [projects](/projects.md) +* [personal](/personal.md) +* [resume](/josiah-resume.pdf) diff --git a/josiah-resume.pdf b/josiah-resume.pdf new file mode 100644 index 0000000..0c00a60 Binary files /dev/null and b/josiah-resume.pdf differ diff --git a/personal.md b/personal.md new file mode 100644 index 0000000..020754b --- /dev/null +++ b/personal.md @@ -0,0 +1,4 @@ +personal posts are here: +* [friendsgiving](/personal/friendsgiving.md) +* [thanksgiving in seattle](/personal/lt-thanksgiving.md) +* [rad boys only](/personal/rad-boys-only.md) diff --git a/blogposts/personal/friendsgiving.md b/personal/friendsgiving.md similarity index 92% rename from blogposts/personal/friendsgiving.md rename to personal/friendsgiving.md index 886d7a1..20c761e 100644 --- a/blogposts/personal/friendsgiving.md +++ b/personal/friendsgiving.md @@ -1,3 +1,7 @@ +--- +title: friendsgiving +categories: personal +--- ![the best table ](/photos/friendsgiving/friendsgiving-header.jpeg) # look at how pretty this fucking table is my sister made a bunch of that stuff there; the candles were all melted on to the wood and the gourds that they were resting on; the wreathes of Whatever Plant were picked from her garden; even the table it all sat on was made by my sister and her family diff --git a/blogposts/personal/lt-thanksgiving.md b/personal/lt-thanksgiving.md similarity index 95% rename from blogposts/personal/lt-thanksgiving.md rename to personal/lt-thanksgiving.md index 3bdfe16..ce95e14 100644 --- a/blogposts/personal/lt-thanksgiving.md +++ b/personal/lt-thanksgiving.md @@ -1,3 +1,7 @@ +--- +title: lt-friendsgiving +categories: personal +--- # seattle we flew in to seattle from austin at 845 am. don’t take that flight it was fucking horrible but it did give us a full day there despite flying for 4 hours. @@ -15,4 +19,4 @@ we played a lot of mule, an old atari 800 game. it’s a lot of fun; laura hates ## food at martha’s i forgot to take pictures of food. and also forgot to take a lot of other pictures. i did get a funny picture of laura’s family though, it was great: -![family sit time](/photos/lt-thanksgiving/family-sit-time.jpeg) \ No newline at end of file +![family sit time](/photos/lt-thanksgiving/family-sit-time.jpeg) diff --git a/blogposts/personal/rad-boys-only.md b/personal/rad-boys-only.md similarity index 87% rename from blogposts/personal/rad-boys-only.md rename to personal/rad-boys-only.md index 844b12b..684546e 100644 --- a/blogposts/personal/rad-boys-only.md +++ b/personal/rad-boys-only.md @@ -1,3 +1,7 @@ +--- +title: rad boys only +categories: personal +--- # rad boys only we are boys and we are rad sometimes our cooking makes us sad @@ -25,4 +29,4 @@ and made ceviche and watched tv ![kitchen1](/photos/rad-boys-only/kitchen1.JPG) ![kitchen2](/photos/rad-boys-only/kitchen2.JPG) -![salt salt salt](/photos/rad-boys-only/salt.JPG) \ No newline at end of file +![salt salt salt](/photos/rad-boys-only/salt.JPG) diff --git a/projects.md b/projects.md new file mode 100644 index 0000000..f37dbb9 --- /dev/null +++ b/projects.md @@ -0,0 +1,4 @@ +* [hosting static sites on s3](/projects/hostingStaticSitesOnS3.md) +* [building a slack bot](/projects/mojojojo-bot.md) +* [agares, the multi-armed demon](/projects/agares.md) +* [using git on iPhone](/projects/workingcopy.md) diff --git a/blogposts/agares.md b/projects/agares.md similarity index 98% rename from blogposts/agares.md rename to projects/agares.md index e7a7050..65c42f0 100644 --- a/blogposts/agares.md +++ b/projects/agares.md @@ -1,3 +1,7 @@ +--- +title: agares +categories: projects +--- # agares, a multi armed demon well, originally i don't think the multi armed part was mentioned in the "list of demons" i found on the internet. now, though, agares is absolutely multi armed because I keep adding so much bullshit to this project. @@ -52,4 +56,4 @@ i absolutely can not get this to work unless i'm running a linux guest in virtua ## deployments for home projects right now this is really just a spot for my deployment of `mojojojo-bot`, my slackbot. you can read more about it (in an out of date blog post) [here](/blogposts/mojojojo-bot.md). -I deploy it using ansible targeting one of my few docker hosts. right now those are all local. eventually, i hope to build out a spot, or a deployment mechanism, for pushing it to Azure or AWS. I call `mojo.yml` with ansible-playbook, referencing a custom inventory file of `hosts.yml`, with `--ask-vault-pass` to prompt for password to decrypt `mojo-vault-vars.yml`, containing the slack-bot API token. this allows me to sync the actual API token via github, encrypted, without worrying about everyone and their dog fucking with my slack server. \ No newline at end of file +I deploy it using ansible targeting one of my few docker hosts. right now those are all local. eventually, i hope to build out a spot, or a deployment mechanism, for pushing it to Azure or AWS. I call `mojo.yml` with ansible-playbook, referencing a custom inventory file of `hosts.yml`, with `--ask-vault-pass` to prompt for password to decrypt `mojo-vault-vars.yml`, containing the slack-bot API token. this allows me to sync the actual API token via github, encrypted, without worrying about everyone and their dog fucking with my slack server. diff --git a/blogposts/hostingStaticSitesOnS3.md b/projects/hostingStaticSitesOnS3.md similarity index 90% rename from blogposts/hostingStaticSitesOnS3.md rename to projects/hostingStaticSitesOnS3.md index d3acb41..391a1b0 100644 --- a/blogposts/hostingStaticSitesOnS3.md +++ b/projects/hostingStaticSitesOnS3.md @@ -1,14 +1,18 @@ -# Hosting static sites on S3 - -Turns out this was pretty straightforward. The steps are basically: - - * decide on a dns name for your static page - * create an S3 bucket using that name (bullshit.jowj.net) - * upload at least one file to your bucket - * change bucket to enable hosting static pages (ensure you set the file you uploaded to be your index) - * copy fully qied aws name of endpoint and point cname (bullshit) to that endpoint - * boom done. - -I'd had this as a "thing to do" for forever, but I guess I thought it'd be more involved. this was just really straight forward. - - +--- +title: Hosting static sites on S3 +categories: projects +--- +# Hosting static sites on S3 + +Turns out this was pretty straightforward. The steps are basically: + + * decide on a dns name for your static page + * create an S3 bucket using that name (bullshit.jowj.net) + * upload at least one file to your bucket + * change bucket to enable hosting static pages (ensure you set the file you uploaded to be your index) + * copy fully qied aws name of endpoint and point cname (bullshit) to that endpoint + * boom done. + +I'd had this as a "thing to do" for forever, but I guess I thought it'd be more involved. this was just really straight forward. + + diff --git a/blogposts/mojojojo-bot.md b/projects/mojojojo-bot.md similarity index 99% rename from blogposts/mojojojo-bot.md rename to projects/mojojojo-bot.md index f92ef53..6742f49 100644 --- a/blogposts/mojojojo-bot.md +++ b/projects/mojojojo-bot.md @@ -1,3 +1,7 @@ +--- +title: mojojojo-bot +categories: projects +--- # mojojojo-bot this was relatively easy to build initially (straight from a template), but building any functionality that I wanted into was, as expected, hard. because i am garbage at python. diff --git a/blogposts/workingcopy.md b/projects/workingcopy.md similarity index 76% rename from blogposts/workingcopy.md rename to projects/workingcopy.md index 0620e6e..fbe2f75 100644 --- a/blogposts/workingcopy.md +++ b/projects/workingcopy.md @@ -1,3 +1,7 @@ +--- +title: editing files tracked in gif while on your phone +categories: projects +--- # editing files tracked in gif while on your phone i open it in “working copy” and then send it to your markdown editor. then you sent it back to working copy. @@ -5,4 +9,4 @@ i open it in “working copy” and then send it to your markdown editor. then y ## so writing this is not bad really, it’s a lot better than i expected it to be. i’m writing this on my phone for christ sake, but it’s still really straight forward to add a list, insert images, whatever -that is so fucking great tbh \ No newline at end of file +that is so fucking great tbh