From 5e0eb0cdcf8f8d74133d12271811c74d4c38d431 Mon Sep 17 00:00:00 2001 From: N-Upchurch Date: Wed, 5 Jul 2023 11:06:31 -0500 Subject: [PATCH] push my changes to new repo --- .kateproject.notes | 9 + README.md | 121 +---- README.md.backup | 26 + _data/metadata.js | 13 +- _includes/layouts/404.njk | 8 + _includes/layouts/base.njk | 48 +- _includes/layouts/home.njk | 14 +- _includes/layouts/post.njk | 3 +- _includes/postslist.njk | 32 +- content/404.md | 16 +- content/404.md.backup | 19 + content/about/index.md | 7 +- content/blog.njk | 10 +- .../build-an-svg-circle-grid-with-p5js.md | 451 ++++++++++++++++++ content/blog/fifthpost.md | 6 - content/blog/firstpost.md | 26 - content/blog/floss-and-smes.md | 28 ++ content/blog/fourthpost/fourthpost.md | 16 - content/blog/fourthpost/possum.png | Bin 130230 -> 0 bytes content/blog/scp-command.md | 50 ++ content/blog/secondpost.md | 17 - content/blog/thirdpost.md | 45 -- content/feed/feed.njk | 7 + content/index.njk | 4 +- content/tags-list.njk | 10 +- content/tags.njk | 8 +- eleventy.config.images.js | 2 +- eleventy.config.js | 4 +- package.json | 3 + public/css/dropcap.css | 15 + public/css/index.css | 283 +++++++++-- .../css/webfonts/manrope-bold-latin-ext.woff | Bin 0 -> 16612 bytes .../css/webfonts/manrope-bold-latin-ext.woff2 | Bin 0 -> 14860 bytes public/css/webfonts/manrope-bold-latin.woff | Bin 0 -> 20676 bytes public/css/webfonts/manrope-bold-latin.woff2 | Bin 0 -> 18436 bytes .../webfonts/manrope-extrabold-latin-ext.woff | Bin 0 -> 16448 bytes .../manrope-extrabold-latin-ext.woff2 | Bin 0 -> 14612 bytes .../css/webfonts/manrope-extrabold-latin.woff | Bin 0 -> 20332 bytes .../webfonts/manrope-extrabold-latin.woff2 | Bin 0 -> 18056 bytes .../manrope-extralight-latin-ext.woff | Bin 0 -> 15436 bytes .../manrope-extralight-latin-ext.woff2 | Bin 0 -> 13836 bytes .../webfonts/manrope-extralight-latin.woff | Bin 0 -> 19440 bytes .../webfonts/manrope-extralight-latin.woff2 | Bin 0 -> 17312 bytes .../css/webfonts/manrope-light-latin-ext.woff | Bin 0 -> 15840 bytes .../webfonts/manrope-light-latin-ext.woff2 | Bin 0 -> 14224 bytes public/css/webfonts/manrope-light-latin.woff | Bin 0 -> 20172 bytes public/css/webfonts/manrope-light-latin.woff2 | Bin 0 -> 18020 bytes .../webfonts/manrope-medium-latin-ext.woff | Bin 0 -> 16044 bytes .../webfonts/manrope-medium-latin-ext.woff2 | Bin 0 -> 14368 bytes public/css/webfonts/manrope-medium-latin.woff | Bin 0 -> 20448 bytes .../css/webfonts/manrope-medium-latin.woff2 | Bin 0 -> 18224 bytes .../webfonts/manrope-regular-latin-ext.woff | Bin 0 -> 15820 bytes .../webfonts/manrope-regular-latin-ext.woff2 | Bin 0 -> 14096 bytes .../css/webfonts/manrope-regular-latin.woff | Bin 0 -> 20320 bytes .../css/webfonts/manrope-regular-latin.woff2 | Bin 0 -> 18012 bytes .../webfonts/manrope-semibold-latin-ext.woff | Bin 0 -> 16244 bytes .../webfonts/manrope-semibold-latin-ext.woff2 | Bin 0 -> 14572 bytes .../css/webfonts/manrope-semibold-latin.woff | Bin 0 -> 20540 bytes .../css/webfonts/manrope-semibold-latin.woff2 | Bin 0 -> 18308 bytes ...ayfair-display-black-italic-latin-ext.woff | Bin 0 -> 15616 bytes ...yfair-display-black-italic-latin-ext.woff2 | Bin 0 -> 12128 bytes .../playfair-display-black-italic-latin.woff | Bin 0 -> 23400 bytes .../playfair-display-black-italic-latin.woff2 | Bin 0 -> 18984 bytes .../playfair-display-black-latin-ext.woff | Bin 0 -> 14448 bytes .../playfair-display-black-latin-ext.woff2 | Bin 0 -> 11120 bytes .../playfair-display-black-latin.woff | Bin 0 -> 24420 bytes .../playfair-display-black-latin.woff2 | Bin 0 -> 19432 bytes ...layfair-display-bold-italic-latin-ext.woff | Bin 0 -> 16212 bytes ...ayfair-display-bold-italic-latin-ext.woff2 | Bin 0 -> 12648 bytes .../playfair-display-bold-italic-latin.woff | Bin 0 -> 24888 bytes .../playfair-display-bold-italic-latin.woff2 | Bin 0 -> 20328 bytes .../playfair-display-bold-latin-ext.woff | Bin 0 -> 14720 bytes .../playfair-display-bold-latin-ext.woff2 | Bin 0 -> 11384 bytes .../webfonts/playfair-display-bold-latin.woff | Bin 0 -> 25516 bytes .../playfair-display-bold-latin.woff2 | Bin 0 -> 20344 bytes ...ir-display-extrabold-italic-latin-ext.woff | Bin 0 -> 16160 bytes ...r-display-extrabold-italic-latin-ext.woff2 | Bin 0 -> 12596 bytes ...ayfair-display-extrabold-italic-latin.woff | Bin 0 -> 24680 bytes ...yfair-display-extrabold-italic-latin.woff2 | Bin 0 -> 20212 bytes .../playfair-display-extrabold-latin-ext.woff | Bin 0 -> 14776 bytes ...playfair-display-extrabold-latin-ext.woff2 | Bin 0 -> 11440 bytes .../playfair-display-extrabold-latin.woff | Bin 0 -> 25536 bytes .../playfair-display-extrabold-latin.woff2 | Bin 0 -> 20156 bytes .../playfair-display-italic-latin-ext.woff | Bin 0 -> 15796 bytes .../playfair-display-italic-latin-ext.woff2 | Bin 0 -> 12296 bytes .../playfair-display-italic-latin.woff | Bin 0 -> 23620 bytes .../playfair-display-italic-latin.woff2 | Bin 0 -> 19068 bytes ...yfair-display-medium-italic-latin-ext.woff | Bin 0 -> 16204 bytes ...fair-display-medium-italic-latin-ext.woff2 | Bin 0 -> 12580 bytes .../playfair-display-medium-italic-latin.woff | Bin 0 -> 24816 bytes ...playfair-display-medium-italic-latin.woff2 | Bin 0 -> 20216 bytes .../playfair-display-medium-latin-ext.woff | Bin 0 -> 14644 bytes .../playfair-display-medium-latin-ext.woff2 | Bin 0 -> 11316 bytes .../playfair-display-medium-latin.woff | Bin 0 -> 25396 bytes .../playfair-display-medium-latin.woff2 | Bin 0 -> 20096 bytes .../playfair-display-regular-latin-ext.woff | Bin 0 -> 14108 bytes .../playfair-display-regular-latin-ext.woff2 | Bin 0 -> 10832 bytes .../playfair-display-regular-latin.woff | Bin 0 -> 24116 bytes .../playfair-display-regular-latin.woff2 | Bin 0 -> 19080 bytes ...air-display-semibold-italic-latin-ext.woff | Bin 0 -> 16224 bytes ...ir-display-semibold-italic-latin-ext.woff2 | Bin 0 -> 12688 bytes ...layfair-display-semibold-italic-latin.woff | Bin 0 -> 24884 bytes ...ayfair-display-semibold-italic-latin.woff2 | Bin 0 -> 20280 bytes .../playfair-display-semibold-latin-ext.woff | Bin 0 -> 14700 bytes .../playfair-display-semibold-latin-ext.woff2 | Bin 0 -> 11288 bytes .../playfair-display-semibold-latin.woff | Bin 0 -> 25436 bytes .../playfair-display-semibold-latin.woff2 | Bin 0 -> 20212 bytes public/css/webfonts/webfonts.css | 417 ++++++++++++++++ public/img/RSS.svg | 104 ++++ ...na-sirotina-1NMPvajSt9Q-unsplash_copy.avif | Bin 0 -> 24926 bytes public/img/logo_favicon.svg | 61 +++ .../circle-grid-canvas.webp | Bin 0 -> 10580 bytes .../circle-grid-complete.webp | Bin 0 -> 152366 bytes .../circle-grid-grid.webp | Bin 0 -> 319826 bytes .../circle-grid-line.webp | Bin 0 -> 11720 bytes .../circle-grid-post-image.webp | Bin 0 -> 51364 bytes .../pedro-lastra-Nyvq2juw4_o-unsplash.webp | Bin 0 -> 638810 bytes public/img/terminal.svg | 171 +++++++ 118 files changed, 1696 insertions(+), 358 deletions(-) create mode 100644 .kateproject.notes create mode 100644 README.md.backup create mode 100644 _includes/layouts/404.njk create mode 100644 content/404.md.backup create mode 100644 content/blog/build-an-svg-circle-grid-with-p5js/build-an-svg-circle-grid-with-p5js.md delete mode 100644 content/blog/fifthpost.md delete mode 100644 content/blog/firstpost.md create mode 100644 content/blog/floss-and-smes.md delete mode 100644 content/blog/fourthpost/fourthpost.md delete mode 100644 content/blog/fourthpost/possum.png create mode 100644 content/blog/scp-command.md delete mode 100644 content/blog/secondpost.md delete mode 100644 content/blog/thirdpost.md create mode 100644 public/css/dropcap.css create mode 100644 public/css/webfonts/manrope-bold-latin-ext.woff create mode 100644 public/css/webfonts/manrope-bold-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-bold-latin.woff create mode 100644 public/css/webfonts/manrope-bold-latin.woff2 create mode 100644 public/css/webfonts/manrope-extrabold-latin-ext.woff create mode 100644 public/css/webfonts/manrope-extrabold-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-extrabold-latin.woff create mode 100644 public/css/webfonts/manrope-extrabold-latin.woff2 create mode 100644 public/css/webfonts/manrope-extralight-latin-ext.woff create mode 100644 public/css/webfonts/manrope-extralight-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-extralight-latin.woff create mode 100644 public/css/webfonts/manrope-extralight-latin.woff2 create mode 100644 public/css/webfonts/manrope-light-latin-ext.woff create mode 100644 public/css/webfonts/manrope-light-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-light-latin.woff create mode 100644 public/css/webfonts/manrope-light-latin.woff2 create mode 100644 public/css/webfonts/manrope-medium-latin-ext.woff create mode 100644 public/css/webfonts/manrope-medium-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-medium-latin.woff create mode 100644 public/css/webfonts/manrope-medium-latin.woff2 create mode 100644 public/css/webfonts/manrope-regular-latin-ext.woff create mode 100644 public/css/webfonts/manrope-regular-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-regular-latin.woff create mode 100644 public/css/webfonts/manrope-regular-latin.woff2 create mode 100644 public/css/webfonts/manrope-semibold-latin-ext.woff create mode 100644 public/css/webfonts/manrope-semibold-latin-ext.woff2 create mode 100644 public/css/webfonts/manrope-semibold-latin.woff create mode 100644 public/css/webfonts/manrope-semibold-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-black-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-black-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-black-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-black-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-black-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-black-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-black-latin.woff create mode 100644 public/css/webfonts/playfair-display-black-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-bold-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-bold-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-bold-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-bold-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-bold-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-bold-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-bold-latin.woff create mode 100644 public/css/webfonts/playfair-display-bold-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-extrabold-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-extrabold-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-extrabold-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-extrabold-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-extrabold-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-extrabold-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-extrabold-latin.woff create mode 100644 public/css/webfonts/playfair-display-extrabold-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-medium-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-medium-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-medium-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-medium-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-medium-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-medium-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-medium-latin.woff create mode 100644 public/css/webfonts/playfair-display-medium-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-regular-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-regular-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-regular-latin.woff create mode 100644 public/css/webfonts/playfair-display-regular-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-semibold-italic-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-semibold-italic-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-semibold-italic-latin.woff create mode 100644 public/css/webfonts/playfair-display-semibold-italic-latin.woff2 create mode 100644 public/css/webfonts/playfair-display-semibold-latin-ext.woff create mode 100644 public/css/webfonts/playfair-display-semibold-latin-ext.woff2 create mode 100644 public/css/webfonts/playfair-display-semibold-latin.woff create mode 100644 public/css/webfonts/playfair-display-semibold-latin.woff2 create mode 100644 public/css/webfonts/webfonts.css create mode 100644 public/img/RSS.svg create mode 100644 public/img/default_post_image/vasilina-sirotina-1NMPvajSt9Q-unsplash_copy.avif create mode 100644 public/img/logo_favicon.svg create mode 100644 public/img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-canvas.webp create mode 100644 public/img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-complete.webp create mode 100644 public/img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-grid.webp create mode 100644 public/img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-line.webp create mode 100644 public/img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-post-image.webp create mode 100644 public/img/posts/floss-and-smes/pedro-lastra-Nyvq2juw4_o-unsplash.webp create mode 100644 public/img/terminal.svg diff --git a/.kateproject.notes b/.kateproject.notes new file mode 100644 index 0000000..5aaed1f --- /dev/null +++ b/.kateproject.notes @@ -0,0 +1,9 @@ +TODO: + +Handle main post image and in-article images +Integrate est. read time +Integrate % done in article +Investigate pagination for /blog/ +Add Favicon +Integrate recipe structured data for recipe type articles +Consider optimising character count per line \ No newline at end of file diff --git a/README.md b/README.md index 927d5bb..9ae6f57 100644 --- a/README.md +++ b/README.md @@ -1,123 +1,6 @@ -# eleventy-base-blog v8 - -A starter repository showing how to build a blog with the [Eleventy](https://www.11ty.dev/) site generator (using the [v2.0 release](https://www.11ty.dev/blog/eleventy-v2/)). - -[![Netlify Status](https://api.netlify.com/api/v1/badges/802669dd-d5f8-4d49-963d-6d57b257c2a2/deploy-status)](https://app.netlify.com/sites/eleventy-base-blog/deploys) - -## Getting Started - -* [Want a more generic/detailed getting started guide?](https://www.11ty.dev/docs/getting-started/) - -1. Make a directory and navigate to it: - -``` -mkdir my-blog-name -cd my-blog-name -``` - -2. Clone this Repository - -``` -git clone https://github.com/11ty/eleventy-base-blog.git . -``` - -_Optional:_ Review `eleventy.config.js` and `_data/metadata.js` to configure the site’s options and data. - -3. Install dependencies - -``` -npm install -``` - -4. Run Eleventy - -Generate a production-ready build to the `_site` folder: - -``` -npx @11ty/eleventy -``` - -Or build and host on a local development server: - -``` -npx @11ty/eleventy --serve -``` - -Or you can run [debug mode](https://www.11ty.dev/docs/debugging/) to see all the internals. - -## Features - -- Using [Eleventy v2.0](https://www.11ty.dev/blog/eleventy-v2/) with zero-JavaScript output. - - Content is exclusively pre-rendered (this is a static site). - - Can easily [deploy to a subfolder without changing any content](https://www.11ty.dev/docs/plugins/html-base/) - - All URLs are decoupled from the content’s location on the file system. - - Configure templates via the [Eleventy Data Cascade](https://www.11ty.dev/docs/data-cascade/) -- **Performance focused**: four-hundos Lighthouse score out of the box! - - [View the Lighthouse report for the latest build](https://eleventy-base-blog.netlify.app/reports/lighthouse/) courtesy of the [Netlify Lighthouse plugin](https://github.com/netlify/netlify-plugin-lighthouse). - - _0 Cumulative Layout Shift_ - - _0ms Total Blocking Time_ -- Local development live reload provided by [Eleventy Dev Server](https://www.11ty.dev/docs/dev-server/). -- Content-driven [navigation menu](https://www.11ty.dev/docs/plugins/navigation/) -- [Image optimization](https://www.11ty.dev/docs/plugins/image/) via the `{% image %}` shortcode. - - Zero-JavaScript output. - - Support for modern image formats automatically (e.g. AVIF and WebP) - - Prefers `` markup if possible (single image format) but switches automatically to `` for multiple image formats. - - Automated `` syntax markup with `srcset` and optional `sizes` - - Includes `width`/`height` attributes to avoid [content layout shift](https://web.dev/cls/). - - Includes `loading="lazy"` for native lazy loading without JavaScript. - - Includes [`decoding="async"`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decoding) - - Images can be co-located with blog post files. - - View the [Image plugin source code](https://github.com/11ty/eleventy-base-blog/blob/main/eleventy.config.images.js) -- Per page CSS bundles [via `eleventy-plugin-bundle`](https://github.com/11ty/eleventy-plugin-bundle). -- Built-in [syntax highlighter](https://www.11ty.dev/docs/plugins/syntaxhighlight/) (zero-JavaScript output). -- Blog Posts - - Draft posts: use `draft: true` to mark a blog post as a draft. Drafts are **only** included during `--serve`/`--watch` and are excluded from full builds. View the [Drafts plugin source code](https://github.com/11ty/eleventy-base-blog/blob/main/eleventy.config.drafts.js). - - Automated next/previous links - - Accessible deep links to headings -- Generated Pages - - Home, Archive, and About pages. - - [Feeds for Atom and JSON](https://www.11ty.dev/docs/plugins/rss/) - - `sitemap.xml` - - Zero-maintenance tag pages ([View on the Demo](https://eleventy-base-blog.netlify.app/tags/)) - - Content not found (404) page - -## Demos - -- [Netlify](https://eleventy-base-blog.netlify.com/) -- [GitHub Pages](https://11ty.github.io/eleventy-base-blog/) -- [Remix on Glitch](https://glitch.com/~11ty-eleventy-base-blog) - -## Deploy this to your own site - -Deploy this Eleventy site in just a few clicks on these services: - -- [Get your own Eleventy web site on Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/11ty/eleventy-base-blog) -- If you run Eleventy locally you can drag your `_site` folder to [`drop.netlify.com`](https://drop.netlify.com/) to upload it without using `git`. -- [Get your own Eleventy web site on Vercel](https://vercel.com/import/project?template=11ty%2Feleventy-base-blog) -- Read more about [Deploying an Eleventy project](https://www.11ty.dev/docs/deployment/) to the web. +# nathanupchurch.com - Based on eleventy-base-blog v8 ### Implementation Notes -- `content/about/index.md` is an example of a content page. - `content/blog/` has the blog posts but really they can live in any directory. They need only the `posts` tag to be included in the blog posts [collection](https://www.11ty.dev/docs/collections/). -- Use the `eleventyNavigation` key (via the [Eleventy Navigation plugin](https://www.11ty.dev/docs/plugins/navigation/)) in your front matter to add a template to the top level site navigation. This is in use on `content/index.njk` and `content/about/index.md`. -- Content can be in _any template format_ (blog posts needn’t exclusively be markdown, for example). Configure your project’s supported templates in `eleventy.config.js` -> `templateFormats`. -- The `public` folder in your input directory will be copied to the output folder (via `addPassthroughCopy` in the `eleventy.config.js` file). This means `./public/css/*` will live at `./_site/css/*` after your build completes. -- Provides two content feeds: - - `content/feed/feed.njk` - - `content/feed/json.njk` -- This project uses three [Eleventy Layouts](https://www.11ty.dev/docs/layouts/): - - `_includes/layouts/base.njk`: the top level HTML structure - - `_includes/layouts/home.njk`: the home page template (wrapped into `base.njk`) - - `_includes/layouts/post.njk`: the blog post template (wrapped into `base.njk`) -- `_includes/postslist.njk` is a Nunjucks include and is a reusable component used to display a list of all the posts. `content/index.njk` has an example of how to use it. - -If your site enforces a Content Security Policy (as public-facing sites should), either, in `base.njk`, disable -```html - -``` -and enable -```html - -``` -or configure the server with the CSP directive `style-src: 'unsafe-inline'` (which is less secure). +- Use the `eleventyNavigation` key (via the [Eleventy Navigation plugin](https://www.11ty.dev/docs/plugins/navigation/)) in your front matter to add a template to the top level site navigation. This is in use on `content/index.njk` and `content/about/index.md`. \ No newline at end of file diff --git a/README.md.backup b/README.md.backup new file mode 100644 index 0000000..0b3d524 --- /dev/null +++ b/README.md.backup @@ -0,0 +1,26 @@ +# nathanupchurch.com - Based on eleventy-base-blog v8 + +### Implementation Notes + +- `content/blog/` has the blog posts but really they can live in any directory. They need only the `posts` tag to be included in the blog posts [collection](https://www.11ty.dev/docs/collections/). +- Use the `eleventyNavigation` key (via the [Eleventy Navigation plugin](https://www.11ty.dev/docs/plugins/navigation/)) in your front matter to add a template to the top level site navigation. This is in use on `content/index.njk` and `content/about/index.md`. +- Content can be in _any template format_ (blog posts needn’t exclusively be markdown, for example). Configure your project’s supported templates in `eleventy.config.js` -> `templateFormats`. +- The `public` folder in your input directory will be copied to the output folder (via `addPassthroughCopy` in the `eleventy.config.js` file). This means `./public/css/*` will live at `./_site/css/*` after your build completes. +- Provides two content feeds: + - `content/feed/feed.njk` + - `content/feed/json.njk` +- This project uses three [Eleventy Layouts](https://www.11ty.dev/docs/layouts/): + - `_includes/layouts/base.njk`: the top level HTML structure + - `_includes/layouts/home.njk`: the home page template (wrapped into `base.njk`) + - `_includes/layouts/post.njk`: the blog post template (wrapped into `base.njk`) +- `_includes/postslist.njk` is a Nunjucks include and is a reusable component used to display a list of all the posts. `content/index.njk` has an example of how to use it. + +If your site enforces a Content Security Policy (as public-facing sites should), either, in `base.njk`, disable +```html + +``` +and enable +```html + +``` +or configure the server with the CSP directive `style-src: 'unsafe-inline'` (which is less secure). diff --git a/_data/metadata.js b/_data/metadata.js index 5a5c99b..7342717 100644 --- a/_data/metadata.js +++ b/_data/metadata.js @@ -1,11 +1,14 @@ module.exports = { - title: "Eleventy Base Blog v8", - url: "https://example.com/", + title: "Nathan Upchurch", + logo: "/img/logo_favicon.svg", + url: "https://nathanupchurch.com/", language: "en", - description: "I am writing about my experiences as a naval navel-gazer.", + description: "The personal website and blog of Nathan Upchurch.", author: { - name: "Your Name Here", + name: "Nathan Upchurch", email: "youremailaddress@example.com", url: "https://example.com/about-me/" - } + }, + defaultPostImageURL: "/img/default_post_image/vasilina-sirotina-1NMPvajSt9Q-unsplash_copy.avif", + defaultPostImageAlt: "The default post image: a close picture of the dark green leaves of a plant." } diff --git a/_includes/layouts/404.njk b/_includes/layouts/404.njk new file mode 100644 index 0000000..d7a6205 --- /dev/null +++ b/_includes/layouts/404.njk @@ -0,0 +1,8 @@ +--- +layout: layouts/base.njk +showPostListHeader: yep +--- +

