<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kevin C. Coram</title><link>https://kevin.thecorams.net/</link><description>Recent content on Kevin C. Coram</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>&amp;copy; 2019-2020 Kevin C. Coram | Except where otherwise noted, All Rights Reserved</copyright><lastBuildDate>Fri, 30 Oct 2020 10:53:20 -0400</lastBuildDate><atom:link href="https://kevin.thecorams.net/index.xml" rel="self" type="application/rss+xml"/><item><title>First Warhammer 4k Models</title><link>https://kevin.thecorams.net/posts/2021/05/15/first-4k-models/</link><pubDate>Sat, 15 May 2021 13:12:55 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2021/05/15/first-4k-models/</guid><description>I have long been curious about the Warhammer games, but I never really looked into the hobby until recently. The local comics and games store has a whole rack devoted to Warhammer: Age of Sigmar and Warhammer 40,000, and were only too happy to discuss the hobby and why they find it so enjoyable. I ended up picking up the Getting Started With Warhammer 40,000 magazine there, which comes with a couple of models.</description></item><item><title>WHOOP</title><link>https://kevin.thecorams.net/career/whoop/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/whoop/</guid><description>Full stack engineer on the Growth team, using Java and ReactJS to enhance the member's experience on the WHOOP accessory storefront.</description></item><item><title>Election results should not be taken as a mandate</title><link>https://kevin.thecorams.net/posts/2020/11/election-not-a-mandate/</link><pubDate>Sat, 07 Nov 2020 14:19:00 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/11/election-not-a-mandate/</guid><description>&lt;p>I have refrained from writing any articles about current events for quite some time. I don't really intend for this blog to be a forum for political discourse; I would much prefer to think and write about technical matters. Still, events are happing and the outcomes are likely to affect me and mine for some time to come.&lt;/p></description></item><item><title>Home Lab Updates</title><link>https://kevin.thecorams.net/posts/2020/09/home-lab-updates/</link><pubDate>Wed, 16 Sep 2020 20:56:14 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/09/home-lab-updates/</guid><description>At first, installing ArchLinux or Manjaro into a libvirt VM was looking to be difficult. The &lt;code>virt-install&lt;/code> program only supports adding the extra kernal arguments that would enable a tty console when also run with the &lt;code>--location&lt;/code> argument. Neither ArchLinux nor Manjaro provide a location that &lt;code>virt-install&lt;/code> understands. Rather, both provide an ISO image to boot from. With no console to attach to, I thought I was not going to be able to proceed.</description></item><item><title>vagrant-libvirt and Bridged Networking</title><link>https://kevin.thecorams.net/posts/2020/08/libvirt-bridging/</link><pubDate>Tue, 18 Aug 2020 19:08:41 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/08/libvirt-bridging/</guid><description>Once I had a way to install virtual machines on my Ubuntu home lab server, my next goal was to be able to directly SSH into them from my laptop. By default, the Vagrant-installed libvirt virtual machines all connect to a virtual subnet. In order to be able to connect from other computers in my home, I needed to set up Bridged Networking.
Updating Netplan Configuration In order to set up Bridged Networking, I first had to update how my server configures its network.</description></item><item><title>Trying out ArchLinux using libvirt and Vagrant</title><link>https://kevin.thecorams.net/posts/2020/08/vagrant-libvirt/</link><pubDate>Thu, 13 Aug 2020 22:22:43 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/08/vagrant-libvirt/</guid><description>I have been curious about the ArchLinux distribution for some time. I have a Ubuntu 20.04 server running in headless mode in my home lab, with KVM + libvirt already set up, so I decided to set up a virtual machine to give Arch a try.
I spent a fair amount of time researching how best to use libvirt to create a new VM, but almost all of the tutorials and how-tos that I found assumed access to an X desktop, either with virt-manager or with some sort of graphics driver given to virt-install.</description></item><item><title>Nest Micropub - First Steps</title><link>https://kevin.thecorams.net/posts/2020/08/nest-micropub-first-steps/</link><pubDate>Sat, 08 Aug 2020 21:41:07 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/08/nest-micropub-first-steps/</guid><description>Now and then I feel like it would be convenient to be able to post quick notes, or to quickly save bookmarks, here on my blog. The obvious IndieWeb solution would be to add Micropub support. Since I have a desire to learn more about the NestJS framework for creating NodeJS servers, it seems like creating a Micropub server using NestJS will be a nice personal project.
My first step was to get a better handle on creating a NestJS application, particularly using the Nx tool set that I have come to greatly appreciate at work.</description></item><item><title>Adding OAuth Authentication - Addendum</title><link>https://kevin.thecorams.net/posts/2020/07/nginx-oauth-addendum/</link><pubDate>Fri, 31 Jul 2020 17:52:18 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/07/nginx-oauth-addendum/</guid><description>In my Adding OAuth Authentication to an Nginx Website article yesterday, I forgot to include one additional configuration setting that I needed to get Vouch to fully work.
With the default example Gitea configuration, I found that I was still getting Unauthorized errors. I had to watch the network calls to get access to the full error message. The problem was that even though I was authenticated, I was not actually authorized.</description></item><item><title>Adding OAuth Authentication to an Nginx Website</title><link>https://kevin.thecorams.net/posts/2020/07/nginx-oauth/</link><pubDate>Thu, 30 Jul 2020 22:20:25 -0400</pubDate><guid>https://kevin.thecorams.net/posts/2020/07/nginx-oauth/</guid><description>A project that I hope to get started on in the near future is working on creating a micropub end-point for my blog. There are some good open source starting points, but one of my goals is to use the project as a way to better learn server-side Node.js and/or Nest.js programming. Obviously, I will want a good authentication mechanism in place to protect against abuse of the micropub end-point, once I have one.</description></item><item><title>Windows Search Down - Update</title><link>https://kevin.thecorams.net/posts/2020/02/windows-search-down-update/</link><pubDate>Wed, 05 Feb 2020 22:20:30 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/02/windows-search-down-update/</guid><description>According to a Slashdot article that I just read, the problems with Windows Search have been resolved, with no need for everyone to edit their registries.
The problem was, in fact, Bing. For reasons only known to Microsoft, the Windows Search functionality apparently uses the Bing backend &amp;ndash; even for doing local searches. There was a service outage today, which caused the frustrating black screen to appear.
I still think it is pretty inexcusable.</description></item><item><title>Windows Search Down?</title><link>https://kevin.thecorams.net/posts/2020/02/windows-search-down/</link><pubDate>Wed, 05 Feb 2020 18:44:09 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/02/windows-search-down/</guid><description>Windows Search down for many — here's the fix
TL;DR: The issue is reportedly related to Bing, and the &amp;ldquo;fix&amp;rdquo; being suggested involves using RegEdit to disable Bing integration. Not for the faint of heart!
It's also pretty inexcusable . . .</description></item><item><title>Iowa Caucus App</title><link>https://kevin.thecorams.net/posts/2020/02/iowa-caucus-app/</link><pubDate>Tue, 04 Feb 2020 21:40:40 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/02/iowa-caucus-app/</guid><description>I really shouldn't laugh so much at someone else's misfortune or frustration. Still, as a 20+ year software developer, I have to wonder why anyone would have expected the plan to use a brand new &amp;ldquo;app&amp;rdquo; to count votes for the Iowa caucus to actually work out. It is never a good idea to make the first real-world use of a new application be something important and so publicly visible.</description></item><item><title>And Therein Lies the Rub</title><link>https://kevin.thecorams.net/posts/2020/01/therein-lies-the-rub/</link><pubDate>Thu, 30 Jan 2020 22:39:17 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/01/therein-lies-the-rub/</guid><description>The tagline of https://www.theregister.co.uk/2020/01/29/browser_security_enigma/ reads:
Brave, Google, Microsoft, Mozilla gather together to talk web privacy&amp;hellip; and why we all shouldn't get too much of it
Browser makers keep coming back to the need to please advertisers
And therein lies the rub.
Websites cost money to run. Content costs money to create. Software, such as web browsers, cost time and frequently money to create and maintain.
As the saying goes, &amp;ldquo;there ain't no such thing as a free lunch.</description></item><item><title>Great Article: The Top Five Developer Skills That'll Make You a Hero</title><link>https://kevin.thecorams.net/posts/2020/01/developer_skills/</link><pubDate>Thu, 23 Jan 2020 22:38:22 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/01/developer_skills/</guid><description>The Top Five Developer Skills That'll Make You a Hero (Hint: Involves LEGOs) by Jean-Paul Delimat is a great read. His advice for working on real-world software projects is spot-on. His LEGO analogies are both effective and some of the most amusing things that I have read all week.
I've been known to use Voltaire's quote &amp;ldquo;Perfect is the enemy of good&amp;rdquo; in the context of finding the line between beautiful code solutions and the pragmatics of delivering on-time.</description></item><item><title>Howto: Building the Site With Drone</title><link>https://kevin.thecorams.net/posts/2020/01/howto-build-site-with-drone/</link><pubDate>Sat, 11 Jan 2020 22:22:24 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/01/howto-build-site-with-drone/</guid><description>Everything that I needed to do to install and configure Drone.io in order to set up a simple CI/CD pipeline to rebuild and (eventaully) redeploy my website was documented somewhere on the Internet. I just had to piece the puzzle together from the information I found scattered among multiple sites. This post is my attempt to get everything documented in one place. I'm sure future-me will need the reminder. Hopefully, this information may be of some help to others as well.</description></item><item><title>Nested Forms in Angular - Part 2</title><link>https://kevin.thecorams.net/posts/2020/01/angular-nested-forms-part-2/</link><pubDate>Sat, 11 Jan 2020 10:45:12 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/01/angular-nested-forms-part-2/</guid><description>After publishing my original Nested Forms in Angular article, my friend and colleague Val Neekman suggested I add a fourth approach, where static factory methods on each of the child components are used instead of a separate factory service. So it is with my thanks to him for the idea, along with some sample code to look at and a much appreciated review of my implementation of the idea, that I am able to write up Part 2 in my Nested Forms in Angular series.</description></item><item><title>Building the Site With Drone.io</title><link>https://kevin.thecorams.net/posts/2020/01/building-site-with-drone/</link><pubDate>Mon, 06 Jan 2020 23:39:25 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2020/01/building-site-with-drone/</guid><description>It only took a few hours tonight to set up a new VPS machine with Docker, LetsEncrypt, and Drone.io to be able to build and deploy my Hugo blog to a test site. The whole CI/CD pipeline takes less than ten seconds to finish.
I will have to write up all of the details, including my docker-compose files, nginx configs, and .drone.yml later on this week. It's all super exciting to see it come together.</description></item><item><title>Nested Forms in Angular</title><link>https://kevin.thecorams.net/posts/2019/12/angular-nested-forms/</link><pubDate>Tue, 31 Dec 2019 22:50:00 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/angular-nested-forms/</guid><description>&lt;p>The official Angular documentation discussing &lt;a href="https://angular.io/guide/reactive-forms">Reactive Forms&lt;/a> shows how one can use groups and arrays to organize a form, and to dynamically add to it. The drawback of the example on that page is that everything is in a single component.&lt;/p>
&lt;p>Once a component starts to grow in size and complexity, it becomes desirable to decompose it into multiple smaller components. At this point, there are a number of ways to break up the form into a set of nested form elements.&lt;/p></description></item><item><title>Add Webmention Support</title><link>https://kevin.thecorams.net/site/2019/12/add-webmention-support/</link><pubDate>Mon, 23 Dec 2019 23:34:17 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/12/add-webmention-support/</guid><description>With many thanks to Using Web Mentions in a static site (Hugo), published by Paul Kinlan in October 2019, I have added Webmention support to the site.
For now, I am using Webmention.io to handle the heavy lifting of providing the Webmention end-point, the same way the above-referenced article describes.
With only minor modifications to the Node.js script from the article, I can pull down all mentions for my domain from Webmention.</description></item><item><title>More Responsive Site Design</title><link>https://kevin.thecorams.net/site/2019/12/more-responsive/</link><pubDate>Wed, 11 Dec 2019 22:56:43 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/12/more-responsive/</guid><description>My Semantic IndieWeb Theme currently being used for the site has been updated to provide a more responsive design. On landscape tablet or wider screens, the author card now displays in a column on the right side of the screen. On smaller devices, such as ones phone, the author card will continue to render at the end of the page.
There is a fair amount of yet-to-be-used whitespace under the author card in the wide screen view.</description></item><item><title>It's The Little Things</title><link>https://kevin.thecorams.net/posts/2019/12/the-little-things/</link><pubDate>Mon, 09 Dec 2019 12:39:34 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/the-little-things/</guid><description>While waiting at the local Panera Bread shop for my lunch order, I noticed a fellow patron who was wearing a Miskatonic Observatory t-shirt. It made my day.</description></item><item><title>Fixing the Site Permalinks</title><link>https://kevin.thecorams.net/site/2019/12/fixing-permalinks/</link><pubDate>Sat, 07 Dec 2019 15:20:43 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/12/fixing-permalinks/</guid><description>Today I realized that I had incorrectly set up a permalinks definition for the posts section of the website in a way that left the posts/ folder out of the generated path name. That wasn't how I intended the site to be laid out on-disk.
Since my content organization was the way I wanted things to end up, the permalinks definition was redundant as well as incorrect. However, I realized that I couldn't just remove it, as any-and-all links that I had previously shared on Mastodon would be broken!</description></item><item><title>Implementing Social Media Icons: SVG vs WebFonts</title><link>https://kevin.thecorams.net/posts/2019/12/svg-vs-fonts/</link><pubDate>Sat, 07 Dec 2019 08:34:00 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/svg-vs-fonts/</guid><description>&lt;p>Inspired by the many blog sites out there that display a series of icons
linking to the site author's other sites and social media profiles, I
set out to add the same to my site.&lt;/p></description></item><item><title>No rel=me Support at LinkedIn?</title><link>https://kevin.thecorams.net/posts/2019/12/no-rel-me-linkedin/</link><pubDate>Tue, 03 Dec 2019 18:52:12 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/no-rel-me-linkedin/</guid><description>&lt;p>Apparently, LinkedIn doesn't actually support &lt;code>rel=&amp;quot;me&amp;quot;&lt;/code> links back to ones
personal website(s). How very disappointing.&lt;/p></description></item><item><title>IndieWeb Level 1 Reached</title><link>https://kevin.thecorams.net/posts/2019/12/level-1-indieweb/</link><pubDate>Tue, 03 Dec 2019 15:57:30 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/level-1-indieweb/</guid><description>With the update of the site to use my new (work-in-progress) theme with IndieWeb support, I have now completed both Level 1 checkpoints from IndieWebify Me:
Get your own domain name Set up Web Sign In I can successfully authenticate using my website URL on IndieAuth.
Soon to come: adding h-card and h-entry microformat markups to better integrate wtih other IndieWeb sites.</description></item><item><title>Changed Theme to Semantic IndieWeb</title><link>https://kevin.thecorams.net/site/2019/12/03/change-theme/</link><pubDate>Tue, 03 Dec 2019 15:46:00 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/12/03/change-theme/</guid><description>Site has been update to use my new work-in-progress Semantic IndieWeb theme. This brings configurable rel=&amp;quot;me&amp;quot; tags as &amp;lt;link&amp;gt;...&amp;lt;/link&amp;gt; blocks in the &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt; of each page, enabling IndieWeb authentication.</description></item><item><title>Site Design - Work in progress</title><link>https://kevin.thecorams.net/posts/2019/12/site-design-wip/</link><pubDate>Sun, 01 Dec 2019 23:12:27 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/12/site-design-wip/</guid><description>I spent a good part of the weekend working in Draw.io on site layout designs. Following general Responsive Design best practices, I started with a layout for a mobile device. Once I had a layout that I liked for a small device, I expanded it for a wider-screen display.
Mobile Layout/Design Wide-screen Layout/Design Next up: cloning my basic theme to start adding in the CSS to get a responsive design implementation going.</description></item><item><title>Basic Hugo Theme - v0.1.5 released</title><link>https://kevin.thecorams.net/posts/2019/11/basic-hugo-theme/</link><pubDate>Fri, 29 Nov 2019 12:04:10 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/11/basic-hugo-theme/</guid><description>I just pushed up tag v0.1.5 of my Basic Hugo Theme.
From the README:
While the official documentation about Hugo Templates does provide all of the pieces to get started creating a theme, it doesn’t necessarily put them together in one, easy-to-see-together place. This theme attempts to pull all of the necessary pieces together into a theme that can be used as a starting point to create more sophisticated themes.</description></item><item><title>Résumé taken back from LinkedIn</title><link>https://kevin.thecorams.net/posts/2019/11/resume-posted/</link><pubDate>Wed, 27 Nov 2019 14:30:31 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/11/resume-posted/</guid><description>It took several days of tweaking layout files to get the data laying out the way I'd like, but I have finally gotten my résumé imported into the web-site. I started with the data that I have long had public on my LinkedIn Profile, cleaned up some ancient cut-and-paste issues that snuck into it, and added a bunch of additional descriptive text for what I've currently been doing at work.</description></item><item><title>Site Updates</title><link>https://kevin.thecorams.net/site/2019/11/27/site-updates/</link><pubDate>Wed, 27 Nov 2019 14:18:17 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/11/27/site-updates/</guid><description>Site upgraded to Hugo 0.60.0, using the new Goldmark markdown library Updated Netlify build options resulting in a more minified HTML deploymend Updated to v0.1.4 of my custom Hugo theme The new Goldmark renderer disallows inline HTML by default, which broke my current rel=&amp;quot;me&amp;rdquo; back-link to my Mastodon profile. Until I update my custom theme to provide better IndieWeb hooks via layout templates, I ended up having to update my config.</description></item><item><title>Verified with Mastodon</title><link>https://kevin.thecorams.net/posts/2019/11/verified-mastodon/</link><pubDate>Sat, 23 Nov 2019 15:56:00 -0500</pubDate><guid>https://kevin.thecorams.net/posts/2019/11/verified-mastodon/</guid><description>I have successfully linked my website with my @kcoram@librem.one profile on the Librem One Mastodon instance (a.k.a Librem Social). The link back to the website shows as verified!</description></item><item><title>Custom Domain - Live!</title><link>https://kevin.thecorams.net/site/2019/11/20/custom-domain/</link><pubDate>Wed, 20 Nov 2019 16:21:44 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/11/20/custom-domain/</guid><description>The site is now live at my personal domain: https://kevin.thecorams.net</description></item><item><title>Netlify Deployment - Success</title><link>https://kevin.thecorams.net/site/2019/11/19/netlify-deployment/</link><pubDate>Tue, 19 Nov 2019 23:30:28 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/11/19/netlify-deployment/</guid><description>I am keeping the source-of-truth for the source of this site as a private repository on my personal Gitea server. Since Netlify currently only integrates with GitHub, GitLab, or Bitbucket, I had pick among those options to mirror the source for the site. Even though GitHub now offers unlimited private repositories in their free tier, old habits die hard. I decided to use GitLab for the source repository mirror, because they've always offered those unlimited private repositories.</description></item><item><title>About This Site</title><link>https://kevin.thecorams.net/site/2019/11/19/about-this-site/</link><pubDate>Tue, 19 Nov 2019 22:48:02 -0500</pubDate><guid>https://kevin.thecorams.net/site/2019/11/19/about-this-site/</guid><description>For many years, I have played with the idea of creating my own personal corner of the Web, be it by starting a blog or by simply creating a small web site to call my own. I even started a handful of WordPress sites over the years. However, I never felt that I had anything to say, so they all went unmaintained and I eventually deleted them.
I have never really gotten into Social Media.</description></item><item><title>Casenet, LLC</title><link>https://kevin.thecorams.net/career/casenet/</link><pubDate>Fri, 01 Jan 2010 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/casenet/</guid><description>Technical lead for multi-team project rewriting Casenet's legacy client using modern Angular and REST-ful web services. Worked with Product Owners to define User Stories and with Project Management to plan the implementation. Mentored teams in best practices to ensure quality code deliverables.</description></item><item><title>MRV Communications</title><link>https://kevin.thecorams.net/career/mrv-communications/</link><pubDate>Sat, 01 Jan 2005 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/mrv-communications/</guid><description>Full stack engineer, using Java Swing and C to provide an easy to use interface to configure embedded network communication devices.</description></item><item><title>deNovis</title><link>https://kevin.thecorams.net/career/denovis/</link><pubDate>Wed, 01 Aug 2001 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/denovis/</guid><description>Front-end enginner, using Java Server Pages with Weblogic 6.1, IBM WebSphere 5.0, Oracle 8.1, and DB2 8 to develop the User Interface layer of a Healthcare claims processing system.</description></item><item><title>Trenza Corporation</title><link>https://kevin.thecorams.net/career/trenza/</link><pubDate>Tue, 01 Aug 2000 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/trenza/</guid><description>Full stack engineer, using Perl, Java, Antlr, Java, C, and C++ to implement components of a multi-user communication application that would allow users to share browser sessions and communicate in real-tine.</description></item><item><title>Averstar, Inc.</title><link>https://kevin.thecorams.net/career/averstar/</link><pubDate>Fri, 01 Oct 1993 00:00:00 +0000</pubDate><guid>https://kevin.thecorams.net/career/averstar/</guid><description>Back-end engineer using Java, EJBs, C++, Ada, and Perl on a variety of prototyping and R&amp;amp;D projects for commercial and government contracts.</description></item></channel></rss>