404

+

Sorry, it looks like that link is broken. Go to the home page.

+ +{{ content | safe }} diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk index 3b3226f..7233c9e 100644 --- a/_includes/layouts/base.njk +++ b/_includes/layouts/base.njk @@ -4,48 +4,56 @@ {{ title or metadata.title }} + - {#- Atom and JSON feeds included by default #} - {#- Uncomment this if you’d like folks to know that you used Eleventy to build your site! #} - {#- #} + - {#- - CSS bundles are provided via the `eleventy-plugin-bundle` plugin: - 1. You can add to them using `{% css %}` - 2. You can get from them using `{% getBundle "css" %}` or `{% getBundleFileUrl "css" %}` - 3. You can do the same for JS: {% js %}{% endjs %} and - 4. Learn more: https://github.com/11ty/eleventy-plugin-bundle - #} - - {#- Add an arbitrary string to the bundle #} - {%- css %}* { box-sizing: border-box; }{% endcss %} - {#- Add the contents of a file to the bundle #} + {#- Bundle CSS #} {%- css %}{% include "public/css/index.css" %}{% endcss %} - {#- Or add from node_modules #} {# {%- css %}{% include "node_modules/prismjs/themes/prism-okaidia.css" %}{% endcss %} #} {#- Render the CSS bundle using Inlined CSS (for the fastest site performance in production) #} + + {%- css %}{% include "public/css/webfonts/webfonts.css" %}{% endcss %} + {%- css %}{% include "public/css/dropcap.css" %}{% endcss %} - {#- Renders the CSS bundle using a separate file, if you can't set CSP directive style-src: 'unsafe-inline' #} - {#- #} + {% if title %} + + + {% endif %} Skip to main content
- {{ metadata.title }} + {{ metadata.title }} - {#- Read more about `eleventy-navigation` at https://www.11ty.dev/docs/plugins/navigation/ #}
diff --git a/_includes/layouts/home.njk b/_includes/layouts/home.njk index cfb97f6..7851efc 100644 --- a/_includes/layouts/home.njk +++ b/_includes/layouts/home.njk @@ -1,16 +1,8 @@ --- layout: layouts/base.njk +showPostListHeader: yep --- - -{%- css %}{% include "public/css/message-box.css" %}{% endcss %} -
-
    -
  1. Edit the _data/metadata.js with your blog’s information.
  2. -
  3. (Optional) Edit eleventy.config.js with your configuration preferences.
  4. -
  5. Delete this message from _includes/layouts/home.njk.
  6. -
-

This is an Eleventy project created from the eleventy-base-blog repo.

-
- +

The personal website and blog of Nathan Upchurch.

+

Welcome to my personal website and blog, where I write about tech, free and open source software, design, vegan cooking, incense, music, and all sorts of other topics that I find interesting.

{{ content | safe }} diff --git a/_includes/layouts/post.njk b/_includes/layouts/post.njk index 9543d2d..0824277 100644 --- a/_includes/layouts/post.njk +++ b/_includes/layouts/post.njk @@ -10,7 +10,7 @@ layout: layouts/base.njk
  • {%- for tag in tags | filterTagList %} {%- set tagUrl %}/tags/{{ tag | slugify }}/{% endset %} -
  • {%- if not loop.last %}, {% endif %}
  • +
  • {%- endfor %} @@ -24,5 +24,6 @@ layout: layouts/base.njk {%- if previousPost %}
  • Previous: {{ previousPost.data.title }}
  • {% endif %} {%- if nextPost %}
  • Next: {{ nextPost.data.title }}
  • {% endif %} +

    Did this post make you feel happy, sad, or angry? Come praise, cry, or yell at me on Mastodon.

    {%- endif %} {%- endif %} diff --git a/_includes/postslist.njk b/_includes/postslist.njk index 99272c5..6527c98 100644 --- a/_includes/postslist.njk +++ b/_includes/postslist.njk @@ -1,9 +1,23 @@ -{%- css %}.postlist { counter-reset: start-from {{ (postslistCounter or postslist.length) + 1 }} }{% endcss %} -
      -{% for post in postslist | reverse %} -
    1. - {% if post.data.title %}{{ post.data.title }}{% else %}{{ post.url }}{% endif %} - -
    2. -{% endfor %} -
    +
    +{% if showPostListHeader %}

    Latest Posts

    {% endif %} +
    + {% for post in postslist | reverse %} + + {% endfor %} +
    +
    diff --git a/content/404.md b/content/404.md index bd51f61..ab399dd 100644 --- a/content/404.md +++ b/content/404.md @@ -1,19 +1,5 @@ --- -layout: layouts/home.njk +layout: layouts/404.njk permalink: 404.html eleventyExcludeFromCollections: true --- -# Content not found. - -Go home. - - diff --git a/content/404.md.backup b/content/404.md.backup new file mode 100644 index 0000000..bd51f61 --- /dev/null +++ b/content/404.md.backup @@ -0,0 +1,19 @@ +--- +layout: layouts/home.njk +permalink: 404.html +eleventyExcludeFromCollections: true +--- +# Content not found. + +Go home. + + diff --git a/content/about/index.md b/content/about/index.md index 18367d8..f383e99 100644 --- a/content/about/index.md +++ b/content/about/index.md @@ -1,9 +1,8 @@ --- layout: layouts/base.njk eleventyNavigation: - key: About Me + key: About order: 3 --- -# About Me - -I am a person that writes stuff. +# About the author, Nathan Upchurch. +

    I'm a prolific vegan home cook, classical trombonist, a FLOSS enthusiast, daily GNU/Linux user and unabashed KDE stan, speaker of subpar elementary Spanish, incense enthusiast, writer, electronics hobbyist, designer, programmer, music producer, print lover, and human with too many interests and too little time. This is my personal website and blog.

    Because this is my personal website, I'm not here to talk about work, but I will link my professional bio here when I've gotten around to making it. If you would like to say something nice, you can find me on Mastodon.

    This website is made with 11ty, Manrope, Playfair Display, and plain-old HTML & CSS. I don't collect any of your data, full-stop. No analytics, no "anonymized data," nothing. All webfonts, icons, and images are hosted locally (Instead of by Google, for instance, or any other company which might use them to track you).


    Blogs are the soul of the web! To find more, visit blogroll.org, or ooh.directory.

    diff --git a/content/blog.njk b/content/blog.njk index c7e04d6..e9aa09f 100644 --- a/content/blog.njk +++ b/content/blog.njk @@ -1,10 +1,14 @@ --- -layout: layouts/home.njk +layout: layouts/base.njk eleventyNavigation: - key: Archive + key: Blog order: 2 --- -

    Archive

    +

    Nathan Upchurch’s Personal Blog: Latest Posts.

    + +

    +Looking for something in particular? Have a look at this convenient list of post categories to filter results by topic. +

    {% set postslist = collections.posts %} {% include "postslist.njk" %} diff --git a/content/blog/build-an-svg-circle-grid-with-p5js/build-an-svg-circle-grid-with-p5js.md b/content/blog/build-an-svg-circle-grid-with-p5js/build-an-svg-circle-grid-with-p5js.md new file mode 100644 index 0000000..cbbaa9f --- /dev/null +++ b/content/blog/build-an-svg-circle-grid-with-p5js/build-an-svg-circle-grid-with-p5js.md @@ -0,0 +1,451 @@ +--- +title: Build an SVG Circle Grid with p5.js +description: Make a configurable SVG graphic of a grid of circles in random colors and sizes with p5.js. +date: 2023-06-18 +tags: + - Processing + - p5.js + - Code Tutorial + - SVG +synopsis: In this tutorial, we'll learn how to make a configurable SVG graphic of a grid of circles in random colors and sizes with p5.js. +imageURL: /img/terminal.svg +imageAlt: A stylized illustration of a terminal prompt. +--- +Processing is a fantastic language for creative programming and learning how to code, allowing programmers of all skill levels to quickly and simply create complex graphics, data visualizations, and generative art. Its Javascript implementation, p5.js, is perfect for those already familiar with Javascript, or who want to use processing to make graphics for the web without the complexity of SVG, or the insanity of using CSS for complex graphics. Today we're going to build [a simple but pretty graphic using P5](#et-voila). + +## Our goal +First, let's define exactly what we're going to be making. We want to make a grid of circles that: +1. Fills the viewport +2. Randomly assigns a size to each circle +3. Randomly assigns a color to each circle +4. Is flexible and avoids hardcoded values, allowing us to get a variety of different looks depending on our parameters +5. Allows us to download our generated image as an SVG + +With that nailed down, let's go ahead and get set up. + +## Setup +Processing has a handy IDE, much like Arduino, that we can use to get started quickly. Processing IDE is available as a Flatpak, so it should be simple to install no matter what distro you're running. If, sadly, you're on Windows or MacOS, I'm sure there is also a simple way to install it on your machine that can be worked out with a quick search on the internet. + +Once you've installed and launched the IDE, at the top right you'll notice a dropdown that says "Java." This is the Processing IDE's mode selector. Click the dropdown, and choose "Manage Modes." In the new window, install "p5.js Mode," and switch to p5.js using the mode selector. + +## Getting started +If you've done everything correctly up to now, you should see two tabs in your IDE: a .js file, and index.html. Our .js file should look like this: +``` javascript +function setup() { + +} + + +function draw() { + +} +``` +and our index.html should look like this: +``` html + + + + + + + + + + + + + + + + + +``` +In any processing sketch, there are two main functions, as you can see by looking at our .js file. `setup()` will run once when the sketch is loaded, and `draw()` will loop repeatedly. For our purposes, we don't need `draw()`, so we'll just leave it empty. + +Now that we have our boilerplate, the next thing we need to do is set up the canvas for our sketch. As you may recall, we want our sketch to fill the viewport, so let's set up a canvas inside of our `setup()` function like so: +``` javascript +function setup() { + createCanvas(window.innerWidth, window.innerHeight); + background(0); + noStroke(); +} +``` +Now if we click the play icon at the top left of the Processing IDE, a browser window should open and load a page showing our sketch so far. We ought to see a viewport entirely covered with one large black canvas. +[![The LibreWolf web browser opened to localhost. The viewport is entirely black.](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-canvas.webp)](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-canvas.webp) + +## Random results +To meet conditions two and three of our goal, we'll need a way to get random numbers. Let's write a quick function inside `setup()` to provide us with random integers: +``` javascript + const getRandomInt = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min) + min); + } +``` + +## Let's make some circles +To make a circle in p5, we need to define three parameters: x position, y position, and its diameter. With that in mind, we can define a circle like so: +``` javascript +circle(10,10,10); +``` +Add one to the bottom of `setup()` and refresh your browser tab if you'd like to test it out. Be sure and delete it afterwards. + +We're going to be making a grid of circles, however, so we are going to need a little more information. First, let's start by generating a line of circles. Although we only need to generate a line of circles on one axis for the purpose of making a grid, a row or a column, for the sake of future flexibility, we'll assume that our line might be horizontal, vertical, or diagonal. To do this, we'll need the following information: +* Line start position x +* Line start position y +* Distance between circles on x +* Distance between circles on y +* Minimum circle diameter +* Maximum circle diameter +* Quantity of circles +* The axis upon which our line extends +* An array of colors for our circles + +You'll notice that we have min-max values for circle diameter, and an array for our circle colors. This is so that a size and color can be chosen randomly by our program. + +With that out of the way, let's start writing a function to generate our line of circles inside `setup()`: +``` javascript +const generateCircleLine = (startX, startY, distX, distY, minD, maxD, qty, axis, fillArr) => { +} +``` + +We are going to need to increment our starting coordinates, so let's assign two variables to those parameters: +``` javascript +let x = startX; +let y = startY; +``` + +And we can write our loop inside of `generateCircleLine()`: +``` javascript +for (let i = 0; i < qty; i++) { + + const diameter = getRandomInt(minD-1, maxD); + + if (!i) { + fill(...fillArr[getRandomInt(0, fillArr.length)]); + circle(x,y,diameter); + + continue; + } + + switch (axis) { + case 'x': + x = !distX ? x + startX : x + distX; + break; + case 'y': + y = !distY ? y + startY : y + distY; + break; + case 'xy': + x = !distX ? x + startX : x + distX; + y = !distY ? y + startY : y + distY; + break; + } + + fill(...fillArr[getRandomInt(0, fillArr.length)]); + circle(x,y,diameter); +} +``` +In the loop above: +* We start by assigning `diameter` to a random integer between `minD` and `maxD` +* Then, if `i` is false / 0, indicating that we're on our first iteration, we randomly choose a fill color value from `fillArr`, draw our first circle, and continue on to our next iteration. +* Now that we're on iteration 1 / circle 2, we need to figure out what axis or axes our line is on, and calculate the new starting coordinates for the circle about to be drawn. For this, we use a switch statement, so if we are operating on the x asis, only the x starting coordinate will be incremented, et cetera. We have used the ternary operator here to indicate that if a distance is not specified along any given axis, the program should increment by a distance equal to its starting coordinate. +* As we now have our coordinates, we choose a random fill color from fillArr, draw our next circle, and repeat until `i < qty`. + +That was a lot, so let's look at our code and make sure everything is alright. This is what our code should look like at the moment: +``` javascript +function setup() { + createCanvas(window.innerWidth, window.innerHeight); + background(0); + noStroke(); + + const getRandomInt = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min) + min); + } + + const generateCircleLine = (startX, startY, distX, distY, minD, maxD, qty, axis, fillArr) => { + + let x = startX; + let y = startY; + + for (let i = 0; i < qty; i++) { + + const diameter = getRandomInt(minD-1, maxD); + + if (!i) { + fill(...fillArr[getRandomInt(0, fillArr.length)]); + circle(x,y,diameter); + + continue; + } + + switch (axis) { + case 'x': + x = !distX ? x + startX : x + distX; + break; + case 'y': + y = !distY ? y + startY : y + distY; + break; + case 'xy': + x = !distX ? x + startX : x + distX; + y = !distY ? y + startY : y + distY; + break; + } + + fill(...fillArr[getRandomInt(0, fillArr.length)]); + circle(x,y,diameter); + } + } +} + + +function draw() { + +} +``` + +We can check that everything is working by calling our new function at the bottom of `setup()`: +``` javascript +generateCircleLine(10, 10, 20, 0, 5, 10, 10, 'x', [[255,255,255]]); +``` +[![The LibreWolf web browser opened to localhost. The viewport is black, with a single row of ten white circles in varying sizes in the top-left corner.](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-line.webp)](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-line.webp) +And look at that! We have a line! + +## Repeating rows +As we now have a function built to generate lines of circles, all we need to do is repeat the process and we'll have a grid. In `setup()`, let's go ahead and create `generateCircleGrid()` to do just that. Because we'll be passing our parameter values from `generateCircleGrid()` to `generateCircleLine()`, we'll need all of the same information, plus a few new parameters: +``` javascript + const generateCircleGrid = (rowStartX, rowStartY, rowDistX, minD, maxD, rowCircleQty, numRows, rowSpacing, fillArr) => { +} +``` +Inside our new function, all we need to do is call `generateCircleLine()` in a loop and we'll have ourselves a grid: +``` javascript +for (let i = 0; i < numRows; i++) { + rowYPosition = !i ? rowStartY : rowStartY + rowSpacing*i; + generateCircleLine(rowStartX, rowYPosition, rowDistX, 0, minD, maxD, rowCircleQty, 'x', fillArr); +} +``` +In the first line of our for loop, we're checking whether we're in the first iteration (`i == 0`). If so, `rowYPosition` is assigned to rowStartY; otherwise, `rowYPosition` is assigned to `rowStartY + rowSpacing*i`. That means that on our second+ iterations, our row starting coordinate is incremented by our row spacing value multiplied by the current iteration number, ensuring that each iteration draws a row at the correct y coordinate. + +We've hardcoded 'x' in the `generateCircleLine()` parameter, so that we only have to worry about incrementing one axis as we generate our grid: `generateCircleLine()` will create columns, and `generateCircleGrid()` loops them to generate rows. To this end, we're also passing 0 to the `distY` in generateCircleLine()`. + +## The perfect fit +So, we can create lines of circles, and use those to make a grid, but we have a problem. Right now, our sketch needs to be explicitly told how many circles to draw in each row. We need a way to determine how many circles ought to be drawn in order to fill the canvas on a given axis. + +Fortunately, this is an easy fix. If write a function inside `setup()` to subtract our starting coordinate from the window dimension for a given axis, divide the result by the distance between circles, and return the result, we should wind up with just the right nimber of circles to fit within that axis. We'll also give our function a parameter called `axis`. Using this parameter, we'll specify whether the operation should use `window.innerWidth` to return a result for the x axis, or `window.innerHeight` to return a result for the y axis. + +``` javascript +const getMaxCircles = (distance, axis, startDistance)=> { + return Math.floor(axis == 'x' ? (window.innerWidth - startDistance) / distance : + (window.innerHeight - startDistance) / distance); +} +``` + +## Specifying the grid +We're now all set up to begin actually generating grids, so let's make one! To keep things neat, let's specify our grid in an object called `myGrid` that contains all the parameters we'll need. Here's what mine looks like: +``` javascript +const myGrid = { + rowStartX: 20, + rowStartY: 20, + rowDistX: 20, + minDiameter: 5, + maxDiameter: 15, + rowSpacing: 20, + rowCircleQty: function() {return getMaxCircles(this.rowDistX, 'x', this.rowStartX)}, + numRows: function() {return getMaxCircles(this.rowSpacing, 'y', this.rowStartY)}, + fillArray: [ + [100, 50, 255], + [100, 100, 255], + [100, 150, 255], + [100, 200, 255], + [100, 250, 255] + ] +} +``` +You may notice a couple of things: +* I've taken advantage of the `getMaxCircles()` function we wrote earlier to calculate ideal values for `myGrid.rowCircleQty`, and `myGrid.numRows`. +* `myGrid.fillArray` is using RGB values. Check the [p5.js documentation](https://p5js.org/reference/#/p5/fill) for other color values you can use. + +Feel free to customize `myGrid` to make your ideal circle grid, and call `generateCircleGrid()` to see the result: + +``` javascript +generateCircleGrid( + myGrid.rowStartX, + myGrid.rowStartY, + myGrid.rowDistX, + myGrid.minDiameter, + myGrid.maxDiameter, + myGrid.rowCircleQty(), + myGrid.numRows(), + myGrid.rowSpacing, + myGrid.fillArray +); +``` + +[![The LibreWolf web browser opened to localhost. The viewport is filled with circles of varying sizes in various shades of blue.](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-grid.webp)](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-grid.webp) + +## SVG export +Looking back on our goals, we've accomplished all but one: SVG export. Happily, there's [a library](https://github.com/zenozeng/p5.js-svg) that makes this trivial. All we need to do is link the script in the `` of index.html, +``` html + +``` +add a button in ``, +``` html + +``` +style it in ` + + + + + + +``` + +## Et voilà +And we're done! Now you can tweak the parameters and make grids with all sorts of colors and size variations, and even export and edit them in Inkscape! +[![The LibreWolf web browser opened to localhost. The viewport is filled with circles of varying sizes in various shades of blue. There is a button reading "Save SVG" in the bottom right corner.](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-complete.webp)](../../img/posts/build-an-svg-circle-grid-with-p5js/circle-grid-complete.webp) +If you'd like to make this project even better, maybe consider implementing a GUI to adjust your grid paramaters, or adding some interactivity. diff --git a/content/blog/fifthpost.md b/content/blog/fifthpost.md deleted file mode 100644 index b173821..0000000 --- a/content/blog/fifthpost.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: This is a fifth post (draft) -date: 2023-01-23 -draft: true ---- -This is a draft post diff --git a/content/blog/firstpost.md b/content/blog/firstpost.md deleted file mode 100644 index 0557716..0000000 --- a/content/blog/firstpost.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: This is my first post. -description: This is a post on My Blog about agile frameworks. -date: 2018-05-01 -tags: - - another tag ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. - -```diff-js - // this is a command - function myCommand() { -+ let counter = 0; -- let counter = 1; - counter++; - } - - // Test with a line break above this line. - console.log('Test'); -``` diff --git a/content/blog/floss-and-smes.md b/content/blog/floss-and-smes.md new file mode 100644 index 0000000..f34ce60 --- /dev/null +++ b/content/blog/floss-and-smes.md @@ -0,0 +1,28 @@ +--- +title: Free Software is the Future for SMEs and Small Nonprofits +description: Tech giants aren't meeting the needs of SMEs and nonprofits. Combined with digital privacy concerns, a perfect storm is brewing for increased adoption of free and open source software for these organizations. +date: 2022-10-28 +tags: + - FOSS/FLOSS + - Digital Privacy +synopsis: Tech giants aren't meeting the needs of SMEs and nonprofits. Combined with digital privacy concerns, a perfect storm is brewing for increased adoption of free and open source software for these organizations. +imageURL: /img/posts/floss-and-smes/pedro-lastra-Nyvq2juw4_o-unsplash.webp +imageAlt: A stylized illustration of a terminal prompt. +--- +If you're a cottage industry solopreneur, a cricut hobbyist, or a makerspace regular, you've probably heard of Inkscape. Often dismissed by design professionals as a poor substitute for fully fleshed out design tools or simply "not industry standard," this 19 year old vector graphics powerhouse allows artists, designers, scrapbookers and makers alike to create high quality graphics and illustrations that can be used anywhere, from the browser to printed collateral and laser-etched goods. Inkscape, like many other free and open source software (FOSS) projects, has been taking great strides in recent years to match, if not surpass, commercial alternatives in terms of features, output, and usability. FOSS users have long been privy to a a world of software all but unknown to those who have never ventured from the comfort of Microsoft, Adobe, Alphabet, and Oracle, or the shimmering walled-garden of the Apple ecosystem. It hasn't always been easy, pretty, or even stable, but these days free and open source software projects are more organized, better funded, and more accountable than ever before, and people are starting to take notice. + +## FOSS offers a level of flexibility and transparency that proprietary mainstays can't or won't provide. +As free and open source software becomes increasingly attractive to small businesses and nonprofits due to expanding feature-sets and improved user-interfaces, the principles at the core of its creation, perhaps counterintuitively, render projects such as Inkscape ideal for a business environment. While those unfamiliar with the concept of FOSS projects may interpret "free" to reflect its pricing structure, developers can and do charge for access to their products. Instead, the "F" in FOSS represents the freedom to run the program however you want, to study how it works, to change it, and to redistribute copies. FOSS software, in addition, must also publish its source code publicly. This radically transparent approach, beyond the obvious implication that FOSS software is vastly more flexible than proprietary mainstays, can have a tremendous effect on security and privacy, both key with software present on devices containing sensitive employee information, intellectual property, and credentials. While the dialogue surrounding digital privacy has almost exclusively focused on individual users, as we're now aware of the ability of marketers, campaigns, ([or even John Oliver](https://www.youtube.com/watch?v=wqn3gR1WTcA)) to purchase highly targeted, fine-grained data for any purpose, it's only a matter of time before more organizations begin to consider the implications of the potential for proprietary software to indiscriminately collect employee web-searches, map routes, downloads, and discussions to turn into data-points available for purchase by anyone with the budget, such as competitors, marketers, journalists, or government and regulatory bodies, domestic and abroad. + +This is where FOSS starts to make a lot more sense from a privacy perspective; because human-readable source code is generally transformed, or compiled, into a more efficient language that can only be read by computers before software is distributed to users, FOSS software authors publish their human-readable source code publicly, enabling anyone to review it. In contrast, companies behind proprietary software do not publicly publish their source code, making it almost impossible to understand precisely how their software works, or what it's doing at any given time. We already know that just about all big names in tech collect private data; we either shrug our shoulders and make peace with it, or we suffer through innumerable privacy policies, settings, sliders, and toggles, and still itch a little afterwards. But what about the tools we use every day that don't have a privacy policy? What about your picture viewer, your file browser, or even your calculator app? The stringent efforts of even the most militant IT departments to block users from installing unapproved software are moot in the face of the fact that we have no way of truly knowing what even the most fundamental software tools from trusted brands are actually doing on the devices that we use to do our work each day. By enabling public access to its source code, free and *open source* software can see have dozens, hundreds or even thousands of tech-savvy users pointing out security flaws to be fixed, alerting developers to bugs, and raising alarm bells about potential privacy issues. + +## Individual users and small organizations can directly influence development of the FOSS tools they use every day. +The focus on transparency in FOSS software engenders a culture of collaboration all but alien to organizations accustomed to proprietary solutions. Successful projects build communities of developers and other contributors, who are each free to work in their own way. Some contributors are individuals who stop by to implement a feature they wish a project had, while others are teams paid by large enterprises to improve open source projects that form a part of their digital infrastructure. Some individuals simply work on FOSS projects as a hobby, and others, like [Inkscape's Martin Owens](https://www.youtube.com/channel/UCPxxdsRV92DZGE-RcRsw_gw), are freelance developers who collect donations to work on bug fixes and features using donor feedback to prioritize their tasks and steer their work. Martin regularly uploads videos on his [YouTube channel](https://www.youtube.com/channel/UCPxxdsRV92DZGE-RcRsw_gw) and [Patreon](https://www.patreon.com/doctormo) to fill in donors on the latest Inkscape updates and development work, and uses polls to allow them to vote on which features should be prioritized for the next release. Donors can message him directly, for technical support, questions, or suggestions. Developers on Inkscape and other FOSS projects can be reached via public mailing lists and chat channels, and software users often interact directly with them via bug reports and feature requests. This makes each user a potential collaborator in the development of the tools they use. + +Only a few weeks ago, I filed [a feature request](https://bugs.kde.org/show_bug.cgi?id=454674) for [Kasts](https://apps.kde.org/kasts/), a desktop app that syncs and plays podcasts. After a discussion with one of the developers, they eventually sent me a link to test the feature, which is now in the latest release. This culture of collaboration represents a unique opportunity for SMEs and nonprofits that may not have the budget for custom enterprise solutions. So long as organizations understand and respect the culture, a reasonable donation budget and a willingness to collaborate can open avenues for smaller organizations to work with developers, freelancers, designers, and others within FOSS projects to work towards better experiences and expanded feature sets. Whether this takes the shape of donating a sum in support of the project, and participating by filing competent bug reports and feature requests, or directly commissioning a developer on the project to design and implement a needed feature, needed funds are usually a far cry away from big-budget proprietary-software customizations, and having the option to even speak to a developer at all is a breath of fresh air when compared to the usual experience dealing with sales representatives and account managers. Of course, commercial users of free and open source software must temper their expectations; as with proprietary software, there are no guarantees that the project will go in the direction you'd like, and FOSS projects have no obligation to provide support or develop suggested features no matter how much you donate. + +## Many FOSS projects have long been ready for professional and enterprise use. +Beyond privacy, security, and collaboration potential, FOSS alternatives are getting better by the day. Many open source projects are being developed at a breakneck pace while receiving major corporate support, and projects strictly manned by volunteers are more organized than ever before. An uptick in donations sees some projects considering diverting a portion of donated funds to outsourcing some of the more arduous development tasks less likely to be quickly tackled by volunteers. While FOSS projects such as GNU/Linux based operating systems and the software written for them have long played a critical role in the world's digital infrastructure, often even serving as the base upon which commercial products are built, free software is no longer resigned to the server room, with consumer products such as Valve's Steam Deck being based on projects such as the Arch Linux desktop operating system and KDE's Plasma desktop environment, a computer graphical user interface that looks good enough to compete with large commercial players like Microsoft's Windows Shell and Apple's Aqua, and flogs both of them when it comes to flexibility and customization. It is not uncommon for free-of-charge FOSS projects such as Inkscape to now boast a feature-set comparable, or as in the case of Inkscape, even exceeding that of their paid competitors, and large communities such as those of GNOME and KDE have developed extensive collections of software that can take the place of hundreds of proprietary software tools at zero cost. + +## As organizations begin to see FOSS benefits, big tech is likely to begin losing market share. +While big names in tech continue to erode user privacy and ownership of their software via expanding data collection and subscription models that see users unable to use a PDF reader without connecting to the internet, knowledge of FOSS projects is becoming less and less of the domain of the hyper tech-literate. Our world has already become one in which feature-rich, fast, and well designed free and open source software can replace most black-box proprietary solutions, and for SMEs and nonprofits in the know, the flexibility, privacy expectations, and price-point makes FOSS an extremely attractive proposition. Tech giants won't lose sluggish enterprise clients any time soon, but the writing is on the wall for the many smaller organizations without the budgets for multi-million dollar IT contracts, unless they do something fast. diff --git a/content/blog/fourthpost/fourthpost.md b/content/blog/fourthpost/fourthpost.md deleted file mode 100644 index 8149f7c..0000000 --- a/content/blog/fourthpost/fourthpost.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: This is my fourth post. -description: This is a post on My Blog about touchpoints and circling wagons. -date: 2018-09-30 -tags: second tag ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -{% image "./possum.png", "A possum parent and two possum kids hanging from the iconic red balloon" %} - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. - diff --git a/content/blog/fourthpost/possum.png b/content/blog/fourthpost/possum.png deleted file mode 100644 index f332150e73c8054c9287addbbb8c33eedcbd838f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130230 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%0Aizr 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 diff --git a/content/blog/scp-command.md b/content/blog/scp-command.md new file mode 100644 index 0000000..d925334 --- /dev/null +++ b/content/blog/scp-command.md @@ -0,0 +1,50 @@ +--- +title: How to Transfer Files Securely with the “scp” Command +description: How to transfer files to and from a remote Server with the scp / secure copy command +synopsis: How to transfer files to and from a remote Server with the scp / secure copy command +date: 2023-06-12 +tags: + - GNU/Linux + - Tutorial + - CLI Tools +imageURL: /img/terminal.svg +imageAlt: A stylized illustration of a terminal prompt. +--- +Copying files to and from remote servers is a common chore that can initially seem uncommonly tricky. Thankfully, we have the `scp` command, also known as the secure copy command, as a simple way to initiate secure transfers to and from your remote boxes. +## First, make sure your permissions are in order +Just like when you `ssh` into your server, when using `scp`, you need to ensure that the user you intend to use to log in to the remote server has access to the files and directories you'll need to access on your remote machine. For instance, if you want to copy a file from a remote server that only the root user has access to, you will need to either: +1. Specify the root user in your `scp` command; +2. `ssh` into the remote server as root and edit the file's permissions and / or move it somewhere accessible to the user you will specify in your `scp` command; +3. `ssh` into the remote server as a user with sudo permissions and edit the file's permissions and / or move it somewhere accessible to the user you will specify in your scp command; + +Hopefully, you have disabled remote root login to your server via `ssh` for security reasons, so you will use option three, if necessary, prior to executing your `scp` command. + +Using `scp` is very similar to using the `ssh` command. Both tools share some flags, and their commands look similar, the key difference being that `scp` is not interactive; every action you wish to take on your remote machine must be encapsulated in your `scp` command, which is why you must first ensure that the user specified in your `scp` command has access to any files or directories you want to transfer to or from. + +## Examples +### Copying from a remote server +Just like you might when logging in via the `ssh` command, if you've changed your default `ssh` port to something other than 22, you'll need to specify it with the `-P` flag; if you're using key-based authentication, you'll also need to specify your key with the `-i` flag: +``` bash +scp -P [port] -i [keyPath] [remoteUser]@[remoteServerNameOrIP]:[filePath] [downloadPath] +``` +### Copying to a remote server +When uploading, your command should look like this, with the local file path before your username and server address: +``` bash +scp -P [port] -i [keyPath] [filePath] [remoteUser]@[remoteServerNameOrIP]:[uploadPath] +``` + +### Other options +Copy the contents of a directory recursively using the `-r` flag: +``` bash +scp -r [remoteUser]@[remoteServerNameOrIP]:[filePath] [downloadPath] +``` +Copy a file between two remote hosts directly: +``` bash +scp [remoteUser1]@[remoteServerNameOrIP1]:[filePath] [remoteUser2]@[remoteServerNameOrIP2]:[filePath] +Copy a file between two remote hosts, routing through your local machine: +``` bash +scp -3 [remoteUser1]@[remoteServerNameOrIP1]:[filePath] [remoteUser2]@[remoteServerNameOrIP2]:[filePath] +``` + +### That's all there is to it. +And there you have it: one simple command to transfer files to and from your remote servers. So long as your remote users have the prerequisite permissions to access the correct remote files and directories, and there's nothing wrong with your `ssh` setup, transferring files with `scp` is a breeze. diff --git a/content/blog/secondpost.md b/content/blog/secondpost.md deleted file mode 100644 index 3c521a6..0000000 --- a/content/blog/secondpost.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: This is my second post with a much longer title. -description: This is a post on My Blog about leveraging agile frameworks. -date: 2018-07-04 -tags: - - number 2 ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -## Section Header - -First post -Third post - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. diff --git a/content/blog/thirdpost.md b/content/blog/thirdpost.md deleted file mode 100644 index bdea878..0000000 --- a/content/blog/thirdpost.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: This is my third post. -description: This is a post on My Blog about win-win survival strategies. -date: 2018-08-24 -tags: - - second tag - - posts with two tags ---- -Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. - -## Code - -### Styled (with Syntax) - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -```js -// this is a command -function myCommand() { - let counter = 0; - counter++; -} - -// Test with a line break above this line. -console.log('Test'); -``` - -### Unstyled - -Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. - -``` -// this is a command -function myCommand() { - let counter = 0; - counter++; -} - -// Test with a line break above this line. -console.log('Test'); -``` - -## Section Header - -Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. diff --git a/content/feed/feed.njk b/content/feed/feed.njk index a47a7e8..4912d24 100755 --- a/content/feed/feed.njk +++ b/content/feed/feed.njk @@ -16,11 +16,18 @@ permalink: /feed/feed.xml {%- for post in collections.posts | reverse %} {% set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.url) }}{% endset %} + {% if post.image-url %}{% set imageURL %}{{ post.image-url | htmlBaseUrl(metadata.url) }}{% endset %}{% endif %} + {% set defaultImageURL %}{{ metadata.defaultPostImageURL | htmlBaseUrl(metadata.url) }}{% endset %} {{ post.data.title }} {{ post.date | dateToRfc3339 }} {{ absolutePostUrl }} + + {% if post.image-url %}{{ imageURL }}{% else %}{{ defaultImageURL }}{% endif %} + {% if post.image-alt %}{{ post.image-alt }}{% else %}{{ metadata.defaultPostImageAlt }}{% endif %} + + {{ post.templateContent | transformWithHtmlBase(absolutePostUrl, post.url) }} {%- endfor %} diff --git a/content/index.njk b/content/index.njk index c23cd54..217d9b5 100644 --- a/content/index.njk +++ b/content/index.njk @@ -7,15 +7,13 @@ numberOfLatestPostsToShow: 3 --- {% set postsCount = collections.posts | length %} {% set latestPostsCount = postsCount | min(numberOfLatestPostsToShow) %} -

    Latest {{ latestPostsCount }} Post{% if latestPostsCount != 1 %}s{% endif %}

    - {% set postslist = collections.posts | head(-1 * numberOfLatestPostsToShow) %} {% set postslistCounter = postsCount %} {% include "postslist.njk" %} {% set morePosts = postsCount - numberOfLatestPostsToShow %} {% if morePosts > 0 %} -

    {{ morePosts }} more post{% if morePosts != 1 %}s{% endif %} can be found in the archive.

    +

    See {{ morePosts }} more post{% if morePosts != 1 %}s{% endif %} in the blog.

    {% endif %} {# List every content page in the project #} diff --git a/content/tags-list.njk b/content/tags-list.njk index 3050c9c..2ba0abb 100644 --- a/content/tags-list.njk +++ b/content/tags-list.njk @@ -1,10 +1,14 @@ --- permalink: /tags/ -layout: layouts/home.njk +layout: layouts/base.njk --- -

    Tags

    +

    Here are some things I like to talk about.

    -