<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>I blog about faith in life and whatever else is currently making demands on my attention.



  var _gaq = _gaq || [];
  _gaq.push([’_setAccount’, ‘UA-24885986-1’]);
  _gaq.push([’_trackPageview’]);

  (function() {
    var ga = document.createElement('script’); ga.type = 'text/javascript’; ga.async = true;
    ga.src = ('https:’ == document.location.protocol ? 'https://ssl’ : 'http://www’) + ’.google-analytics.com/ga.js’;
    var s = document.getElementsByTagName('script’)[0]; s.parentNode.insertBefore(ga, s);
  })();





hljs.initHighlightingOnLoad();</description><title>Two Negatives</title><generator>Tumblr (3.0; @vishers)</generator><link>https://blog.twonegatives.com/</link><item><title>Using `mkvtoolnix` and `GNU Parallel` to Whip Some .ASS</title><description>&lt;p&gt;I recently needed to work some &lt;a href="https://mkvtoolnix.download/"&gt;&lt;code&gt;mkvmerge=/=mkvpropedit&lt;/code&gt;&lt;/a&gt; magic for some
anime. It&amp;rsquo;s been a &lt;em&gt;long&lt;/em&gt; time since the days when I started watching
&lt;a href="https://myanimelist.net/anime/269/Bleach"&gt;Bleach&lt;/a&gt; with my friends by &lt;code&gt;sshing&lt;/code&gt; to one laptop from another and
using &lt;a href="http://www.mplayerhq.hu/"&gt;&lt;code&gt;mplayer&lt;/code&gt;&lt;/a&gt; in a terminal to play the show and the state of &lt;a href="https://www.matroska.org/index.html"&gt;mkv&lt;/a&gt;
support has come a very long way since then.&lt;/p&gt;

&lt;p&gt;These days I prefer playing all my media through &lt;a href="https://www.plex.tv/"&gt;Plex&lt;/a&gt; which is just
hard to describe in all its towering greatness. The show that I wanted
to watch though had its &lt;a href="https://en.wikipedia.org/wiki/SubStation_Alpha"&gt;ASS&lt;/a&gt; subtitles and accompanying fonts broken
out from it&amp;rsquo;s MKV files for reasons unknown to me. Because of this and
the amazing malleability of MKV I decided to roll up my sleeves and
fix the problem myself.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;shopt -s extglob

parallel -q --tagstring {/.} --line-buffer mkvmerge \
         -o {.}_merged.mkv {} --language 0:eng {.}.en.ass \
         --attachment-description '' \
         --attachment-mime-type application/x-truetype-font \
         --attach-file {//}/'fonts/A-OTF-FutoMinA101Pro-Bold.otf' \
         … 147 similar lines …
         ::: Season*/!(*_merged).mkv
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The main reasons I&amp;rsquo;m writing this up at all are several fold:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Often times what I&amp;rsquo;m doing with &lt;a href="https://www.gnu.org/software/parallel/"&gt;GNU Parallel&lt;/a&gt; is complex enough that
it warrants an actual shell function or script &lt;em&gt;or&lt;/em&gt; it&amp;rsquo;s &lt;strong&gt;so&lt;/strong&gt;
simple that it more or less amounts to slapping one of the
arguments onto the end. Because of this I&amp;rsquo;ve rarely explored
&lt;code&gt;parallel's&lt;/code&gt; native expansion support which this task gave me an
opportunity to do.&lt;/li&gt;
&lt;li&gt;The task was complex enough also that I learned about &lt;code&gt;parallel's&lt;/code&gt;
&lt;a href="https://www.gnu.org/software/parallel/man.html#QUOTING"&gt;double expansion&lt;/a&gt; which I&amp;rsquo;m sure has been the source of many
frustrating missteps in the past now that I know it&amp;rsquo;s there.
Essentially bash will process the arguments to parallel first
obeying all &lt;a href="https://mywiki.wooledge.org/Quotes"&gt;the normal rules&lt;/a&gt; and then pass them to the &lt;code&gt;exec&lt;/code&gt; of
&lt;code&gt;parallel&lt;/code&gt;, then &lt;code&gt;parallel&lt;/code&gt; will pass them again to a subshell
which will &lt;code&gt;parse&lt;/code&gt; them again through all the normal rules. Keeping
this all straight in your head is not easy but I think the
essential rule is probably something like &amp;ldquo;If you actually notice
the double expansion you should write a function/script for the
behavior and otherwise you should probably be running with -q&amp;rdquo; or
something similar but better worded than that.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s fun to mess with mkv files. ¯\_(ツ)_/¯&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To review the script:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;We&amp;rsquo;re setting &lt;a href="https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html#Pattern-Matching"&gt;extglob&lt;/a&gt; because we want to be able to process only
&lt;code&gt;mkv&lt;/code&gt; files that haven&amp;rsquo;t been &lt;code&gt;_merged&lt;/code&gt; yet.&lt;/li&gt;
&lt;li&gt;We&amp;rsquo;re invoking &lt;code&gt;parallel&lt;/code&gt; with &lt;code&gt;-q&lt;/code&gt; because we don&amp;rsquo;t want the
subshell to word split our carefully constructed arguments again.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We&amp;rsquo;re using &lt;code&gt;--tagstring {/.} --line-buffer&lt;/code&gt; because we want to see
our job output live so we know it&amp;rsquo;s working (it takes a bit to make
these changes to the matroska files). It&amp;rsquo;s not directly documented
AFAICT that &lt;code&gt;--tagstring&lt;/code&gt; supports GNU Parallel expansion but I
took a chance on it and was pleasantly surprised. This particular
expansion is the &lt;a href="https://www.gnu.org/software/parallel/man.html#OPTIONS"&gt;&lt;code&gt;basename-sans-extension&lt;/code&gt;&lt;/a&gt; version which seemed
like a sensical tag for the logged lines.&lt;/p&gt;

&lt;p&gt;This feature alone is worth using parallel for when you&amp;rsquo;re really
doing complex parallel work. It&amp;rsquo;s a really efficient way to provide
active log lines that are still comprehensible later on.
&lt;code&gt;--line-buffer&lt;/code&gt; just makes sure that you always get a full line
from a job rather than the lines from the various jobs mixing
mid-line.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-o {.}_merged.mkv&lt;/code&gt; is a nice way to express the bash-ism of
&lt;code&gt;${x%.*}_merged.mkv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--language 0:eng {.}.en.ass&lt;/code&gt; is a bit speculative as it&amp;rsquo;s what I
think I &lt;em&gt;should&lt;/em&gt; have run but I didn&amp;rsquo;t initially since I was working
off an example that &lt;a href="https://gist.github.com/Advan721/6804e86c6e33ea6a4cbf"&gt;didn&amp;rsquo;t include it&lt;/a&gt;. Nevertheless I think I&amp;rsquo;m
interpreting the docs correctly. Originally I just didn&amp;rsquo;t include
the &lt;code&gt;--language 0:eng&lt;/code&gt; bit so the subtitles were attached as an
unknown language and I had to then go back through and correct that
with an &lt;code&gt;mkvpropedit&lt;/code&gt; run.&lt;/li&gt;
&lt;li&gt;Then I used a bit of &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macros.html"&gt;Emacs Keyboard Macro&lt;/a&gt; magic to transform the
&lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html"&gt;Dired&lt;/a&gt; fonts buffer into a series of attachment arguments so that
the ASS subtitle track could be properly rendered. The &lt;code&gt;parallel&lt;/code&gt;
expansion there of &lt;code&gt;{//}&lt;/code&gt; was also something I hadn&amp;rsquo;t seen before
and is how I managed to get away with this from the root of the
seasons directory rather than needing to process the seasons one at
a time. That one specifically expands to the dirname of the input
line or as a bash-ism &lt;code&gt;${d%/*}&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Finally we&amp;rsquo;re taking arguments from the &lt;code&gt;extglob&lt;/code&gt; that matches all
the &lt;code&gt;Seasons&lt;/code&gt; mkv files excluding the &lt;code&gt;_merged&lt;/code&gt; files which you can
see are what the &lt;code&gt;parallel&lt;/code&gt; tasks are actually producing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With all this I was able to completely saturate my wired connection to
my Synology and efficiently process the entire show. I love the smell
of burning silicon in the morning.&lt;/p&gt;

&lt;p&gt;I hope this little foray into &lt;code&gt;parallel&lt;/code&gt;/&lt;code&gt;mkvtoolnix&lt;/code&gt; land teaches you
something like it taught me.&lt;/p&gt;

&lt;p&gt;Happy scripting!&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/642922251110531072</link><guid>https://blog.twonegatives.com/post/642922251110531072</guid><pubDate>Fri, 12 Feb 2021 09:00:38 -0500</pubDate><category>gnu parallel</category><category>mkvtoolnix</category><category>scripting</category><category>matroska</category></item><item><title>`org-todo-current-tab` Has Learned Direct Support for Reader View</title><description>&lt;p&gt;I&amp;rsquo;ve come to &lt;em&gt;really&lt;/em&gt; enjoy using &lt;a href="https://add0n.com/chrome-reader-view.html"&gt;Reader View&lt;/a&gt;. It&amp;rsquo;s filled that &lt;a href="https://web.archive.org/web/20160902035802/https://readability.com/"&gt;Arc90
Readability&lt;/a&gt; shaped hole in my heart.&lt;/p&gt;

&lt;p&gt;In fact, my &lt;em&gt;only&lt;/em&gt; problem with Reader View is that it broke my
&lt;code&gt;org-todo-current-tab&lt;/code&gt; Applescript which I use to extract todo items
from Chrome.&lt;/p&gt;

&lt;p&gt;No more!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tell application "Finder" to set current_tab_handlers to (load script file "current_tab_handlers.scpt" of folder "Dropbox" of home as alias)

tell application "Google Chrome"
    set theTab to active tab of front window
    if theTab's URL contains "chrome-extension://" then
        set readerHref to execute theTab javascript "document.querySelector('iframe').contentDocument.getElementById('reader-domain').href"
        set theUrl to readerHref
        set theTitle to execute theTab javascript "document.querySelector('iframe').contentDocument.getElementById('reader-title').innerText.replaceAll(/[[\\]]/g, ' ')"
        set theAuthor to execute theTab javascript "document.querySelector('iframe').contentDocument.getElementById('reader-credits').innerText"
        set theEstimatedTime to execute theTab javascript "document.querySelector('iframe').contentDocument.getElementById('reader-estimated-time').innerText"
        set theContent to execute theTab javascript "
document.querySelector('iframe').contentDocument.getElementById('readability-page-1').innerText.split('\\n').map(
  x =&amp;gt; x.replace(/(.{70,}?)\\s/g, '$1\\n').split('\\n').map(
    y =&amp;gt; '   ' + y
  ).join('\\n')
).join('\\n')
                "
        set the clipboard to "** TODO " &amp;amp; ¬
            "[[" &amp;amp; theUrl &amp;amp; "][" &amp;amp; theTitle &amp;amp; " by " &amp;amp; theAuthor &amp;amp; "]] " &amp;amp; theEstimatedTime &amp;amp; "

   " &amp;amp; ¬
            (do shell script "date '+[%F %a %H:%M]'") &amp;amp; "

   #+begin_quote
" &amp;amp; ¬
            theContent &amp;amp; ¬
            "
   #+end_quote
"

    else
        tell current_tab_handlers to set theLink to org_current_tab()
        set the clipboard to "** TODO " &amp;amp; ¬
            theLink &amp;amp; "

   " &amp;amp; ¬
            (do shell script "date '+[%F %a %H:%M]'") &amp;amp; "
"
    end if
end tell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The best part about this is &lt;em&gt;because&lt;/em&gt; Reader View is taking care of
extracting the article for me it makes it dead simple to exract the
actual text of the article and put it right in the todo. I don&amp;rsquo;t
generally then read the article that way but at least I have the
actual text stored for later if I want to search for it.&lt;/p&gt;

&lt;p&gt;This script makes heavy use of Applescript&amp;rsquo;s ability to run javascript
in the tab. In fact it&amp;rsquo;s arguable that the whole script should just
move directly into there since that&amp;rsquo;s a more capable programming
environment.&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/641653886743085056</link><guid>https://blog.twonegatives.com/post/641653886743085056</guid><pubDate>Fri, 29 Jan 2021 09:00:31 -0500</pubDate><category>applescript</category><category>google chrome</category><category>scripting</category><category>org-mode</category><category>emacs</category></item><item><title>How to Check for an Entry in the `known_hosts` File</title><description>&lt;p&gt;As part of my work I write provisioning scripts for ephemeral
computing environments (you don&amp;rsquo;t develop anything directly on your
laptop, do you!?). While I was a happy Chef user for years the
unfortunate rise of Dockerfiles and the extreme and inexplicable
aversion of your average developer to Chef has lead me more and more
down the path of coding things in bash.&lt;/p&gt;

&lt;p&gt;The hardest thing about a provisioning script, of course, is writing
idempotent behavior. If you&amp;rsquo;re not &lt;em&gt;truly&lt;/em&gt; in container territory it
yields faster iteration time to make each step cheap in the face of
having already been done.&lt;/p&gt;

&lt;p&gt;I recently wanted to do just that for adding &lt;code&gt;github.com&lt;/code&gt; to my
&lt;code&gt;~/.ssh/known_hosts&lt;/code&gt; file. Initially I reached for grep only to
remember two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;~/.ssh/known_hosts&lt;/code&gt; doesn&amp;rsquo;t necessarily list the host in plaintext
so grepping is strictly a non-starter&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openssh&lt;/code&gt; is one of the most featureful CLI projects around&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It was this second realization that sent me off to the man page to
discover the &lt;a href="https://man.openbsd.org/ssh-keygen#F"&gt;&lt;code&gt;-F&lt;/code&gt; option&lt;/a&gt;. Specifically, if you want to know whether a
&lt;code&gt;known_hosts&lt;/code&gt; entry exists for a host, you run &lt;code&gt;ssh-keygen -F
    &amp;lt;host&amp;gt;[:port]&lt;/code&gt; which exits with the expected exit statuses.&lt;/p&gt;

&lt;p&gt;So in the end I threw together this little snippet:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;if ! ssh-keygen -F github.com
then
  ssh-keyscan github.com |
    tee -a ~/.ssh/known_hosts &amp;amp;&amp;amp;
    ssh-keygen -F github.com ||
      {
        echo 'Failed to add github.com to known_hosts' &amp;gt;&amp;amp;2
        exit 1
      }
fi
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Cheers!&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/641382130049531904</link><guid>https://blog.twonegatives.com/post/641382130049531904</guid><pubDate>Tue, 26 Jan 2021 09:01:04 -0500</pubDate><category>openssh</category><category>bash</category><category>scripting</category></item><item><title>`org-todo-current-git-branch` Makes an Org todo Heading Out of the Current Git Branch</title><description>&lt;p&gt;I manage all my todos through &lt;a href="https://orgmode.org/"&gt;org-mode&lt;/a&gt;. It&amp;rsquo;s fantastic. I find myself
wanting to capture todo items quickly from various contexts using
specialized logic for each one. I maintain some of these as
applescripts so that I can run them outside of the context of emacs
and then paste them in but sometimes the context is in fact emacs
itself.&lt;/p&gt;

&lt;p&gt;That&amp;rsquo;s the case for capturing the current git branch as an org todo.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defun timvisher-org-todo-current-git-branch
    ()
  (interactive)
  (let ((todo-item (format "** TODO =%s%s=

   %s
"
                           (file-relative-name (magit-toplevel) "~")
                           (magit-get-current-branch)
                           (format-time-string "[%F %a %H:%M]"))))
    (kill-new todo-item)
    (message "Saved ‘%s’ to the kill ring"
             todo-item)))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The primary things this is getting me are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A nested &lt;code&gt;** TODO …&lt;/code&gt; entry. All my todos start out under a
top-level &lt;code&gt;* Inbox&lt;/code&gt; heading. That&amp;rsquo;s actually one of the reasons I
wanted this function at all. Despite how great whacking &lt;code&gt;C-u C-c
       C-x M&lt;/code&gt; is it keeps the contextual heading level which meant that I
had to then whack &lt;code&gt;M-→&lt;/code&gt; to get it properly indented. With this it
starts that way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It wouldn&amp;rsquo;t be hard to actually link to the branch but since I do
all of my work in dedicated tmux sessions this doesn&amp;rsquo;t really make
sense. &lt;strong&gt;Oooo&lt;/strong&gt; now that I think about it wouldn&amp;rsquo;t it be nice to have
support for linking to a tmux session…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;/me makes a note.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I capture the time that the todo was created accurately.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cheers!&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/641110330764918784</link><guid>https://blog.twonegatives.com/post/641110330764918784</guid><pubDate>Sat, 23 Jan 2021 09:00:56 -0500</pubDate><category>elisp</category><category>emacs lisp</category><category>emacs</category><category>org-mode</category><category>todo</category></item><item><title>Emacs Lisp: A Small Wrapper for Gruber's `titlecase`</title><description>&lt;p&gt;I write pretty much everything I write that&amp;rsquo;s more than &lt;a href="https://blog.twitter.com/en_us/topics/product/2017/Giving-you-more-characters-to-express-yourself.html"&gt;280&lt;/a&gt; characters
in &lt;a href="https://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;. A lot of that has a title associated with it and ever since
discovering it my preferred way to &lt;a href="https://en.wikipedia.org/wiki/Title_case"&gt;title case&lt;/a&gt; text is to run it
through Gruber&amp;rsquo;s &lt;a href="https://daringfireball.net/2008/08/title_case_update"&gt;&lt;code&gt;titlecase&lt;/code&gt; script&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Emacs already has &lt;em&gt;fantastic&lt;/em&gt; facilities for &lt;a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell.html"&gt;running shell commands&lt;/a&gt;,
one of which is &lt;code&gt;C-u M-| …&lt;/code&gt; which will run a command on the region
(apparently even if it&amp;rsquo;s non-contiguous) and replace it with the
output. This is how I&amp;rsquo;ve been doing it for &lt;em&gt;years&lt;/em&gt; but there&amp;rsquo;s just
one problem: &lt;code&gt;titlecase&lt;/code&gt; adds a trailing newline to the text which I
then need to clean up.&lt;/p&gt;

&lt;p&gt;I ran across &lt;a href="https://www.emacswiki.org/emacs/titlecase.el"&gt;&lt;code&gt;titlecase.el&lt;/code&gt;&lt;/a&gt; around the same time I found &lt;code&gt;titlecase&lt;/code&gt;
itself but for whatever reason I decided it wasn&amp;rsquo;t worth my time to
install. I finally pilfered the parts of it I wanted recently and it&amp;rsquo;s
been the dream I always though it would be.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defun timvisher-titlecase
    (begin end)
  (interactive "*r")
  (unless (region-active-p)
    (error "Must be called with an active region"))
  (let* ((pt (point))
         (source-text (delete-and-extract-region begin end))
         (titlecased-text (with-temp-buffer
                            (insert source-text)
                            (call-process-region (point-min) (point-max) "titlecase" t t nil)
                            ;; skip trailing newline
                            (buffer-substring-no-properties (point-min) (1- (point-max))))))
    (insert titlecased-text)
    (goto-char pt)))
&lt;/code&gt;&lt;/pre&gt;</description><link>https://blog.twonegatives.com/post/641031044900044800</link><guid>https://blog.twonegatives.com/post/641031044900044800</guid><pubDate>Fri, 22 Jan 2021 12:00:43 -0500</pubDate><category>emacs</category><category>elisp</category><category>titlecase</category><category>john gruber</category></item><item><title>Applescripts for Creating and Closing Zoom Meetings</title><description>&lt;p&gt;I think it&amp;rsquo;s widely understood that we&amp;rsquo;re all using Zoom a lot more
since March of 2020. I was inspired by something I didn&amp;rsquo;t write down
to write up an Applescript for creating a New Zoom Meeting so I can
get more &amp;lsquo;Fastest Gun&amp;rsquo; awards from my co-workers. While I was at it I
also wrote a Close Zoom Meeting script that automates getting me back
to blissful private office work mode.&lt;/p&gt;

&lt;p&gt;Here they are:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;New Zoom Meeting.applescript&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tell application "zoom.us" to activate

tell application "System Events"

    tell process "zoom.us"

        repeat until window "Zoom Meeting" exists
            keystroke "v" using {command down, control down}
            delay 1
        end repeat

    end tell

    if (name of application processes whose background only is false) contains "VLC" then
        tell application "VLC"
            set audio volume to 64
        end tell
    end if

end tell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;Close Zoom Meeting.applescript&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;-- Set my media player and system volumes back to my typical listening level
set volume output volume 69
tell application "System Events"
    if (name of application processes whose background only is false) contains "VLC" then
        tell application "VLC"
            set audio volume to 160
        end tell
    end if
end tell

-- Tell zoom to quit but this will likely fail because there's an active meeting and it will dialog with me about whether to really leave the meeting.
try
    tell application "zoom.us" to quit
end try

-- So long as zoom.us is still active just whack enter until it goes away.
tell application "System Events"
    repeat while name of processes contains "zoom.us"
        -- The double check here is necessary because otherwise you occasionally send an enter to the next active application
        if name of processes contains "zoom.us" then
            tell process "zoom.us"
                key code 36
            end tell
        end if
        delay 1
    end repeat
end tell

-- Close all the zoom.us tabs in my browser
tell application "Google Chrome"
    repeat with tabList in (tabs of windows whose URL contains "zoom.us")
        close tabList
    end repeat
end tell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Obviously you may not use VLC or Chrome but these script should be
pretty easy to adapt to whatever you&amp;rsquo;re workflow actually is.&lt;/p&gt;

&lt;p&gt;Isn&amp;rsquo;t Applescript fun?&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/641019772249817088</link><guid>https://blog.twonegatives.com/post/641019772249817088</guid><pubDate>Fri, 22 Jan 2021 09:01:33 -0500</pubDate><category>applescript</category><category>zoom</category><category>remote work</category><category>scripting</category></item><item><title>Effective Applescript: Opening a Google Chrome Bookmark Folder</title><description>&lt;p&gt;I&amp;rsquo;ve been attempting to live my life &lt;a href="https://francescocirillo.com/pages/pomodoro-technique"&gt;30 minutes at a time&lt;/a&gt; recently and
part of that is ensuring that I&amp;rsquo;m not constantly distracted by my
inbox. Unfettered access to attention is the devil&amp;rsquo;s own work and as
little as possible should be allowed.&lt;/p&gt;

&lt;p&gt;As such I&amp;rsquo;ve been trying to make it a practice recently of shutting
down every app and site that acts as an inbox for me unless I&amp;rsquo;m
&lt;em&gt;actively&lt;/em&gt; engaged with it. My practice then is to essentially check my
inbox every 30 minutes or so in case something truly urgent has come
in and practice &lt;a href="http://www.43folders.com/43-folders-series-inbox-zero"&gt;Inbox Zero&lt;/a&gt; each time, moving anything that takes more
than 2 minutes but is not truly urgent into my todo list.&lt;/p&gt;

&lt;p&gt;Doing this every 30 minutes was starting to become annoying despite
how effortless it is to open apps and sites using &lt;a href="https://qsapp.com/"&gt;Quicksilver&lt;/a&gt; so I
decide to take it a step further and automate it with Applescript so I
can simply whack &lt;code&gt;⌘-space inbox RET&lt;/code&gt; and get to down to business.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tell application "Google Chrome"
    repeat with b in (get URL of bookmark items of bookmark folder "Inbox" of bookmark folder "Bookmarks Bar")
        open location b
    end repeat
end tell

tell application "Mail" to activate
tell application "Slack" to activate
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The primary reason I&amp;rsquo;m posting about this generally uninteresting
script is because at first I actually had all the bookmarks in my
&amp;ldquo;Inbox&amp;rdquo; folder explicitly listed out in separate &lt;code&gt;open location …&lt;/code&gt;
statements. This was obviously less than ideal because I decided to
add &lt;a href="https://twitter.com"&gt;Twitter&lt;/a&gt; to my Inbox and would&amp;rsquo;ve then had to go and add it to the
script by hand.&lt;/p&gt;

&lt;p&gt;I did a little bit of digging and found out that the &lt;a href="https://www.google.com/chrome/"&gt;Chrome&lt;/a&gt; dictionary
does, in fact, support accessing bookmarks by folder. Then a quick
trip to &lt;a href="https://stackoverflow.com/questions/24864868/applescripts-to-open-all-sites-in-bookmark-folder-in-chrome"&gt;Stack Overflow&lt;/a&gt; got me over the hump.&lt;/p&gt;

&lt;p&gt;As an aside I originally had the statement &lt;code&gt;repeat with b in (URL of
    bookmark items…&lt;/code&gt; rather than &lt;code&gt;repeat with b in (get URL of bookmark
    items…&lt;/code&gt; but was erroring out with an error code that didn&amp;rsquo;t yield
anything obvious (but what Applescript error codes ever do?). It&amp;rsquo;s
unclear to me why the &lt;code&gt;get&lt;/code&gt; is necessary here. &lt;code&gt;get&lt;/code&gt; is one of those
things that I still sometimes just start sprinkling over my
Applescripts until they seem to work which is never a good place to
be.&lt;/p&gt;

&lt;p&gt;Happy scripting!&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/640566725538086912</link><guid>https://blog.twonegatives.com/post/640566725538086912</guid><pubDate>Sun, 17 Jan 2021 09:00:34 -0500</pubDate><category>effective applescript</category><category>google chrome</category><category>bookmarks</category><category>automation</category></item><item><title>Applescript to Jiggle a Window</title><description>&lt;p&gt;I have this ridiculous problem (&lt;a href="https://twitter.com/timvisher/status/988109731574308865"&gt;because I am a &lt;strong&gt;&lt;em&gt;developer&lt;/em&gt;&lt;/strong&gt; in the
year of our Lord &lt;strong&gt;2021&lt;/strong&gt;&lt;/a&gt;) where occasionally as I disconnect and
reconnect my monitors on my laptop, &lt;a href="https://iterm2.com/"&gt;iTerm&lt;/a&gt; windows will be resized by
the window manager but the &lt;code&gt;$COLUMNS&lt;/code&gt; and &lt;code&gt;$LINES&lt;/code&gt; variables won&amp;rsquo;t get
updated. I have no idea what actually causes this but it really plays
havoc with my prompts/emacs/tmux setup.&lt;/p&gt;

&lt;p&gt;After some experimentation I realized that I could force them to be
updated by jiggling the size of the window just a small amount
manually. But, as I said, &lt;em&gt;I am a &lt;strong&gt;developer&lt;/strong&gt; in the year of our Lord
&lt;strong&gt;2021&lt;/strong&gt;&lt;/em&gt;; reaching for the mouse and aiming at the edge of the window
was just too hard.&lt;/p&gt;

&lt;p&gt;Enter my beloved Applescript:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tell application "iTerm"
    set currentBounds to bounds of front window

    set width to item 3 of currentBounds

    copy currentBounds to tempBounds

    set item 3 of tempBounds to (width - (width * 0.1))

    set bounds of front window to tempBounds

    delay 0.25

    set bounds of front window to currentBounds
end tell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now instead of reaching for my mouse I can whack &lt;code&gt;⌘-space jiggle
    window RET&lt;/code&gt; and we&amp;rsquo;re back in business.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://xkcd.com/1205/"&gt;Now &lt;strong&gt;&lt;em&gt;this&lt;/em&gt;&lt;/strong&gt; is productivity!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;/ht &lt;a href="https://alvinalexander.com/source-code/mac-os-x/how-size-or-resize-application-windows-applescript/"&gt;alvinalexander.com&lt;/a&gt; and &lt;a href="http://downloads.techbarrack.com/books/programming/AppleScript/website/records/copy_command.html"&gt;techbarrack.com&lt;/a&gt;&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/639660762711851008</link><guid>https://blog.twonegatives.com/post/639660762711851008</guid><pubDate>Thu, 07 Jan 2021 09:00:40 -0500</pubDate><category>applescript</category><category>iterm2</category></item><item><title>Eternal Terminal Is an Alternative to Mosh With Support for Tmux -CC and Native Scrolling Over TCP</title><description>&lt;p&gt;&lt;a href="https://eternalterminal.dev/"&gt;Eternal Terminal&lt;/a&gt; just rolled through my Inbox. While it doesn&amp;rsquo;t sound
like it has anything that I&amp;rsquo;m particularly interested in over &lt;code&gt;mosh&lt;/code&gt; a
couple things caught my eye:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It uses TCP rather than UDP which could be attractive for some
firewall scenarios. Specifically it almost seems like a proof of
concept &lt;em&gt;for&lt;/em&gt; the underlying &amp;lsquo;resumable TCP&amp;rsquo; implementation that
apparently any application can use.&lt;/li&gt;
&lt;li&gt;It supports &lt;a href="https://github.com/tmux/tmux/wiki/Control-Mode"&gt;&lt;code&gt;tmux -CC&lt;/code&gt;&lt;/a&gt;. For people who make heavy use of tmux
features that want a 'native&amp;rsquo; experience in iTerm2 this sounds
pretty great.&lt;/li&gt;
&lt;li&gt;It doesn&amp;rsquo;t have scrolling problems like &lt;code&gt;mosh&lt;/code&gt; does since, IIUC, it
actually does attach your terminal directly to the remote session.
You get native scroll bars, native search, etc. because of that.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Maybe this&amp;rsquo;ll scratch an itch for you that I don&amp;rsquo;t have?&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/639570173898227713</link><guid>https://blog.twonegatives.com/post/639570173898227713</guid><pubDate>Wed, 06 Jan 2021 09:00:48 -0500</pubDate><category>mosh</category><category>eternal terminal</category></item><item><title>Bite Size Bash by b0rk is awesome!</title><description>&lt;p&gt;&lt;a href="https://twitter.com/b0rk"&gt;@b0rk&lt;/a&gt; is at it again with another &lt;a href="https://wizardzines.com/zines/bite-size-bash/"&gt;fanastic zine&lt;/a&gt;. This one&amp;rsquo;s about a
topic that&amp;rsquo;s &lt;a href="https://blog.twonegatives.com/tagged/effective-bash"&gt;unusually near and dear to me&lt;/a&gt; so I absolutely couldn&amp;rsquo;t
resist snapping it up.&lt;/p&gt;

&lt;p&gt;Bite Size Bash is everything you should expect from a Julia Evans
zine: comprehensive, insightful, and fun. While I have a few quibbles
with the content (I&amp;rsquo;m sorry but &lt;code&gt;set -e&lt;/code&gt; is the &lt;a href="https://mywiki.wooledge.org/BashFAQ/105"&gt;devil&amp;rsquo;s own work&lt;/a&gt;, and
please don&amp;rsquo;t read a file or anything else line by line &lt;a href="https://mywiki.wooledge.org/DontReadLinesWithFor"&gt;with a for
loop&lt;/a&gt;) but these little quibbles are far outweighed by the mountain of
other good and cogent content in the zine.&lt;/p&gt;

&lt;p&gt;I especially love her descriptions of what bash is particularly good
at: Gluing processes together, concurrency management, and execution
tracing, for a small sample.&lt;/p&gt;

&lt;p&gt;If you&amp;rsquo;ve been ignoring my advice about diving into &lt;a href="https://mywiki.wooledge.org/BashGuide"&gt;Greg&amp;rsquo;s Bash
Guide&lt;/a&gt; (or even if you haven&amp;rsquo;t been) I would whole-heartedly recommend
grabbing yourself a copy of &lt;a href="https://wizardzines.com/zines/bite-size-bash/"&gt;Bite Size Bash&lt;/a&gt; and getting familiar with
one of the most pragmatic tools available to anyone developing
software (or operating in any other way) a *nix system.&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/639490889137438720</link><guid>https://blog.twonegatives.com/post/639490889137438720</guid><pubDate>Tue, 05 Jan 2021 12:00:36 -0500</pubDate><category>bash</category><category>b0rk</category><category>book review</category></item><item><title>Friday-ish links</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/what-does-a-herpetologist-do-with-a-lizard-once-shes-caught-it"&gt;What does a herpetologist do with a lizard once she&amp;rsquo;s caught it? | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So cool!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Herpetologist Earyn McGee is a graduate student studying natural
  resources with an emphasis on wildlife conservation and management.
  She also leads a popular #FindThatLizard photo activity on Twitter and
  Instagram. In the video above, she answers the question, “What does a
  herpetologist do with a lizard once she’s caught it?”&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/whats-the-loudest-possible-sound-its-okay-to-be-smart"&gt;What&amp;rsquo;s the Loudest Possible Sound? | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“What is the loudest possible sound? What about the quietest thing we
  can hear? And what do decibels measure, anyway?” This video from Joe
  Hanson and It’s Okay to Be Smart dives into the wide ranging and
  incredibly sensitive world of sound waves.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ew.com/tv/his-dark-materials-lin-manuel-miranda-the-kingkiller-chronicle/"&gt;Lin-Manuel Miranda gives Kingkiller Chronicle update: His Dark Materials gave new perspective | EW.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If Miranda is learning how to make a series out of a trilogy from His
Dark Materials then color me excited for whatever he ends up doing
with Kingkiller.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&amp;ldquo;I&amp;rsquo;ve gained new perspective on it, having been able to be a part of
  this other fantasy franchise and seeing how, &amp;lsquo;Oh man, we did eight
  hours of story and we still didn&amp;rsquo;t get all of the first book in there.
  What hope does a movie have?!&amp;rsquo; The answer is none,&amp;rdquo; Miranda explains
  in an interview ahead of the U.S. premiere of His Dark Materials
  season 2 on HBO and HBO Max. &amp;ldquo;The real answer is a director and a
  script with a vision, that is a different thing [than the book]
  because you can&amp;rsquo;t get all of Pat&amp;rsquo;s incredible book into one movie, and
  I don&amp;rsquo;t know if you can get it into one series. But it is an
  incredible world worth exploring, but it hasn&amp;rsquo;t been cracked yet.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://theweek.com/articles/948463/trump-ever-unpopular-thought"&gt;Was Trump ever as unpopular as we thought?&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Chief among them is this: Was Trump more popular than public opinion
  polling suggested throughout his presidency? Is there in fact a
  reservoir of Americans that pollsters just can&amp;rsquo;t reach who supported
  Trump the whole time, mostly sat out the 2018 midterm elections (when
  polls were more accurate than in 2016 or 2020), and then turned out in
  droves for him in 2020? And if so, what does it mean?&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;This isn&amp;rsquo;t random chance. The voters who unexpectedly turned out for
  President Trump on election day existed for the entirety of his term,
  even if survey researchers never got ahold of them. One explanation
  that analysts are converging on is the idea that, as Sean Trende
  argues, what links these voters together is “low social trust” and
  that this variable can divide otherwise demographically similar groups
  like non-college educated whites. This kind of voter isn&amp;rsquo;t lying to
  pollsters as much as they are hanging up on them. And because those
  voters are already extremely difficult to find and talk to, when
  pollsters weight their samples based on the ones they do reach, they
  will still be wrong.&lt;/p&gt;
  
  &lt;p&gt;There is almost no other credible explanation for what happened here,
  because it seems extraordinarily unlikely that these voters
  disapproved of the president all along, told pollsters as much, but
  then at the very last moment changed their minds in a way that no
  reputable organization could pick up. They were there all along, and
  their absence from public opinion research – not just Trump&amp;rsquo;s
  approval but every issue survey researchers have been asking about
  over the past four years (or possibly longer!) – probably skewed our
  overall understanding of the politics of this era.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;To be clear: less unpopular than we thought does not mean ‘popular.&amp;rsquo; A
  president overseeing a booming peacetime economy should not have
  struggled to break the surface of 50 percent approval throughout his
  presidency. And President Trump did, after all, lose the election
  about as decisively as anyone has in the post-Reagan era of partisan
  polarization. The fact that more people might have lapped up his
  divisive rhetoric than we thought does not excuse it, nor should it
  invite Democratic leaders to behave similarly. It doesn&amp;rsquo;t mean the
  progressive agenda — many parts of which have high levels of public
  support even if you shave off a few points here and there — should be
  treated like a syringe full of coronavirus by national Democrats.&lt;/p&gt;
  
  &lt;p&gt;The results do, however, call for reassessment. Democrats have a real
  advantage here because of what the GOP is doing. Rather than processing
  their loss and trying to figure out how they can better appeal to
  Americans who just rejected them for the 7th time in the last 8
  presidential elections, Republicans are disappearing down a dark rabbit
  hole of conspiracies and denial. If Democrats can figure out how to
  reverse their losses with the voters who evaded pollsters without
  abandoning their core principles, they might be able to finally overcome
  the systematic obstacles our antiquated electoral system puts in their way
  and score decisive congressional majorities for the first time in a
  decade.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thenextweb.com/plugged/2020/11/12/google-photos-is-ending-free-unlimited-storage-in-2021-so-whatre-your-options/"&gt;Google Photos is ending free unlimited storage in 2021 — so what are your options?&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Google did it again. It is shutting down one of the most popular
  features across its product universe: Google Photo’s free unlimited
  storage. The company said that it’s ending this service from June
  1, 2021.&lt;/p&gt;
  
  &lt;p&gt;After that date, all photos uploaded will count against your free data
  limit of 15GB. However, all photos uploaded before June 1 next year
  will still be available under the free unlimited storage option.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://buttondown.email/hillelwayne/archive/why-i-still-use-vim/"&gt;Why I Still Use Vim • Buttondown&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There&amp;rsquo;s no place for holy wars betwen Vim/Emacs/IDEs. There&amp;rsquo;s really
good reasons for using all 3. But the quintisential reason for Emacs
and Vim are their maleability. If you want to truly understand why
they&amp;rsquo;ve hung on for so long that&amp;rsquo;s you don&amp;rsquo;t have to go much further
than that.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Posts about Vim vs Emacs vs IDEs are always awkward, usually
  condescending, more interested in picking a side than understanding
  being unbiased. Comparing communities is always a tricky thing. You
  have to be careful to represent their ideas in a deep and respectful
  way and not let your biases shine through.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;I could tell you all of the reasons I prefer Vim, and such
  observations are eye-rollingly trite. Modal editing! Composibility!
  Keyboard macros! But you can emulate those in other environments.
  That’s why Vim extensions are so popular!&lt;/p&gt;
  
  &lt;p&gt;What you can’t emulate is the flexibility. The power to choose where
  you are in the design space, not through settings or extensions, but
  through direct end-user scripting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next up: &lt;a href="https://www.youtube.com/watch?v=p3Te_a-AGqM"&gt;Emacs Rocks! Live at WebRebels - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.nytimes.com/2017/09/24/opinion/dying-art-of-disagreement.html"&gt;Opinion | The Dying Art of Disagreement - The New York Times&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article hits so many high points for me, not least of which
citing my hero Mortimer J. Adler. :)&lt;/p&gt;

&lt;p&gt;I still maintain that the best hope for a positive future lies in a
robust public square built on the foundation of a shared reality. Boy
does that seem a long shot at this point.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So here’s where we stand: Intelligent disagreement is the lifeblood of
  any thriving society. Yet we in the United States are raising a
  younger generation who have never been taught either the how or the
  why of disagreement, and who seem to think that free speech is a
  one-way right: Namely, their right to disinvite, shout down or abuse
  anyone they dislike, lest they run the risk of listening to that
  person — or even allowing someone else to listen. The results are
  evident in the parlous state of our universities, and the frayed edges
  of our democracies.&lt;/p&gt;
  
  &lt;p&gt;Can we do better?&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Julia Even&amp;rsquo;s has a new CSS zine coming and it sounds awesome&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;so that&amp;rsquo;s what this zine is about – it&amp;rsquo;s some basic CSS facts for
  people who already thought that they &amp;ldquo;knew&amp;rdquo; basic CSS (like me) but
  still find themselves perplexed a lot of the time. Actually learning
  these basics for the first time REALLY helped me.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/b0rk/status/1326163803709591552"&gt;b0rk&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secretary of State Mike Pompeo: &amp;ldquo;There will be a smooth transition to a second Trump administration.&amp;rdquo;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Secretary of State Mike Pompeo: &amp;ldquo;There will be a smooth transition to a second Trump administration.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://twitter.com/therecount/status/1326228853610647554"&gt;The Recount on Twitter: &amp;ldquo;@Yamiche Yep, he said that. https://t.co/rw4rDmXO98&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/mikeyanderson/status/1326275394010456065"&gt;mikeyanderson&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The next few months will literally decide whether the United States is
  a democracy. I&amp;rsquo;ve expected this was going to be the case all along—but
  damn—they really are going to try to steal America.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;ldquo;Make boring plans&amp;rdquo; sounds awesome&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Screw &amp;ldquo;choose boring technology,&amp;rdquo; today&amp;rsquo;s mantra is &amp;ldquo;make boring
  plans.&amp;rdquo; AKA, if you can break a problem down well enough that the
  plans look to an outsider like they are mostly boring and rote, you
  are probably a damn fine platform engineer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/skamille/status/1326315622964326401"&gt;skamille&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=jfE13Z8ZF2E&amp;amp;feature=emb_logo"&gt;FROM ONE SINGLE SHEET OF PAPER - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Masayo Fukuda, contemporary master of kirie, or Japanese
  paper-cutting, crafting hyper detailed creatures from single sheets of
  paper, an art that has been around since 700 AD&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/womensart1/status/1326425005987598341"&gt;#WOMENSART on Twitter: &amp;ldquo;Masayo Fukuda, contemporary master of
kirie, or Japanese paper-cutting, crafting hyper detailed creatures
from single sheets of paper, an art that has been around since 700 AD
#womensart https://t.co/g8z1rXnLe5&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Called to mind &lt;a href="https://www.gravityglue.com/"&gt;Gravity Glue | Stone Balance by Michael Grab&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.thoughtworks.com/insights/blog/remote-pairing-101?utm_source=twitter&amp;amp;utm_medium=social&amp;amp;utm_campaign=transformation"&gt;(Remote) Pairing 101 | ThoughtWorks&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Even to those who are used to pairing in physical proximity, doing it
  remotely can sound counterintuitive and unnatural, but it doesn’t have
  to be. This article will go over three main effective remote pairing
  techniques. While it will not explain in detail what each technique
  entails, it will provide some scenarios for when best to practice it
  and what tools are best suited for it in the context of remote
  working.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/ctford/status/1326468337732358144"&gt;ctford&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The acceptance and transmission of Conspiracy Theories is Slander&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The fact that few in our churches are being confronted—much less
  receiving church discipline—for engaging in slander is scandalous.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/article/christians-conspiracy-theories/?utm_medium=email&amp;amp;utm_campaign=Weekly%20TGC%20Weekly%20Email&amp;amp;utm_content=Weekly%20TGC%20Weekly%20Email+CID_558394dc4ebef5a285322b047953048d&amp;amp;utm_source=Campaign%20Monitor&amp;amp;utm_term=Christians%20Are%20Not%20Immune%20to%20Conspiracy%20Theories"&gt;Christians Are Not Immune to Conspiracy Theories&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember &lt;a href="https://en.wikipedia.org/wiki/Poe%27s_law#:~:text=Poe's%20law%20is%20an%20adage,of%20the%20views%20being%20parodied."&gt;Poe&amp;rsquo;s law - Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We need more wisdom to counterbalance the staggering information overload we live in&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Should we still value science, data, and information? Of course. But
  2020 has made clear that the solution to complex problems is not
  simply more science, data, and information. What we need is more
  wisdom to know how to sift through and synthesize it, understand
  complexity, and make better decisions.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;I’m increasingly convinced that media habits are a discipleship matter
  that must be foregrounded in church ministry.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/article/2020-proves-we-dont-need-more-information/?utm_medium=email&amp;amp;utm_campaign=Weekly%20TGC%20Weekly%20Email&amp;amp;utm_content=Weekly%20TGC%20Weekly%20Email+CID_558394dc4ebef5a285322b047953048d&amp;amp;utm_source=Campaign%20Monitor&amp;amp;utm_term=2020%20Proves%20We%20Dont%20Need%20More%20Information%20We%20Need%20Something%20Else"&gt;2020 Proves We Don’t Need More Information. (We Need Something Else.)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;6 costs of sin&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The 17th-century Canons of Dort describe the price we pay for
  especially serious sins. By our sin we “greatly offend God, deserve
  the sentence of death, grieve the Holy Spirit, suspend the exercise of
  faith, severely wound the conscience, and sometimes lose the awareness
  of grace for a time” (5.5).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/article/6-costs-sin/?utm_medium=email&amp;amp;utm_campaign=Weekly%20TGC%20Weekly%20Email&amp;amp;utm_content=Weekly%20TGC%20Weekly%20Email+CID_558394dc4ebef5a285322b047953048d&amp;amp;utm_source=Campaign%20Monitor&amp;amp;utm_term=Sin%20Is%20Expensive%20Here%20Are%206%20Costs"&gt;Sin Is Expensive. Here Are 6 Costs.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/the-remarkable-way-we-eat-pizza-numberphile"&gt;The Remarkable Way We Eat Pizza - Numberphile | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Cut an orange in half, eat the insides (yum), then place the
  dome-shaped peel on the ground and stomp on it. The peel will never
  flatten out into a circle. Instead, it’ll tear itself apart. That’s
  because a sphere and a flat surface have different Gaussian
  curvatures, so there’s no way to flatten a sphere without distorting
  or tearing it. Ever tried gift wrapping a basketball? Same problem. No
  matter how you bend a sheet of paper, it’ll always retain a trace of
  its original flatness, so you end up with a crinkled mess.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Watching Stoll &lt;strong&gt;&lt;em&gt;hop&lt;/em&gt;&lt;/strong&gt; in excitement talking about a theorem is the
essence of Geek/Nerd culture and why I still firmly consider myself a
Nerd. :)&lt;/p&gt;

&lt;p&gt;Also, Stoll&amp;rsquo;s &lt;a href="https://lccn.loc.gov/2017416932"&gt;The Cuckoo&amp;rsquo;s Egg&lt;/a&gt; is one of my all time favorite
non-fiction narratives.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/emmanuelle-moureaux-rainbow-installations-forest-of-numbers-color-mixing"&gt;Emmanuelle Moureaux&amp;rsquo;s gridded rainbow installations | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;More than 60,000 pieces of suspended numeral figures from 0 to 9 were
  regularly aligned in three dimensional grids. A section was removed,
  created a path that cut through the installation, invited visitors to
  wonder inside the colorful forest filled with numbers. The
  installation was composed of 10 layers which is the representation of
  10 years time. Each layer employed 4 digits to express the relevant
  year such as 2, 0, 1, and 7 for 2017, which were randomly positioned
  on the grids. As part of Emmanuelle’s “100 colors” installation
  series, the layers of time were colored in 100 shades of colors,
  created a colorful time travel through the forest.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Beautiful. One day when I&amp;rsquo;m older and have free time again I will make
a point to visit these sorts of things.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/ice-glacier-borehole-antarctica-sound-video"&gt;Dropping ice chunks down a borehole in Antarctica: What does it sound like? | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This&lt;/em&gt; is what 'basic research&amp;rsquo; is all about. &lt;em&gt;Pew Pew!&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/japan-72-micro-seasons-change-mindfulness-video"&gt;Japan&amp;rsquo;s 72 Micro-Seasons of Impermanence | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m persistently trying to connect my experience of time with my local
world rather than with calendars. This is amazing.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The 72 milestones are smaller steps of change that reflect the rhythms
  of Japan’s ecosystems, but they also embrace the impermanence and
  constant change that can be applied to any ecosystem.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://theweek.com/articles/949070/trump-demonic-force-american-politics"&gt;Trump is a demonic force in American politics&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;What makes Trump demonic? One thing above all: His willingness, even
  eagerness, to do serious, potentially fatal, damage to something
  beautiful, noble, fragile, and rare, purely to satisfy his own
  emotional needs. That something is American self-government. Trump
  can&amp;rsquo;t accept losing, can&amp;rsquo;t accept rejection, and savors provoking
  division. He wants to be a maestro conducting a cacophony of
  animosities at the center of our national stage because it feeds his
  insatiable craving for attention and power — and because, I suspect,
  he delights in pulling everybody else down to his own level.&lt;/p&gt;
  
  &lt;p&gt;That is a satanic impulse.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;I still believe that the most likely outcome of this mess is that
  Trump eventually relents, allowing the process of presidential
  transition to move forward. But that doesn&amp;rsquo;t mean it&amp;rsquo;s anything close
  to guaranteed. And even if he does back down, it seems certain to be
  combined with the deliberate nurturing of a stabbed-in-the-back
  narrative that keeps alive the pernicious fiction that Trump didn&amp;rsquo;t
  really lose, that the Democrats&amp;rsquo; win in 2020 is tainted, and that the
  Biden administration has been illegitimate from the start, founded in
  an act of treachery for which no one has yet paid a price.&lt;/p&gt;
  
  &lt;p&gt;That it is all a lie won&amp;rsquo;t matter one bit. The demon infecting our
  democracy doesn&amp;rsquo;t care, and neither will those whose enmity he has
  worked so tirelessly to inflame over the past four years.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;President Trump and his administration are doing everything in their power to undermine our Republic&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.bbc.com/news/election-us-2020-54882647"&gt;Barr endorses federal fraud investigations, lead Republicans fall in line&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well I guess the Republicans &lt;em&gt;are&lt;/em&gt; beginning to fall in line. 😭&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Senior members of the president&amp;rsquo;s party have largely refused to
  pressure Mr Trump to concede.&lt;/p&gt;
  
  &lt;p&gt;On Monday Senate leader Mitch McConnell criticised Democrats over the
  matter.&lt;/p&gt;
  
  &lt;p&gt;&amp;ldquo;Let&amp;rsquo;s not have any lectures, no lectures,&amp;rdquo; the Kentucky senator said
  on the floor of the upper chamber, &amp;ldquo;about how the president should
  immediately, cheerfully accept preliminary election results from the
  same characters who just spent four years refusing to accept the
  validity of the last election and who insinuated that this one would
  be illegitimate too if they lost again - only if they lost.&amp;rdquo;&lt;/p&gt;
  
  &lt;p&gt;He added: &amp;ldquo;The president has every right to look into allegations and
  to request recounts under the law and notably the constitution gives
  no role in this process to wealthy media corporations.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.bbc.com/news/election-us-2020-54724960"&gt;Trump Administration&amp;rsquo;s potential legal playbook&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Is this good for our country?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://acoup.blog/2020/10/30/fireside-friday-october-30-2020/"&gt;What the corpos of historical self-governing societies has to say about the 2020 elections&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s good and bad. Self-governments are fraigel, but we&amp;rsquo;re not the
crisis point yet, we can see it coming, and we may have just elected
a man who&amp;rsquo;s agenda is &lt;em&gt;perfectly&lt;/em&gt; aligned with a preservation of
self-government in our society.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;One thing that emerges quite clearly from a study of Greek and Roman
  antiquity is the intense fragility of self-government. That fragility
  is easy to miss in a modern context&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;And it is in observing that sample that it becomes clear that these
  systems of government can be very fragile internally. Patterns also
  emerge as to how such systems break down. The cycle of breakdown was
  sufficiently common that the Greeks had a nice, compact word for it:
  stasis (στάσις, pronounced STAH-sis, not STAY-sis. The nearest Latin
  equivalent is factio, but Roman authors – especially Cicero – also
  translate stasis as seditio). At its root, a stasis was ‘a standing’
  (the ‘sto-‘ root to mean ‘stand’ is common in many Indo-European
  languages), but rather than our word stasis (from the same root) which
  meant a standing still, stasis came to mean a ‘standing together’ and
  from there a ‘faction’ or political party, and then ‘factionalism’ and
  finally from that meaning, ‘civil strife’ and even ‘revolution.’&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;In an effort to compromise on nothing, the Roman elite lost
  everything.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;Elections don’t merely change politics; they can change the culture.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;In short, Joe Biden is running on a platform of compromise and a
  constructive, inclusive redefinition of the polity which explicitly
  welcomes past opponents to join him at the table. To me, reasoning
  from historical example, that seems like the correct answer to the
  current moment.&lt;/p&gt;
  
  &lt;p&gt;On the other hand, we have a different candidate (and current
  President) who is running on a promise to ‘win’ the stasis by main
  force, to dominate and to win, indeed, until he (or we) get tired of
  winning, to escalate the tensions to the final victory of the faction.
  This is exactly the approach that I think a sober reading of
  historical examples warns us is likely doomed to failure, regardless
  of what one thinks of the underlying policy aims (which might well
  have been achieved without the rhetoric and practice of escalation). I
  cannot help but think that, as happened in the last decades of the
  Roman Republic, rewarding this sort of rhetoric and behavior will
  produce more of it from both parties and put our republic on a
  dangerous path.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://kottke.org/20/11/lessons-from-the-ancient-world-about-the-political-collapse-and-recovery-of-self-governing-communities"&gt;Kottke&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.theatlantic.com/ideas/archive/2020/11/trump-proved-authoritarians-can-get-elected-america/617023/"&gt;President Trump paved the way for a skilled authoritarian to take power&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s not that President Trump wasn&amp;rsquo;t his own kind of disaster. It&amp;rsquo;s
that the people coming after him who really know how to be a
strongman now know they have a strong chance of winning.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The situation is a perfect setup, in other words, for a talented
  politician to run on Trumpism in 2024. A person without the eager
  Twitter fingers and greedy hotel chains, someone with a penchant for
  governing rather than golf. An individual who does not irritate
  everyone who doesn’t already like him, and someone whose wife looks at
  him adoringly instead of slapping his hand away too many times in
  public. Someone who isn’t on tape boasting about assaulting women, and
  who says the right things about military veterans. Someone who can
  send appropriate condolences about senators who die, instead of
  angering their state’s voters, as Trump did, perhaps to his detriment,
  in Arizona. A norm-subverting strongman who can create a durable
  majority and keep his coalition together to win more elections.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;At the moment, the Democratic Party risks celebrating Trump’s loss and
  moving on—an acute danger, especially because many of its
  constituencies, the ones that drove Trump’s loss, are understandably
  tired. A political nap for a few years probably looks appealing to
  many who opposed Trump, but the real message of this election is not
  that Trump lost and Democrats triumphed. It’s that a weak and
  untalented politician lost, while the rest of his party has completely
  entrenched its power over every other branch of government: the
  perfect setup for a talented right-wing populist to sweep into office
  in 2024. And make no mistake: They’re all thinking about it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://kottke.org/20/11/americas-next-authoritarian-will-be-much-more-competent"&gt;Kottke&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/11/head-stabilized-champion-hurdler"&gt;Head-Stabilized Champion Hurdler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is as close to a real life expression of a slasher horror film as
I&amp;rsquo;ve ever seen. He just 👏 keeps 👏 coming 👏.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In this view, you can clearly see how expert hurdlers don’t jump their
  whole bodies over the hurdle (like Super Mario or something) — it’s
  more that they just bring their lower bodies up over the hurdles while
  their heads &amp;amp; shoulders remain more or less the same height from the
  ground. There’s hardly any lateral motion either — very little wasted
  energy here.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/11/former-ballerina-with-alzheimers-recreates-her-swan-lake-choreography"&gt;Former Ballerina with Alzheimer’s Recreates Her Swan Lake Choreography&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In the video above, you can see how, as she starts to listen to Swan
  Lake in a pair of headphones, she reanimates and begins performing the
  dance choreography in her wheelchair.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/mushrooms-grow-shrivel-time-lapse-owen-reiser"&gt;Mushrooms grow and shrivel in this 10,000 shot time-lapse | The Kid Should See This&lt;/a&gt; 3 min&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;An eight-month-long lockdown project, this 10,000 shot time-lapse
  video captures mushrooms growing and shriveling in an Illinois forest.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=T5ivg0cDBgo"&gt;Robert Wyatt - I&amp;rsquo;m a believer - Top Of The Pops - 1974 - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;One of the best covers ever, of one of the best songs ever written.
  Robert Wyatt performing &amp;ldquo;I&amp;rsquo;m a Believer&amp;rdquo; by the Monkees&lt;/p&gt;
  
  &lt;p&gt;&amp;mdash;&lt;a href="https://twitter.com/mrb_bk/status/1326170240552755201"&gt;mrb&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://open.spotify.com/album/1PsMxmE3pPOJ799PaAEdYI?si=NkxI_FANSdqLg-cPlGNX_g"&gt;Four Organs: Phase Patterns by Steve Reich&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any time I listen to Steve Reich I feel like my perception of reality
is under assault.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/mrb_bk/status/1326171612878671873"&gt;mrb&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/pyramid-scheme-ted-ed"&gt;How to spot a pyramid scheme | The Kid Should See This&lt;/a&gt; 5 min&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In the end, if you remember anything I hope it is this: if the offer
  asks you to pay and recruit, reject and report! Remember, pyramid
  schemes require recruitment within networks so they can’t catch fire
  if we know how to detect and reject.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/life-death-and-discovery-of-a-plesiosaur"&gt;Life, death, and discovery of a plesiosaur | The Kid Should See This&lt;/a&gt; 3 min&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Today, finding plesiosaur bones in a quarry in Cambridgeshire is not
  uncommon, but finding a close-to-complete skeleton and its skull is
  very rare. “I’d never seen so much bone in one spot in a quarry,”
  explained Oxford Clay Working Group member Carl Harrington of the
  long-necked specimen when it was discovered in 2016.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://theweek.com/articles/948080/no-not-all-trump-voters-are-racist"&gt;No, not all Trump voters are racist&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The controlling narrative that it is only The Wicked who are not
Progressive is doing great harm to doing actual good on the ground.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Blow unironically blames these facts on &amp;ldquo;the Power of White
  Patriarchy,&amp;rdquo; which somehow causes oppressed people to align with the
  oppressor. But that&amp;rsquo;s basically a progressive version of blaming
  Satan: the specific mechanisms by which the unseen evil influence
  works remains unclear.&lt;/p&gt;
  
  &lt;p&gt;A far more plausible explanation is that most Americans who voted for
  Trump for a wide range of reasons don&amp;rsquo;t consider him racist or
  bigoted.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;To be clear: None of these things are harmless. Even Trump&amp;rsquo;s nonracial
  taunts and slanders are profoundly demeaning to our public life. His
  race-baiting and immigrant-baiting are far worse; they not only make
  many members of minority groups feel diminished but embolden bigots
  who do take the hateful message seriously. Those people — the racists,
  the xenophobes, the misogynists, the anti-Semitic conspiracy theorists
  — are a part of his &amp;ldquo;base.&amp;rdquo;&lt;/p&gt;
  
  &lt;p&gt;But if those were the only people supporting Trump, Biden would have
  won by a much larger margin than he did.&lt;/p&gt;
  
  &lt;p&gt;There are plenty of others — including people who are not white. A
  Wall Street Journal report on pro-Trump Latinos in South Texas offers
  a glimpse at their reasons. Some credit Trump with a good economy.
  Others see him as someone who speaks up for religion. Still others
  worry that Biden may hurt the oil industry, where many locals work.
  Some feel that the Democrats are anti-law enforcement — or even blame
  them for the past summer&amp;rsquo;s riots linked to anti-racism protests.&lt;/p&gt;
  
  &lt;p&gt;We can ask why so many people are willing to give Trump a pass on his
  50 shades of awful, or to believe things that seem self-evidently
  absurd (for instance, that Trump cares about working people).
  Nevertheless, Trump voters are also expressing concerns that cannot be
  dismissed. Moral grandstanding may be satisfying — but Biden&amp;rsquo;s message
  of healing and dialogue is a far better way forward. In fact, I&amp;rsquo;d say
  it&amp;rsquo;s the only way forward.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://alexanderperrin.com.au/paper/shorttrip/#"&gt;Short Trip - Alexander Perrin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is such a calming experience. I love getting to stop to let the
little bird people in.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://www.reddit.com/r/InternetIsBeautiful/comments/jquu8m/beautiful_handdrawn_animated_tram_ride_just_hold/"&gt;InternetIsBeautiful&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The comedy genius of James Veitch&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m not a fan of comedy generally speaking but if I could find more
comedians like James Veitch I think that would change. Between his
epic &lt;a href="https://www.ted.com/talks/james_veitch_this_is_what_happens_when_you_reply_to_spam_email#t-576275"&gt;trolling&lt;/a&gt; of &lt;a href="https://www.youtube.com/watch?v=IUjpoauJcKo"&gt;spammers&lt;/a&gt; to his call for &lt;a href="https://www.ted.com/talks/james_veitch_the_agony_of_trying_to_unsubscribe"&gt;whimsy&lt;/a&gt; in the face of
frustration I could laugh at this man&amp;rsquo;s jokes for many hours.&lt;/p&gt;

&lt;p&gt;Related and decidely more blue: &lt;a href="http://www.27bslash6.com/p2p2.html"&gt;It&amp;rsquo;s like Twitter. Except we charge
people to use it.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codersociety.com/blog/articles/contract-testing-pact"&gt;Contract Testing for Node.js Microservices with Pact | Coder Society&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="timestamp"&gt;[2020-11-08 Sun 20:53]&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I really like the idea of using something like this to vastly tighten
up what we&amp;rsquo;re currently using UI automation tests for.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Contract testing is a technique for checking and ensuring the
  interoperability of software applications in isolation and enables
  teams to deploy their microservices independently of one another.
  Contracts are used to define the interactions between API consumers and
  providers. The two participants must meet the requirements set out in
  these contracts, such as endpoint definitions and request and response
  structures.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://www.devopsweekly.com/"&gt;Devops Weekly List&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://bitfieldconsulting.com/golang/rust-vs-go"&gt;Rust vs Go — Bitfield Consulting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="timestamp"&gt;[2020-11-08 Sun 20:53]&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;This feels like a very even handed and thorough comparison between
these two languages. The summation is that they&amp;rsquo;re both great, serve
very similar purposes, and make some subtle tradeoffs.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;First, it&amp;rsquo;s really important to say that both Go and Rust are
  absolutely excellent programming languages. They&amp;rsquo;re modern, powerful,
  widely-adopted, and offer excellent performance. You may have read
  articles and blog posts aiming to convince you that Go is better than
  Rust, or vice versa. But that really makes no sense; every programming
  language represents a set of trade-offs. Each language is optimised for
  different things, so your choice of language should be determined by
  what suits you and the problems you want to solve with it.&lt;/p&gt;
  
  &lt;p&gt;In this article, I&amp;rsquo;ll try to give a brief overview of where I think Go
  is the ideal choice, and where I think Rust is a better alternative.
  Ideally, though, you should have a working familiarity with both
  languages. While they&amp;rsquo;re very different in syntax and style, both Rust
  and Go are first-class tools for building software. With that said,
  let&amp;rsquo;s take a closer look at the two languages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://www.devopsweekly.com/"&gt;Devops Weekly List&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://speakerdeck.com/garethr/configuration-security-is-a-developer-problem"&gt;Configuration security is a developer problem - Speaker Deck&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="timestamp"&gt;[2020-11-08 Sun 20:59]&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;This is a good overview of the methods we have available to us to shift
security and compliance left and empower application engineers to
manage their infrastructure safely.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Conclusions:&lt;/p&gt;
  
  &lt;ol&gt;
  &lt;li&gt;Infrastructure is increasingly part of the app. Your configuration
  is in the same repo as your code, maintained by the same developers
  and going through CI.&lt;/li&gt;
  &lt;li&gt;Infrastructure as code leads to its own security challenges. But
  static analysis is surprisingly useful when applied to declarative
  languages.&lt;/li&gt;
  &lt;li&gt;Shift security left. Automatically catching security issues during
  development means less issues in production, and more time to focus
  on finding and fixing them.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://www.devopsweekly.com/"&gt;Devops Weekly List&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://netflixtechblog.com/keeping-netflix-reliable-using-prioritized-load-shedding-6cc827b02f94"&gt;Keeping Netflix Reliable Using Prioritized Load Shedding | by Netflix Technology Blog | Nov, 2020 | Netflix TechBlog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a couple of amazing ideas in this article:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Progressive load shedding based on priority of incoming request.
This allows them to keep their most important functionality up
(playing content) while progressively degrading all other services.&lt;/li&gt;
&lt;li&gt;Smart configuration of clients during an outage by sending them
detailed directions for how to retry. This allows them to send
responses to smart clients that directly configure how things like a
retry-storm will or won&amp;rsquo;t happen.&lt;/li&gt;
&lt;li&gt;Continuous Experimentation. I love the idea that once an experiment
has been run it should just be run continuously to be constantly
validated.&lt;/li&gt;
&lt;li&gt;A traffic router that understands the downstream health of its
services and sheds load accordingly. The idea of a router smart
enough to understand that any of its backend services is degraded or
that &lt;em&gt;itself&lt;/em&gt; is degraded and responds accordingly sounds like a
super power for relability.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;via &lt;a href="http://sreweekly.com/sre-weekly-issue-243/"&gt;SRE Weekly Issue #243 – SRE WEEKLY&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://support.circleci.com/hc/en-us/articles/360050623311?input_string=custom+datadog+metrics+from+my+pipelines"&gt;Docker Hub rate limiting FAQ – CircleCI Support Center&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Exceptions: Remote Docker and Machine Executors will be impacted by
  the rate limiting unless pulling CircleCI-published images.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Remote docker and machine executors continue to be risky.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://netflixtechblog.com/building-netflixs-distributed-tracing-infrastructure-bb856c319304"&gt;Building Netflix’s Distributed Tracing Infrastructure | by Netflix Technology Blog | Oct, 2020 | Netflix TechBlog&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Prior to Edgar, our engineers had to sift through a mountain of
  metadata and logs pulled from various Netflix microservices in order to
  understand a specific streaming failure experienced by any of our
  members. Reconstructing a streaming session was a tedious and time
  consuming process that involved tracing all interactions (requests)
  between the Netflix app, our Content Delivery Network (CDN), and
  backend microservices. The process started with manual pull of member
  account information that was part of the session. The next step was to
  put all puzzle pieces together and hope the resulting picture would
  help resolve the member issue. We needed to increase engineering
  productivity via distributed request tracing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Distributed Tracing isn&amp;rsquo;t new but Edgar sounds awesome. I would love to
get here one day as at companies I help lead.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.infoq.com/news/2020/10/aws-dashboards/"&gt;AWS Publishes Best Practices Guide for Operational Dashboards&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;One principal is to work backwards from the expected end user in order
  to ensure that the dashboard can meet their needs. As O'Shea notes,
  &amp;ldquo;It’s easy to build a dashboard that makes total sense to its creator.
  However, this dashboard might not provide value to users.&amp;rdquo; As they have
  found that users tend to interpret the graphs that render first as most
  important, the convention states that the most important graphs are
  placed at the top. The most important for web services tend to be
  aggregate or summary availability graphs and end-to-end latency
  percentile graphs.&lt;/p&gt;
  
  &lt;p&gt;Some of the other design principles include:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;Ensure a consistent time zone for display (and display it on the dashboard)&lt;/li&gt;
  &lt;li&gt;Lay out graphs for the expected minimum display resolution&lt;/li&gt;
  &lt;li&gt;Enable the ability to adjust the time interval and metric period&lt;/li&gt;
  &lt;li&gt;Annotate the graphs with alarm thresholds and goals&lt;/li&gt;
  &lt;li&gt;Use alarm status, simple numbers, or time series graph widgets where
  appropriate&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;Maintaining and updating dashboards is ingrained in our development
  process. Before completing changes, and during code reviews, our
  developers ask, &amp;ldquo;Do I need to update any dashboards?&amp;rdquo; They are
  empowered to make changes to dashboards before the underlying changes
  are deployed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a really good article on the principles of effective Dashboard
design.&lt;/p&gt;

&lt;p&gt;I also really like the idea of having a team discuss their systems
health using their dashboards as a way to review and validate their
usefulness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.blog/2020-10-29-making-github-ci-workflow-3x-faster/"&gt;Making GitHub CI workflow 3x faster - The GitHub Blog&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;At this moment the monumental Ruby monolith that powers millions of
  developers on GitHub.com, has over 7,000 test suites and over 5,000
  test files. Every commit to a pull request triggers 25 CI jobs and
  requires 15 of those CI jobs to complete before merging a pull request.
  This meant that a developer at GitHub spent approximately 45 minutes
  and 600 cores of computing resources for every commit. That’s a lot of
  developer-hours and machine-hours that could be spent creating value
  for our customers.&lt;/p&gt;
  
  &lt;p&gt;Analyzing the types of CI jobs, we identified four categories: unit
  testing, linting/performance, integration testing, builds/deployments.
  All jobs except two of the integration testing jobs took less than 13
  minutes to run. The two integration testing jobs were the bottleneck in
  our Lead Time for Changes. As it is true for most DevOps cycles,
  several test suites were also flaky. Although this blog post isn’t
  going to share how we solved for the flakiness of our tests, spoiler
  alert, a future post in this series will explain that process. Apart
  from being flaky, the two integration testing jobs increased developer
  friction and reduced productivity at GitHub.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is &lt;em&gt;exactly&lt;/em&gt; the kind of analysis I need to be able to do to my CD
pipelines in order to be able to improve them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://n-gate.com/hackernews/2020/10/31/0/"&gt;n-gate.com. we can&amp;rsquo;t both be right.&lt;/a&gt; &lt;span class="timestamp"&gt;[2021-10-31 Sun]&lt;/span&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The RIAA causes outrage and fury worldwide by listing Icona Pop in the
  same set as Justin Timberlake and Taylor Swift. Hackernews wrestles
  with their value judgments; their firm stance as bootlickers for
  megacorporations has finally crashed headlong into their equally firm
  belief that programmers should never be held to any legal or moral
  standards. What results is a wide-ranging display of profound
  confusion, as Hackernews realizes they don&amp;rsquo;t have clear definitions of
  literally any of the words involved in internet video, copyright law,
  the American legal process, or website hosting.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;God n-gate! 😂&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pbs.org/wnet/gperf/one-man-two-guvnors-full-episode-tchziq/12167/"&gt;One Man, Two Guvnors | Great Performances | PBS&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Featuring a Tony Award-winning performance by CBS Late Late Show host
  James Corden, the hilarious West End and Broadway hit One Man, Two
  Guvnors by playwright Richard Bean delighted critics and audiences
  alike during its West End and Broadway productions in 2011 and 2012.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.slashfilm.com/the-northman-viking-film-anya-taylor-joy/"&gt;The Northman Viking Film: The World&amp;rsquo;s Never Seen a Movie Like It – /Film&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ummm…. What!? This sounds &lt;em&gt;amazing&lt;/em&gt;. Like maybe &lt;a href="https://www.youtube.com/watch?v=dQgoGccHJD4"&gt;Valhalla Rising&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://deliberate-software.com/pairprogramming/"&gt;Ten Years of Pair Programming · deliberate software&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We have seen promiscuous pairing completely change our organization. As
  a team, we accomplish far more than we would otherwise. We are able to
  tackle new systems, languages, and tools with ease. When someone learns
  a new valuable technique, it spreads organically through the team.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Promiscuous Pairing, to this day, is still the most effective I&amp;rsquo;ve ever
seen a small team be by many orders of magnitude. This is an absolutely
excellent and honest account of what it can look like.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.city-journal.org/progressives-damage-their-own-cause"&gt;Compared to What? | City Journal&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The most important question in politics is Henny Youngman’s: compared
  to what? If progressives were given to rigorous self-examination, they
  might think hard about the possibility that Trump and Republicans in
  general surpass electoral expectations because the alternative to the
  GOP is &amp;hellip; progressivism. Standing next to a twenty-first-century
  progressive turns out to be a good way for conservatives to get asked
  out onto the dance floor. Strange to relate, many voters do not respond
  gratefully to being execrated as bigots, fascists, and idiots.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://quillette.com/2020/10/24/what-divides-us-is-class-not-race/"&gt;What Divides Us Is Class, Not Race - Quillette&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But most middle-aged white American men aren’t named Bezos, Zuckerberg,
  or Musk. On average, like all North American workers, regardless of
  race, that vast majority hasn’t seen a real wage increase in almost
  fifty years. The middle class, once the dominant majority in American
  society and the steady flywheel of its economy, is now beleaguered,
  shrinking, and downwardly mobile. Like everyone else, they’re
  expressing their fear and insecurity in a political language that is
  often unhealthy, and sometimes hateful. None of this excuses acts of
  racism. But the problem isn’t going to be solved with hashtags. As the
  gilded one percent takes up more economic space, the competition for
  what remains becomes more bitter. In a way, the message I bring is one
  of racial harmony: You’re all getting screwed together…&lt;/p&gt;
  
  &lt;p&gt;… it’s no surprise that many upper middle-class progressive voters, who
  see no threat from newcomers whatsoever, are perfectly happy to dismiss
  concerns about immigration as presumptive racism…&lt;/p&gt;
  
  &lt;p&gt;I’m not supposed to say this, but I will: Taking a knee to Black Lives
  Matter, or hauling down monuments, isn’t going to change any of this.
  Nor will corporate diversity policies, many of which are trumpeted on
  social media by the same conglomerates that are hiring low-cost labor
  in droves. What we need are policies—including trade and immigration
  policies—that help us carve up the economic pie in a way that sees all
  workers get their fair share, no matter what their ethnicity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;File this in my growing &amp;ldquo;No War but the Class War&amp;rdquo; folder, please.&lt;/p&gt;

&lt;p&gt;Also see &lt;a href="https://www.uctv.tv/shows/Robert-Reich-How-Unequal-Can-America-Get-Before-We-Snap-9521"&gt;VIDEO: Robert Reich: How Unequal Can America Get Before We
Snap? - UCTV - University of California Television&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://quillette.com/2020/11/03/the-failing-business-model-of-american-universities/"&gt;The Failing Business Model of American Universities - Quillette&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Given the continual capitalization of students in the pursuit of
  profit, something must be done before the system reaches a precipice
  from which a fall would cause catastrophic failure. While the
  university business model surely has its place in society, I do not
  believe that higher education should utilize it to exploit our future
  generations. Academic institutions should have their priorities in
  education, for the good of its students and our society as a whole.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This bubble needs to pop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://quillette.com/2020/11/03/for-five-months-blm-protestors-trashed-americas-cities-after-the-election-things-may-only-get-worse/"&gt;For Five Months, BLM Protestors Trashed America&amp;rsquo;s Cities. After the Election, Things May Only Get Worse - Quillette&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;And when it comes to these organizations, including Black Lives Matter,
  Antifa, and the newer splinter groups that mimic their tactics, the
  media often seems to take their social-justice posturing at face value.
  In the current media environment, left-of-center actors who claim to
  represent the cause of the oppressed are granted more moral license to
  use violence as a political tool…&lt;/p&gt;
  
  &lt;p&gt;In September, two reports were published—one shedding light on the
  methods and beliefs of Black Lives Matter activists, and the other
  analyzing the possibility that such violence will not only be sustained
  in coming months, but get worse.&lt;/p&gt;
  
  &lt;p&gt;Neither report has received much in the way of media attention, which
  is unfortunate, because the information they contain shows that the
  threat of violence won’t end with the election of a new president. In
  fact, all of the leading left-wing groups calling for disruptive street
  protests (or worse) have made demands in which they explicitly reject
  one or more basic elements of the American social contract that are
  supported by both mainstream Democrats and Republicans—including
  capitalism, race-neutrality, the right of a society to police itself,
  and even democracy itself…&lt;/p&gt;
  
  &lt;p&gt;Most Americans, whether Republicans or Democrats, don’t want violence.
  BLM’s Marxist roots and violent methods don’t reflect mainstream
  progressives (or Black Americans, for that matter) any more than
  extreme right-wing groups reflect mainstream conservatives. But one
  would not know this based on the skewed way that these groups are
  reported on. Surely, it is no slur on social justice or racial equality
  to point out that radical, often violent anti-capitalist,
  anti-democratic groups inspired by communist dictators do not have
  America’s best interests at heart.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://deliberate-software.com/self-organizing-balance/"&gt;What Keeps a Self-Organizing Team From Falling Apart · deliberate software&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The author of &lt;a href="https://www.reinventingorganizations.com/"&gt;Reinventing Organizations&lt;/a&gt; talks about the concept of
  “self-correction” that allows self-organizing teams to adapt without
  writing a thick rule-book of policies. Healthy, self-organizing teams
  build a simple system that self-corrects instead of adding new policies
  when trust is abused. Rather than trying to design the perfect
  rule-book, they let individuals grow into trusted, intelligent agents
  who are expected to learn and improve.&lt;/p&gt;
  
  &lt;p&gt;The author suggests that three things are needed for self-correcting
  teams:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;A shared understanding of what’s healthy&lt;/li&gt;
  &lt;li&gt;Information&lt;/li&gt;
  &lt;li&gt;A forum for conversation to trigger self-corrective action&lt;/li&gt;
  &lt;/ul&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;Self-correcting practices allow individuals to perform at their best
  with fewer rule books, fewer meetings, fewer bottlenecks, and less
  oversight. Individuals are trusted to perform their best, and the team
  is provided with a way to discuss improvements. A self-correcting team
  will find individuals empowered to improve the business in incredible
  ways.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.swiss-miss.com/2020/11/good-bones.html"&gt;swissmiss | Good Bones&lt;/a&gt;&lt;/p&gt;

&lt;p class="verse"&gt;
Good Bones Maggie Smith&lt;br/&gt;
&lt;br/&gt;
Life is short, though I keep this from my children.&lt;br/&gt;
Life is short, and I&amp;rsquo;ve shortened mine&lt;br/&gt;
in a thousand delicious, ill-advised ways,&lt;br/&gt;
a thousand deliciously ill-advised ways&lt;br/&gt;
I&amp;rsquo;ll keep from my children. The world is at least&lt;br/&gt;
fifty percent terrible, and that&amp;rsquo;s a conservative&lt;br/&gt;
estimate, though I keep this from my children.&lt;br/&gt;
For every bird there is a stone thrown at a bird.&lt;br/&gt;
For every loved child, a child broken, bagged,&lt;br/&gt;
sunk in a lake. Life is short and the world&lt;br/&gt;
is at least half terrible, and for every kind&lt;br/&gt;
stranger, there is one who would break you,&lt;br/&gt;
though I keep this from my children.&lt;br/&gt;
I am trying to sell them the world. Any decent realtor,&lt;br/&gt;
walking you through a real shithole, chirps on&lt;br/&gt;
about good bones: This place could be beautiful,&lt;br/&gt;
right? You could make this place beautiful.&lt;br/&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mereorthodoxy.com/politics-abortion-character/"&gt;Politics Is More Than Abortion vs Character - Mere Orthodoxy | Christianity, Politics, and Culture&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So much Christian analysis of the election implicitly frames the
  contest as, more or less, the evils of Trump’s character against the
  evils of abortion. American politics is reduced to a contest between
  “Trump is mean,” against “abortion is murder,” the only difference
  being how different commentators weigh the relative evils. Piper
  twisted himself into knots to say that Trump’s character is as
  destructive to the body politic as murdering babies, while Mohler goes
  through the same convolution in reverse to say that the evils of
  abortion outweigh racism, separating families at the border, the
  destruction of the earth’s environment, and the out-of-control COVID-19
  pandemic that has killed over a million people worldwide (which Mohler
  somehow does not even mention)…&lt;/p&gt;
  
  &lt;p&gt;Let’s start with the right. The root problem is not that Trump is mean.
  The problem is that he is a nationalist, a problem that infects much of
  the right and thus will outlast Trump himself. Much of his meanness is
  not a character flaw so much as an ideological choice. Trump is mean
  because of what he believes about the world, about American identity,
  and about his fellow citizens…&lt;/p&gt;
  
  &lt;p&gt;Sexual promiscuity probably tells us nothing at all about how well
  someone would look after the common good…&lt;/p&gt;
  
  &lt;p&gt;But the problem with the left is not simply abortion. It is
  progressivism. Progressivism, like nationalism, is a totalistic
  political religion that is fundamentally inconsistent with the ideals
  of a free and open society…&lt;/p&gt;
  
  &lt;p&gt;Progressivism is a demeaning view of human personhood, trapped between
  essentialism and rebellion, forever. We are fundamentally defined by
  the unchosen categories of our race, class, and gender, which means we
  must be empowered to explore, define, and express these identities even
  as we rebel against any external effort to tell us what they mean and
  rebel against the felt limitations they impose—and simultaneously we
  are encouraged to approach the world primarily as a never-ending fight
  against an irredeemable system of racial, sexual, or economic
  oppression…&lt;/p&gt;
  
  &lt;p&gt;The most urgent and most moral necessity in American politics is to
  dismantle the two-party system that artificially forces us into an
  impossible choice between two immoral options, neither of which
  represents a majority of Americans, embodies the aspirations of the
  American experiment, or articulates a vision of ordered liberty and
  human dignity. The American experiment is a miracle of political order,
  a miracle that is increasingly fragile and has no champions, no
  defenders, and no partisans in our contemporary political landscape
  except for the large and growing number of voters who reject the two
  parties who claim to govern in their name.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My &lt;strong&gt;&lt;em&gt;God&lt;/em&gt;&lt;/strong&gt; I think this is an important article. I am shook. I feel
like this has summarized everything I feel and expressed it in such an
articulate manner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mereorthodoxy.com/citizen-strangers-cost-compromise/"&gt;Citizen Strangers and the Cost of Compromise - Mere Orthodoxy | Christianity, Politics, and Culture&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Vice President Pence’s speech is a classic example of what Robert
  Bellah terms “civil religion.” Civil religion is a shared national
  religious consciousness that, while not clearly defined, significantly
  interweaves and binds American political life together. Listen to just
  about any inauguration speech and you will hear it. While many believe
  the United States was founded as a Christian nation, Bellah is
  explicit: “[civil] religion is clearly not itself Christianity.” The
  god of American civil religion is “much more related to order, law, and
  right than to salvation and love.”[2] Its genius is in its accessible,
  relatable generality. The moment it becomes too specific, it alienates
  religious others, and slouches toward state religion.&lt;/p&gt;
  
  &lt;p&gt;However, the Vice President’s speech went beyond standard civil
  religious rhetoric, leaning toward specificity. His climactic
  conclusion evoked powerful associations with an unnamed (yet entirely
  understood) figure. The suggestive rhetoric deftly merged the crucified
  Christ with courageous patriots; blood-bought spiritual freedom with a
  star spangled one.&lt;/p&gt;
  
  &lt;p&gt;Religious rhetoric deployed for political gain is no recent innovation.
  It is baked into our collective identity as far back as our founding.
  This speech, however, was intended for a particular audience: American
  evangelicals committed to the Republican cause, the Religious Right,
  and Christian Nationalists.[3] And it is an effective strategy because
  of a deep confusion—a fusion, really—that has taken place between
  Christian theology and American ideology. This is not a neutral matter.
  In merging the two, American evangelicalism has diminished its
  prophetic distance from culture, and in doing so, has impaired its
  capacity for witness as citizen-strangers…&lt;/p&gt;
  
  &lt;p&gt;But witness is ineffective when critical distance is removed. Our
  displacement does more than make us social oddballs; it produces the
  detachment necessary to proclaim the supremacy of Christ, and to both
  critique culture where it opposes him, and affirm it where it manifests
  goodness. Intimate identification with a particular culture (or
  subculture) binds us to the very thing we seek to appraise, pegging us
  to a compromised and biased vantage point. It is hard enough to
  criticize our heroes; how can we expect to speak out against the
  culture shaping our identity? In fact, one could argue that this kind
  of witness is suicidal. If it is imprudent to saw away at the legs of
  the stool you sit on, it is lethal to critique the grounding reality on
  which your identity rests.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Please listen, oh my heart.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.firstthings.com/web-exclusives/2020/11/the-new-colonialism"&gt;The New Colonialism | Francis X. Maier | First Things&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So here’s the point: Hostility toward the Electoral College seems like
  a small thing. Maybe it is. But it hints at a deeper impatience with
  our political process. And that strikes me as part of a still deeper,
  and still largely unarticulated, current of social change. As the
  Israeli historian Yuval Noah Harari has argued, liberal political
  institutions depend on belief in equality, individual free will, and
  human agency. But these are increasingly challenged by emerging science
  and transformative technologies. Over time, Harari claims, the result
  will be a new kind of social reality that requires new political
  expressions. The old institutions may survive and have the same
  appearance, but their content will be empty or vestigial, or change
  altogether. Think it can’t happen here? Laugh while you can. There’s a
  reason Big Tech follows Harari with intense interest.&lt;/p&gt;
  
  &lt;p&gt;What may be coming our way is an odd kind of “new colonialism,” with
  flyover country—that Dark Continent formerly known as places like
  Kansas, Alabama, and Tennessee, largely inhabited by reactionary
  troglodytes—reduced in effective power to mission territory for our
  enlightened coastal elites; who, after all, are much smarter than the
  rest of us and have the expert skills to run our complex technocracy.&lt;/p&gt;
  
  &lt;p&gt;And of course, they’ll do all this unselfishly, heroically really, for
  the benefit of us natives. I’ve seen how well that works.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The rabid desire that we progressives have to enforce our will on
everyone is some of the stuff authoritarianism is made out of.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.firstthings.com/web-exclusives/2020/11/identity-politics-and-the-election"&gt;Identity Politics and the Election | Joshua Mitchell | First Things&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Postmodernism still lingers in the corridors of academia, but the great
  threat now facing America is identity politics, the third leftist wave
  since the 1960s. Identity politics, unlike postmodernism, does propose
  that history has a meaning. That meaning can be stated in a simple
  phrase, which is the cornerstone of the current Democratic party: “the
  purpose of politics is to redeem the innocent victims, and to scapegoat
  those who were their transgressors.” Hence #MeToo, and BLM, and Save
  The Planet, and a host of other hysterical cries to redeem the world
  from stain, but which always seem to give us, instead, an
  ever-expanding state apparatus that wants to control the innocents by
  “protecting” them and to cure the deplorables of their irredeemable
  ideas—or scapegoat and purge them if they do not recant. History
  marches in the direction of protecting the pure and cancelling the
  impure. That is identity politics.&lt;/p&gt;
  
  &lt;p&gt;Marxism could never take hold in America because Americans believed in
  private property. Because property is the cornerstone of our republic,
  and cannot be removed, Marxism failed. Postmodernism could never really
  take hold in America because Americans believe that history has a
  meaning—and even that America has a special place in history. The
  reason identity politics has taken hold is because Americans suffer
  deep and abiding guilt, from two main sources: Christianity itself, and
  the legacy of slavery in this country. What the left could not do
  through Marxism or postmodernism, it now is doing through identity
  politics—namely, undermining every institution and every venerable
  historical memory in America.&lt;/p&gt;
  
  &lt;p&gt;Many readers of First Things, myself included, voted for Donald Trump
  in 2020—with varying degrees of internal doubt about his character and
  fitness for the presidency. We did so because we have watched identity
  politics scapegoat anyone who opposed it, and because we see it as the
  greatest threat yet to the future of our country, precisely because it
  uses guilt to destroy America. Arguments do not matter to identity
  politics; all that matters is whether you have a right to speak—which
  is to say, whether you are a member of an identity group of “innocent
  victims.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Progressivism in America needs to grapple with the reality that &lt;em&gt;we&lt;/em&gt;
are a radicalizing force if we&amp;rsquo;re ever going to do anything but purge
our opponents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.firstthings.com/web-exclusives/2020/11/is-federalism-the-solution"&gt;Is Federalism the Solution? | Peter J. Leithart | First Things&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;… there is no single important cultural, religious, political, or social
  force that is pulling Americans together more than it is pushing us
  apart…&lt;/p&gt;
  
  &lt;p&gt;Trump can’t heal these divisions. If he wins, we’ll face another four
  years of anti-Trump hysteria from Democratic politicians and the media.
  Biden can’t do it either. His plan to unite America comes down to
  putting the “good people” back in charge…&lt;/p&gt;
  
  &lt;p&gt;Renewed federalism could produce a genuinely pluralist America. Each
  state will run its own moral-political experiment, without direct
  interference from other states or from a moralistic federal government,
  as states currently do with drug laws. Such pluralism will be sturdier
  than our current enforced tolerance, because each experiment will be
  backed by the institutionalized power of a state…&lt;/p&gt;
  
  &lt;p&gt;Under the federalism French proposes, no one will be pleased. Many
  Americans will be outraged at the prospect of reversing abortion rights
  or outlawing same-sex marriage anywhere in America. I will be horrified
  that any American states allow killing unborn babies or protect sexual
  perversions. Renewed federalism will require colossal acts of
  self-restraint; it will be the work of federal officials who recognize
  that releasing power is the only alternative to the dissolution of
  America. Is it an improvement to replace one big culture war with
  thirty or forty smaller ones? If we’re as close to civil war or
  secession as some think, the answer is “yes.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is an interesting take as a way to try to dodge the problem of an
increasingly divided America. At the same time I think it wrongly
places the dividing lines along state borders. Our divide is expressed
along population density lines, and those population density centers
are in every state. Just look at PA. Without being able to get
Federalism all the way down to the population center level I&amp;rsquo;m not sure
that this could be a solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://info.container-solutions.com/what-is-gitops-ebook?utm_source=devopsweeklynewsletter&amp;amp;utm_medium=text&amp;amp;utm_campaign=gitopsebook"&gt;GitOps Ebook: What You Need to Know Now (free ebook)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class="timestamp"&gt;[2020-11-08 Sun 20:30]&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;This is a quick read (25 minutes or less) that provides an excellent
overview of GitOps in general. If &lt;a href="https://www.gitops.tech/"&gt;GitOps&lt;/a&gt; didn&amp;rsquo;t do it for you, maybe
this will.&lt;/p&gt;

&lt;p&gt;TOC:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introduction: The GitOps Movement&lt;/li&gt;
&lt;li&gt;What Are The Problems GitOps Addresses?&lt;/li&gt;
&lt;li&gt;What Is GitOps?&lt;/li&gt;
&lt;li&gt;GitOps In Context&lt;/li&gt;
&lt;li&gt;Tooling Choices&lt;/li&gt;
&lt;li&gt;Implementation Challenges&lt;/li&gt;
&lt;li&gt;GitOps Alternatives&lt;/li&gt;
&lt;li&gt;What&amp;rsquo;s Next For GitOps?&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Statement of purpose:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;This e-book seeks to:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;Explain why GitOps was invented&lt;/li&gt;
  &lt;li&gt;Explain what GitOps is&lt;/li&gt;
  &lt;li&gt;Place GitOps in context&lt;/li&gt;
  &lt;li&gt;Compare the principal GitOps tools&lt;/li&gt;
  &lt;li&gt;Discuss implementation challenges&lt;/li&gt;
  &lt;li&gt;Discuss where GitOps is going&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://www.devopsweekly.com/"&gt;Devops Weekly List&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/634961039034859520</link><guid>https://blog.twonegatives.com/post/634961039034859520</guid><pubDate>Mon, 16 Nov 2020 12:00:34 -0500</pubDate><category>friday-ish links</category></item><item><title>Friday-ish links [2020-11-06 Fri]</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GjC5JLNFczY"&gt;DUNE, Part Two: The Missionaries - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea of seeded mythology as a lever &lt;em&gt;just&lt;/em&gt; &lt;a href="https://en.wikipedia.org/wiki/A_Deepness_in_the_Sky"&gt;came up&lt;/a&gt;. This is
really cool and exactly the reason I think everyone should subscribe
to Matt Colville&amp;rsquo;s channel whether they like D&amp;amp;D or not.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/a-sea-angel-under-ice-in-the-white-sea"&gt;A sea angel under ice in the White Sea | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whoa.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/volcano-filter-betta-aquarium"&gt;Volcano Filter Betta Aquarium | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is very cool to watch. Even cooler since my wife is doing the
same kind of thing with our tank.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://xkcd.com/2030/"&gt;xkcd: Voting Software&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I don&amp;rsquo;t quite know how to put this, but our entire field is bad at
  what we do, and if you rely on us, everyone will die.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Me whenever I talk to anyone about using software for anything of
importance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.theatlantic.com/magazine/archive/2020/11/what-if-trump-refuses-concede/616424/"&gt;What If Trump Refuses to Concede? - The Atlantic&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;That is an unsettling precedent for 2021. If our political
  institutions fail to produce a legitimate president, and if Trump
  maintains the stalemate into the new year, the chaos candidate and
  the commander in chief will be one and the same.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This article, like every time I watch &lt;a href="https://www.uctv.tv/shows/Robert-Reich-How-Unequal-Can-America-Get-Before-We-Snap-9521"&gt;How Unequal Can America Get
Before We Snap?&lt;/a&gt;, is &lt;em&gt;deeply&lt;/em&gt; unsettling.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/CheezheadGooner"&gt;Redmond&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/11/how-to-be-at-home"&gt;How to Be at Home&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;how to stay connected with ourselves and feel a connection with
  others while spending time physically apart from other people&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/11/fdrs-second-bill-of-rights"&gt;FDR’s Second Bill of Rights&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;After WWII, many countries in Europe came to similar conclusions and
  enacted reforms to offer these rights to their citizens. In America,
  aside from the significant efforts of the Johnson administration in
  the 60s, we went in different direction, doubling down on inequality
  in the pursuit of happiness.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://blog.danielna.com/choosing-the-management-track/"&gt;Choosing the Management Track | blog.danielna.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a really good take on what I think we should expect of
ourselves as engineering managers or managers to be. It&amp;rsquo;s organized
into two sections: 1. The primary differences between being an
individual contributor and a manager and 2. Why being a manager is
exciting.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The differences:&lt;/p&gt;
  
  &lt;ol&gt;
  &lt;li&gt;You won&amp;rsquo;t code anymore because…&lt;/li&gt;
  &lt;li&gt;You&amp;rsquo;ll have 1000 other things thate are more important for your
  teams success for you to do and have a fundamentally less stable
  daily schedule (not working more hours but being less capable of
  predicting at the start of the day what you&amp;rsquo;ll end up actually
  doing that day).&lt;/li&gt;
  &lt;li&gt;Management creates an unavoidable power hierarchy and your behavior
  has to morph in response to that.&lt;/li&gt;
  &lt;li&gt;You need to be technical enough to intervene if something technical
  has truly gone off the rails while being politically savvy enough
  to rarely pull that trigger.&lt;/li&gt;
  &lt;/ol&gt;
  
  &lt;p&gt;Why it&amp;rsquo;s awesome:&lt;/p&gt;
  
  &lt;ol&gt;
  &lt;li&gt;If you&amp;rsquo;re good at public speaking and writing you&amp;rsquo;ll have much more
  opportunity to exercise those skills with great impact than as an
  IC.&lt;/li&gt;
  &lt;li&gt;You&amp;rsquo;ll be preparing to run your own engineering organization some
  day.&lt;/li&gt;
  &lt;li&gt;You&amp;rsquo;ll be able to directly contribute to changing industry wide
  problems by example.&lt;/li&gt;
  &lt;li&gt;If you&amp;rsquo;re favorite thing to do is actually to see people and teams
  self-actualize, managing &lt;em&gt;is&lt;/em&gt; the job of doing that.
  
  *I find this point to especially pertinent. We have to take our
  highest joy from watching others grow and succeed rather than
  directly succeeding ourselves.*&lt;/li&gt;
  &lt;li&gt;You&amp;rsquo;ll have the highest leverage in the company for affecting the
  overall success of the business because companies ultimately
  succeed or fail by their coordinated execution, culture and
  leadership, and that&amp;rsquo;s your job.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://softwareleadweekly.com/issues/415"&gt;SoftwareLeadWeekly: A free weekly email for curious humans who
want to build better teams and companies.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://productcoalition.com/product-thinking-vs-project-thinking-380692a2d4e"&gt;Product Thinking vs. Project Thinking | by Kyle Evans | Product Coalition&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another entry in the output vs outcome literature.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So what are the benefits of letting go of project timelines in favor
  of focusing on outcomes?&lt;/p&gt;
  
  &lt;p&gt;First of all, it is ultimately the outcome that we are driving toward,
  regardless of how we try and get there. The main benefit of a product
  mindset is that we ensure that we get to the outcome more efficiently.&lt;/p&gt;
  
  &lt;p&gt;With a project mindset, we assume at the beginning that we already
  know how to achieve the desired outcome… But what if we were wrong
  initially? What if the solution we identified isn’t going to achieve
  the outcome we had hoped?&lt;/p&gt;
  
  &lt;p&gt;That is where project thinking gets us into all sorts of trouble. Once
  we set a plan in motion, it can be very difficult, especially in
  larger organizations, to pivot and change…&lt;/p&gt;
  
  &lt;p&gt;But with a product mindset, we are able to learn and adapt as we go.
  We aren’t set on dates and milestones, but rather are focused on
  learning and achieving the outcome. If something doesn’t work out or
  customers don’t respond well to one thing, we can take that into
  account, adapt, and still work toward the outcome we had intended
  without blowing up a beautiful plan that is everyone’s focus.&lt;/p&gt;
  
  &lt;p&gt;Crucially, when problems arise (and don’t kid yourself, they always
  will arise), product thinking allows us to learn and adapt, and stay
  focused on the outcome we’re trying to achieve.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;All products and product management involve some level of project
  management. We have to keep things moving along and it is
  (unfortunately) unrealistic to assume that we can work in environment
  where our stakeholders and partners won’t expect some dates or
  commitments.&lt;/p&gt;
  
  &lt;p&gt;The key is to make commitments and project plans only at a point when
  we can do it with a high degree of confidence. So rather than
  committing to a specific path beforehand, we commit once we’ve
  validated what we’re doing and have had a chance to really understand
  what it will take. Often that is a sprint or two into the work. That
  may feel really late in the process, but it is at the point when
  estimates and plans can actually mean something. Marty Cagan, in his
  book Inspired: How to Create Tech Products People Love, calls this
  type of commitment a “high-integrity commitment.” We allow teams time
  to do proper discovery and research before asking for commitments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://softwareleadweekly.com/issues/415"&gt;SoftwareLeadWeekly: A free weekly email for curious humans who
want to build better teams and companies.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/araskin/status/1324432059285135361"&gt;Andy Raskin on Twitter: &amp;ldquo;I&amp;rsquo;m often complimented by CEOs on how I run meetings, and some (notably @tycloud) have asked for tips. So here&amp;rsquo;s my # 1 rule: Before participants share their opinions, ask them to write them down.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Shift to 80% writing/sharing/cataloging and 20% discussion. Free-form
sharing is poison.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://softwareleadweekly.com/issues/415"&gt;SoftwareLeadWeekly: A free weekly email for curious humans who
want to build better teams and companies.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://getlighthouse.com/blog/silicon-valley-bad-managers/"&gt;Why Silicon Valley has so many Bad Managers (and what to do about it)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;No matter how beautiful and well-intentioned the values are on your
  walls, or what you say you care about, it’s what you do that matters.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;These are some of the biggest mistakes that happen especially in the
  Valley to contribute to the problem of bad managers.&lt;/p&gt;
  
  &lt;ol&gt;
  &lt;li&gt;Lionizing successful leaders holistically rather than recognizing
  their selective good qualities and calling out their bad ones.&lt;/li&gt;
  &lt;li&gt;Especially in startups there&amp;rsquo;s a vicious cycle of bad managers as
  new managers develop bad habits at one company which folds and then
  outputs to another set of companies all while only paying attention
  to the fiscal success over and against the cultural success of the
  company.
  
  Remember: people leave managers, not companies.&lt;/li&gt;
  &lt;li&gt;Ignoring cultural problems because of successful growth.&lt;/li&gt;
  &lt;li&gt;Adding perks rather than fixing real problems.
  
  What’s hard is fixing culture issues. Taking a hard look on whether
  your work environment is friendly and inviting for everyone, or
  outright hostile requires serious commitment.&lt;/li&gt;
  &lt;li&gt;Hiring HR too late
  
  Unfortunately, when HR is hired too late, many cultural habits are
  already ingrained deeply and hard to change. When you compound that
  with a backlog of core HR tasks, it’s little wonder so many
  startups have bad managers that are unsupported.&lt;/li&gt;
  &lt;li&gt;Turnover problems are overlooked until it&amp;rsquo;s too late.
  
  It takes time to recognize turnover problems that occur. You can
  easily explain away a few people quitting, especially if you’re
  also hiring a lot of people at the same time. However, if you
  notice in Susan Fowler’s widely-read post on harassment at Uber,
  things can quickly snowball:&lt;/li&gt;
  &lt;li&gt;…&lt;/li&gt;
  &lt;li&gt;CEOs punt to someone else.
  
  It all goes back to the power of leadership by example. Without
  C-Level support, at best it’s “Do as I say not as I do” and at
  worst it’s the active undermining and contradiction of what
  whomever was hired knows needs done to fix things.&lt;/li&gt;
  &lt;/ol&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;What do do?&lt;/p&gt;
  
  &lt;ol&gt;
  &lt;li&gt;Measure more.&lt;/li&gt;
  &lt;li&gt;Recognize that leadership is intrinsically valuable.&lt;/li&gt;
  &lt;li&gt;Train your managers.&lt;/li&gt;
  &lt;li&gt;Reward the right behaviors.&lt;/li&gt;
  &lt;li&gt;Play an active role in shaping your culture.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;via &lt;a href="https://softwareleadweekly.com/issues/415"&gt;SoftwareLeadWeekly: A free weekly email for curious humans who
want to build better teams and companies.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/swlh/how-to-structure-teams-for-building-better-software-products-91e4dea021d"&gt;Organizing software teams | The Startup&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A Team Topologies Book Summary&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The team topology approach treats humans and technology as a single
  sociotechnical ecosystem, and thus it takes a team-sized architecture
  approach (people first) rather than a technology-first approach,
  e.g., the monolith vs microservices debate.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;If you know you need to deploy different parts of the system
  independently, you need to decouple services. In this environment,
  you should make your teams small and decoupled with clear boundaries.
  These boundaries should represent the business context and always be
  designed with the user in mind. These small decoupled team models
  also help to minimize intrinsic cognitive load and eliminate
  extraneous cognitive load.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;The roots of success are not in creating organizational structures
  but in developing capabilities and habits in teams, in people.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;And, when it comes to measuring performance, teams matter more than
  individuals when building and evolving modern software. An
  organization should assign objectives to teams, not individuals and
  consider team-scoped flow and design architecture to fit it.&lt;/p&gt;
  
  &lt;p&gt;…&lt;/p&gt;
  
  &lt;p&gt;High-level Takeaways:&lt;/p&gt;
  
  &lt;ul&gt;
  &lt;li&gt;No shared code ownership to minimize cognitive load on the team
  managing that stream of the product.&lt;/li&gt;
  &lt;li&gt;Use software boundaries defined by business-domain bounded
  contexts.&lt;/li&gt;
  &lt;li&gt;DevOps is about making teams autonomous, providing a platform and
  techniques from which the team can pull rather than directly
  providing those services to the teams.&lt;/li&gt;
  &lt;li&gt;*Tooling teams should be reorganized into enabling teams, and you
  should convert architects into enabling teams to focus on APIs
  between teams and those interactions.*&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;I like the verbiage developed here around the different kinds of
teams. Never forget that you if you can &lt;a href="https://www.youtube.com/watch?v=-J_xL4IGhJA&amp;amp;list=PLE18841CABEA24090"&gt;name&lt;/a&gt; something you have power
over it.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://softwareleadweekly.com/issues/415"&gt;SoftwareLeadWeekly: A free weekly email for curious humans who
want to build better teams and companies.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://commoncog.com/blog/the-tacit-knowledge-series/"&gt;The Tacit Knowledge Series - Commonplace - The Commoncog Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am also fascinated by how to extract Tacit Knowledge from experts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://commoncog.com/blog/seth-godin-the-dip/"&gt;Knowing The Dip Exists is a Heck of an Advantage - Commonplace - The Commoncog Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This feels especially relevant to Chris C and I at Stitch right now.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;You know you’re on a Cliff or at a Cul-de-Sac when … You know you’re
  in a Cliff when — well, Godin says this should be obvious to you. But
  your friends probably know better than you do; they’ll tell you when
  you’re on the path to disaster. On the other hand, only you will know
  if you’re in a Cul-de-Sac. Cul-de-Sacs happen when you’re not making
  forward progress. What counts as forward progress should be most clear
  to you — Godin points out that there are really only three states you
  can be in when you’re trying to succeed in a job or a relationship or
  at a task: making progress, standing still, or sliding backwards.
  Forward steps, however tiny — or imperceptible shifts, internal to you
  — count as progress. Everything else doesn’t.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.theregister.com/2020/10/30/companies_house_xss_silliness/"&gt;Why, yes, you can register an XSS attack as a UK company name. How do we know that? Someone actually did it • The Register&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OMG 😂&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://www.metafilter.com/189247/Little-Bobby-Tables-LTD"&gt;Little Bobby Tables, LTD | MetaFilter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mereorthodoxy.com/dogmatic-partisanships-dead-end/"&gt;Dogmatic Partisanship&amp;rsquo;s Dead End | Mere Orthodoxy&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Without an honest, open, bipartisan dialogue about the
  fundamentals—what kind of society we want, and what it requires of
  each of us—all the activism in the world isn’t going to move the
  needle very much. The result? A world in which the only aspect of
  cultural life we hold in common is a penchant for cancellation, with
  minimal effort devoted to offering alternative visions of a shared
  civic life marked by the common good.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Am I wrong for having so much hope in dialogue?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mereorthodoxy.com/google-anti-trust-case/"&gt;It&amp;rsquo;s Not the Economy: Big Tech, Anti-Trust, &amp;amp; the Future of Political Liberalism&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;So if the turn against Big Tech isn’t primarily about economic
  liberalism, then what is the reason? I believe that we have Big Tech
  in our congressional rifle scope because we as citizens are rightly
  concerned about the immense (and often disruptive) political power
  that these outsized companies wield. We increasingly feel and fear
  the fragility of our own democracy, and our turn against Big Tech is
  rooted in our fears.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I want an era of monopoly busting worthy of the history books.&lt;/p&gt;

&lt;p&gt;Ethics is hard. We can&amp;rsquo;t even agree on things ourselves. How can we
teach our AIs anything remotely useful?&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But I also think Stoller’s greatest insight is the one that will
  perhaps be most overlooked:&lt;/p&gt;
  
  &lt;p&gt;This report re-asserts Congress’s role as the central
  policymaking body in America, seizing control from judges who
  have re-written case law in ridiculous ways, as well as slothful
  enforcers.&lt;/p&gt;
  
  &lt;p&gt;Ultimately, it is Congress who is most responsible for structuring
  our political economy. And ultimately it is we the people to whom
  Congress is accountable, and from whom Congress receives its
  marching orders. Technocrats in the field of economics cannot save
  us from Big Tech. If we are to be saved, we will have to save
  ourselves.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://randsinrepose.com/archives/the-metronome/"&gt;The Metronome – Rands in Repose&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;After hiring and building a diverse set of humans, your primary job
  as a leader is to give them as much time as possible to do their
  creative work. My small act of meeting timeliness demonstrates that
  I value everyone’s time equally.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The primary responsibility of a manager is keeping their reports
unblocked.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://randsinrepose.com/archives/your-mid-year-leadership-check-in/"&gt;Your Mid-Year Leadership Check-in – Rands in Repose&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like the idea of habitually working through these questions. I
think they&amp;rsquo;d generate a lot of insight.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.kitchensoap.com/2017/09/26/invited-article-in-ieee-software-technical-debt-challenges-and-perspectives/"&gt;Kitchen Soap – Invited article in IEEE Software – Technical Debt: Challenges and Perspectives&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My main argument isn’t that technical debt’s definition has morphed
  over time; many people have already made that observation. Instead,
  I believe that engineers have used the term to represent a different
  (and perhaps even more unsettling) phenomenon: a type of debt that
  can’t be recognized at the time of the code’s creation. They’ve used
  the term “technical debt” simply because it’s the closest
  descriptive label they’ve had, not because it’s the same as what
  Cunningham meant. This phenomenon has no countermeasure like
  refactoring that can be applied in anticipation, because it’s
  invisible until an anomaly reveals its presence.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next up: &lt;a href="https://snafucatchers.github.io/#4_6_Dark_Debt"&gt;STELLA Report from the SNAFUcatchers Workshop on Coping With Complexity Brooklyn NY, March 14-16, 2017&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Dark debt is found in complex systems and the anomalies it generates
  are complex system failures. Dark debt is not recognizable at the
  time of creation. Its impact is not to foil development but to
  generate anomalies. It arises from the unforeseen interactions of
  hardware or software with other parts of the framework. There is no
  specific countermeasure that can be used against dark debt because
  it is invisible until an anomaly reveals its presence.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How have I never heard of this one?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/KeystoneInterface.html"&gt;KeystoneInterface&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Software development teams find life can be much easier if they
  integrate their work as often as they can. They also find it
  valuable to release frequently into production. But teams don&amp;rsquo;t want
  to expose half-developed features to their users. A useful technique
  to deal with this tension is to build all the back-end code,
  integrate, but don&amp;rsquo;t build the user-interface. The feature can be
  integrated and tested, but the UI is held back until the end until,
  like a keystone, it&amp;rsquo;s added to complete the feature, revealing it to
  the users.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/OutcomeOverOutput.html"&gt;OutcomeOverOutput&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A consequential concern about using outcome observations is that
  it&amp;rsquo;s harder to apportion them to a software development team.
  Consider a customer team that uses software to help them track the
  quality of goods in their supply chain. If we assess them by how
  many rejects there are by the final consumer, how much of that is
  due to the software, how much due the quality control procedures
  developed by quality analysts, and how much due to a separate
  initiative to improve the quality of raw materials? This difficulty
  of apportionment is a huge hurdle if we want to compare different
  software teams, perhaps in order to judge whether using Clojure has
  helped teams be more effective. Similarly there is the case that the
  developers work well and deliver excellent and valuable software to
  track quality, but the quality control procedures are no good.
  Consequently rejects don&amp;rsquo;t go down and the initiative is seen as a
  failure, despite the developers doing a great job on their part.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://martinfowler.com/bliki/CannotMeasureProductivity.html"&gt;CannotMeasureProductivity&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I can see why measuring productivity is so seductive. If we could do
  it we could assess software much more easily and objectively than we
  can now. But false measures only make things worse. This is
  somewhere I think we have to admit to our ignorance.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://deliberate-software.com/ego-driven-development/"&gt;Ego Driven Development · deliberate software&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://rachelbythebay.com/w/2020/10/26/num/"&gt;Type in the exact number of machines to proceed&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a great idea. I&amp;rsquo;ll definitely be incorporating it in more of
my scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://rachelbythebay.com/w/2020/10/14/lag/"&gt;40 milliseconds of latency that just would not go away&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LULZ easy job…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://quillette.com/2020/10/30/against-an-unequivocally-bad-idea/"&gt;Against an Unequivocally Bad Idea – Quillette&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But the bipartisan appeal is a façade. Liberals and conservatives
  support radically different versions of UBI, and both are fatally
  flawed. The liberal version of UBI is unworkable, and the
  conservative version would throw millions into poverty. Regardless
  of how one tinkers or modifies the details, UBI is an Unequivocally
  Bad Idea.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.city-journal.org/glenn-loury-on-systemic-racism-trump-blm"&gt;Race, Trump, and BLM | City Journal&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I want to put choices in the hands of parents to seek whatever
  provision of educational services best suits their needs and let the
  chips fall where they may.&lt;/p&gt;
  
  &lt;p&gt;I want more integration, intermarriage, mixing. I want a ratcheting
  down of the intensity of the investment that we make in our racial
  identities, because that’s not the most important feature of our
  human profile.&lt;/p&gt;
  
  &lt;p&gt;I think the war on drugs has been a very bad mistake for the
  country. It’s not the only thing going on with the rise in
  imprisonment in the United States, but it’s a major factor. The
  overrepresentation of blacks in drug trafficking explains part of
  the conflict with blacks and the police, and I incline toward a
  somewhat libertarian outlook on some things.&lt;/p&gt;
  
  &lt;p&gt;I think we desperately need better black leadership—people prepared
  to step away from the crowd and stand up for what they know to be
  right. Many black police officers are beginning to speak out now.
  Kentucky attorney general Daniel Cameron, who happens to be
  African-American, has been trying to walk a very difficult line in
  the Breonna Taylor case, and he’s met with much vilification. We
  need 100 more public officials like him to offer a different account
  of what’s going on and to represent African-Americans in a different
  way.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://quillette.com/2020/06/03/condemn-this-violence-without-equivocation/"&gt;Condemn this Violence without Equivocation – Quillette&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;But not all protests have been peaceful and not every protestor has
  behaved righteously. In cities across our country we have witnessed,
  often in real time, violent attacks on the police, looting of
  commercial outlets, and torching of the property of innocent
  bystanders. That is, some of the protests have descended into riots.
  This rioting is also contemptible, and it, too, demands our
  unreserved condemnation.&lt;/p&gt;
  
  &lt;p&gt;Not only are theft, arson, and violence immoral, but they are also
  politically counterproductive. It should be obvious that the
  outrageous injustice apparently perpetrated against George Floyd can
  in no way justify or excuse the criminal behaviors of those few who
  are using the chaos of mass protests as a cover for their sprees of
  looting, arson, and mayhem. No civilized society can allow righteous
  anger to become a license for indulging one’s basest instincts. The
  violence, arson, and theft must stop. And so long as they continue,
  they must be forcefully condemned.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.city-journal.org/html/electoral-college-will-remain-14862.html"&gt;The Electoral College Will Remain: Smaller states wouldn’t have approved the Constitution without it, and they won’t support an amendment to abolish it. | City Journal&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“A successful candidate for the distinguished office of President of
  the United States,” Alexander Hamilton wrote in 1788, would need to
  achieve the “esteem and confidence of the whole Union.” A direct
  popular vote would narrow the number of citizens whose votes the
  presidential candidates campaigned for. Candidates would focus their
  time, energy, and money on the most populated areas. By contrast,
  under our current system, presidential candidates seek the support
  of dairy farmers in Iowa, coal miners in Pennsylvania, seniors in
  Florida, and students in Colorado.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://catb.org/jargon/html/L/larval-stage.html"&gt;larval stage&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;larval stage: n.&lt;/p&gt;
  
  &lt;p&gt;Describes a period of monomaniacal concentration on coding
  apparently passed through by all fledgling hackers. Common symptoms
  include the perpetration of more than one 36-hour &lt;a href="http://catb.org/jargon/html/H/hacking-run.html"&gt;hacking run&lt;/a&gt; in a
  given week; neglect of all other activities including usual basics
  like food, sleep, and personal hygiene; and a chronic case of
  advanced bleary-eye. Can last from 6 months to 2 years, the apparent
  median being around 18 months. A few so afflicted never resume a
  more ‘normal’ life, but the ordeal seems to be necessary to produce
  really wizardly (as opposed to merely competent) programmers. See
  also &lt;a href="http://catb.org/jargon/html/W/wannabee.html"&gt;wannabee&lt;/a&gt;. A less protracted and intense version of larval stage
  (typically lasting about a month) may recur when one is learning a
  new &lt;a href="http://catb.org/jargon/html/O/OS.html"&gt;OS&lt;/a&gt; or programming language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I feel like I grew up on the tail end of this being the accepted
norm for software people. Now I feel like there&amp;rsquo;s a growing divide
between those who want a good work life balance but are also clearly
awesome at their job (&lt;a href="https://twitter.com/b0rk"&gt;@b0rk&lt;/a&gt; comes to mind) and those who still yearn
for the days when &lt;a href="http://www.catb.org/~esr/jargon/html/story-of-mel.html"&gt;Real Programmers wrote in machine code…&lt;/a&gt; I, for
one, am sick and tired of the heroic sociopathic wizard.&lt;/p&gt;

&lt;p&gt;(If you&amp;rsquo;ve never seen &lt;a href="http://www.catb.org/~esr/jargon/html/index.html"&gt;The Jargon File&lt;/a&gt; you&amp;rsquo;re in for a treat.)&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://lists.gnu.org/archive/html/help-gnu-emacs/2020-11/msg00084.html"&gt;Learning new things&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://copyconstruct.medium.com/file-descriptor-transfer-over-unix-domain-sockets-dcbbf5b3b6ec"&gt;File Descriptor Transfer over Unix Domain Sockets | by Cindy Sridharan | Medium&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I got a number of reponses on Twitter from folks expressing
  astonishment that this is even possible. Indeed, if you’re not very
  familiar with some of the features of Unix domain sockets, the
  aforementioned paragraph from the paper might be pretty inscrutable.&lt;/p&gt;
  
  &lt;p&gt;Transferring TCP sockets over a Unix domain socket is, actually, a
  tried and tested method to implement “hot restarts” or “zero
  downtime restarts”. Popular proxies like HAProxy and Envoy use very
  similar mechanisms to drain connections from one instance of the
  proxy to another without dropping any connections. However, many of
  these features are not very widely known.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="http://esv.to/eccl1.9"&gt;There is nothing new under the sun…&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via &lt;a href="http://sreweekly.com/sre-weekly-issue-242/"&gt;SRE Weekly Issue #242 – SRE WEEKLY&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Who else remembers the heady days of the standardization wars?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.webstandards.org/"&gt;The Web Standards Project&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.csszengarden.com/"&gt;CSS Zen Garden: The Beauty of CSS Design&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/article/4-questions-election-day/"&gt;4 Questions Before Election Day&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;ul&gt;
  &lt;li&gt;Do you feel more fundamentally aligned with a non-Christian who
  aligns with your political party than with a church member who
  votes differently from you?
  
  Christians share the most vital, deep-seated, identity-forming
  reality in common with other Christ followers. We’ve been
  redeemed by the blood of Christ, brought into one new body, and
  indwelled by the same Spirit. This brotherhood and sisterhood
  stands, regardless of our politics. Indeed, it exists even across
  vastly different forms of government. I have a tighter bond of
  fellowship with my friend Feng, who is a Christian in Communist
  China, than I do with a member of my own family who doesn’t know
  Jesus.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;The essential problem I have with this line of thinking is that it
doesn&amp;rsquo;t properly engage with &lt;a href="http://esv.to/ja2.18-26"&gt;James 2.18-22&lt;/a&gt; or &lt;a href="http://esv.to/1co5.9-13"&gt;1 Corinthians 5.9-13&lt;/a&gt;.
This is the fundamental lie that I think has crept in to the church
for who knows how long: that somehow politics and faith are
separate. How can politics (the art or science of controlling and
directing the making and administration of policy in a nation state)
possibly be divorced from faith? How can you look at me and tell me
that certain immoral actions are supposed to cut off my brothers and
sisters in Christ from me but their actions related to the franchise
do not? It&amp;rsquo;s certainly right to say that politics are harder to
judge than some sins but that doesn&amp;rsquo;t mean we shouldn&amp;rsquo;t.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/article/why-evangelicals-are-still-divided-over-trump/?utm_medium=email&amp;amp;utm_campaign=Weekly%20TGC%20Weekly%20Email&amp;amp;utm_content=Weekly%20TGC%20Weekly%20Email+CID_347f2c1d1b9b6f379a9c28bb2b5c4106&amp;amp;utm_source=Campaign%20Monitor"&gt;Why Evangelicals Are (Still) Divided over Trump&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;That is the main strength of the witness side. The drawback is by
  being rigidly focused on our gospel witness, evangelicals may suffer
  losses, such as religious liberty, that might affect our ability to
  proclaim the gospel in the future. By not fully supporting Trump as
  the “lesser evil” the witness side may be helping to tip the
  election toward a Biden presidency. That could result, as many on
  the transformation side have noted, in the promotion of socially
  progressive policies that will shape the future of our nation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By painting ourselves into this corner we could effectively be
making it &amp;lsquo;legal&amp;rsquo; to proclaim The Gospel while also making it so
incredibly repugnant that no one will listen short of an astonishing
miracle (which it already is).&lt;/p&gt;

&lt;p&gt;Also, RE &lt;a href="https://www.thegospelcoalition.org/article/4-questions-election-day/"&gt;4 Questions Before Election Day&lt;/a&gt;, the 'Justice&amp;rsquo; side of this
seems to really fall afoul of 'putting our hope in judges&amp;rsquo;, doesn&amp;rsquo;t
it?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://albertmohler.com/2020/10/26/christians-conscience-and-the-looming-2020-election"&gt;Christians, Conscience, and the Looming 2020 Election - AlbertMohler.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am convinced that abortion and the sexual revolution are a largely
a (perhaps unwitting) front for the real issue of religious liberty.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.thegospelcoalition.org/blogs/trevin-wax/why-many-americans-will-be-shocked-on-election-day/?utm_medium=email&amp;amp;utm_campaign=Weekly%20TGC%20Weekly%20Email&amp;amp;utm_content=Weekly%20TGC%20Weekly%20Email+CID_347f2c1d1b9b6f379a9c28bb2b5c4106&amp;amp;utm_source=Campaign%20Monitor"&gt;Why Many Americans Will Be Shocked on Election Day&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://theweek.com/articles/946621/trump-wins"&gt;If Trump wins&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;What really worries me isn&amp;rsquo;t Trump himself. It&amp;rsquo;s the interaction of
  another Trump victory with the potential reaction of the left…&lt;/p&gt;
  
  &lt;p&gt;That is a recipe for a precipitous collapse in the perceived
  legitimacy of those institutions. If we hadn&amp;rsquo;t just lived through
  several months of urban unrest, with widespread protests frequently
  crossing over into rioting and looting, and rates of violent crime
  surging in cities across the country, I might be convinced that the
  result would be little more than intensified online flame wars while
  the overwhelming majority of Americans tune out and ignore the
  political circus. It would be the kind of virtual civil war Ross
  Douthat describes in the most cogent chapter of his recent book on
  our decadent society — a scenario in which committed partisans
  indulge in vicarious digital violence while the rest of the country
  withdraws further into indolence and apathy, leaving the real world
  perfectly peaceful.&lt;/p&gt;
  
  &lt;p&gt;But the past five months have showed us a different and much darker
  path — one where another Trump upset is followed by public
  demonstrations much larger, angrier, and more violent than the ones
  that briefly flourished in the early days of 2017. Imagine the
  George Floyd protests from late May and early June at their most
  volatile but amplified and augmented by the scalding realization
  that at this moment the country&amp;rsquo;s electoral system is deaf to
  plurality or majority public opinion.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yep…&lt;/p&gt;

&lt;p&gt;Next up: &lt;a href="https://www.dancarlin.com/product/common-sense-316-the-day-of-the-dove/"&gt;Common Sense 316 – The Day of the Dove&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://samharris.org/podcasts/racism-and-violence-in-america/"&gt;Making Sense Podcast #42 — Racism and Violence in America | Sam Harris&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While I don&amp;rsquo;t think that this is a particularly great conversation
in terms of being actual debate (unlike, for instance, &lt;a href="https://www.youtube.com/watch?v=mzPKk19t3Kw"&gt;Has
Anti-Racism Become as Harmful as Racism? John McWhorter vs. Nikhil
Singh - YouTube&lt;/a&gt;) I &lt;em&gt;do&lt;/em&gt; think the issues discussed are &lt;strong&gt;&lt;em&gt;hyper&lt;/em&gt;&lt;/strong&gt;
important to our culture at this moment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/emilyjoypoetry/status/1323963910593171456"&gt;Emily Joy on Twitter: &amp;ldquo;Earlier this year I found out someone I used to be really close with was voting for Tr*mp. I reached out to her to attempt to call her in because we were CLOSE at one point, and we always used to talk about deep things.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I don’t really know what I’m trying to say. I’ve been awake for
  hours and I’ve been in the bathtub for 45 minutes and I guess I’ll
  just never get over how Christians use theoretical babies to
  justify not loving the the already-born people standing right in
  front of them.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/634134349364822016</link><guid>https://blog.twonegatives.com/post/634134349364822016</guid><pubDate>Sat, 07 Nov 2020 09:00:42 -0500</pubDate><category>friday-ish links</category></item><item><title>Friday-ish links</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/cheetah-greyhound-speed-test-slow-motion-video"&gt;Cheetah vs Greyhound, a speed test in slow-motion | The Kid Should See This&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/galloping-starfish-and-their-army-of-sniffing-tasting-gripping-tube-feet"&gt;Galloping Starfish and their army of sniffing, tasting, gripping tube feet | The Kid Should See This&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/icy-bodies-dry-ice-installation-shawn-lani-video"&gt;Icy Bodies by Shawn Lani, a dry ice exhibit that mixes science with art | The Kid Should See This&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://orgmode.org/"&gt;Org mode for Emacs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Website revamp! &lt;a href="https://lists.gnu.org/archive/html/emacs-orgmode/2020-10/msg00371.html"&gt;New website - back to the old unicorn!&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Lq7mQsscxhY"&gt;Patrick Rothfuss on How Is Going to End the Third Book, the Doors of Stone! - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Dwarf-Therapist/Dwarf-Therapist/releases/tag/v41.2.0"&gt;Release Version 41.2.0 · Dwarf-Therapist/Dwarf-Therapist&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.verica.io/the-chaos-engineering-book/"&gt;Verica - The Chaos Engineering Book&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.vanityfair.com/culture/2020/08/the-abolition-movement"&gt;How to Abolish the Police, According to Josie Duffy Rice | Vanity Fair&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://kottke.org/20/10/the-abolition-movement"&gt;The Abolition Movement&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://space4everybody.com/home/project-orion/"&gt;Project Orion -&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://kottke.org/20/10/a-25-gigapixel-image-of-the-orion-constellation"&gt;A 2.5 Gigapixel Image of the Orion Constellation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/ValaAfshar/status/1321069037196029952"&gt;Vala Afshar on Twitter: &amp;ldquo;The emotional journey of creating anything great https://t.co/yxDxhxjZN2&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Uz1Jwyxd4tE"&gt;The Hives - Hate to Say I Told You So - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thewitnessbcc.com/ptm-restoration-with-lecrae/"&gt;PTM: Restoration with Lecrae | The Witness&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://twitter.com/alexykranjec/status/1321550922066104323"&gt;Alexander Kranjec on Twitter: &amp;ldquo;Love this conversation from @&lt;sub&gt;PassTheMic&lt;/sub&gt; and @lecrae. I resonate with it in so many levels!!! https://t.co/JFY6qJTMER&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/10/karen-o-and-willie-nelson-cover-under-pressure"&gt;Karen O and Willie Nelson Cover Under Pressure&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/the-amazing-triple-spiral-15000-dominoes"&gt;The Amazing Triple Spiral (15,000 dominoes) | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And next &lt;a href="https://www.youtube.com/watch?v=FWgH0hXZKrE"&gt;NEW DOMINO RECORD + Most INSANE Spiral Ever! (32,000 Dominoes) - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/14/09/pianovideo-phase"&gt;Piano/Video Phase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don&amp;rsquo;t you love a website that never deletes its stuff?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/animoji-piano-performances-by-music-teacher-magdalene-rolka"&gt;Animoji piano performances by music teacher Magdalene Rolka | The Kid Should See This&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/roller-dancing-oumi-janta-friends-tempelhofer-feld"&gt;Roller dancing with friends at Tempelhofer Feld | The Kid Should See This&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thekidshouldseethis.com/post/physics-marble-track-review-homemade-science-teacher-bruce-yeany"&gt;Homemade marble track demonstrations by science teacher Bruce Yeany | The Kid Should See This&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This guy&amp;rsquo;s enthusiasm is infectious!&lt;/p&gt;

&lt;p&gt;Next up: &lt;a href="https://www.youtube.com/watch?v=88NZStgiIt0&amp;amp;feature=emb_rel_pause"&gt;Big High Low track // Homemade Science with Bruce Yeany - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://kottke.org/20/10/the-worlds-best-tree-felling-tutorial"&gt;The World’s Best Tree Felling Tutorial&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/633496397510049794</link><guid>https://blog.twonegatives.com/post/633496397510049794</guid><pubDate>Sat, 31 Oct 2020 09:00:43 -0400</pubDate><category>friday-ish links</category></item><item><title>Friday-ish links</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/BrandonBloom/status/1316851114495467520"&gt;Brandon Bloom on Twitter: &amp;ldquo;When discussing polymorphism, folks talk about &amp;quot;multi-methods&amp;rdquo; and compare it to OOP class-based dispatch. Really wish the conversation would be more fine grained though. The multi- vs single-dispatch part isn&amp;rsquo;t nearly as important as the external vs internal dispatch part.&amp;ldquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://arxiv.org/abs/2007.12630"&gt; 2007.12630  Corpse Reviver: Sound and Efficient Gradual Typing via Contract Verification&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;via Chas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/cemerick/status/1317112436437229570"&gt;Chas (pvp gank paladin) Emerick on Twitter: &amp;quot;dynamic languages exist only to the extent that people are exposed to bad statically-typed languages&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://remote.lifeshack.io/"&gt;Remote Work Company Tracker&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/otfrom/status/1316754180799954945"&gt;Hugmonster General in the Antifascist Army on Twitter: &amp;ldquo;The reason that things like irc are losing to slack isn&amp;rsquo;t that the irc UX is bad, its that there isn&amp;rsquo;t a good rent extraction model around irc that excites venture capital. irc is a protocol, you could build any UX on it you want.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yep. &lt;a href="https://xkcd.com/1782/"&gt;xkcd: Team Chat&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/cemerick/status/1316814636415623171"&gt;Chas (pvp gank paladin) Emerick on Twitter: &amp;ldquo;This construction took place over ****45 years**** 🤯 /ht @MadSmejki&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;:O&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/BrandonBloom/status/1317174353314787328"&gt;Brandon Bloom on Twitter: &amp;ldquo;I&amp;rsquo;m counting on it :) That said, I&amp;rsquo;ve come around to &amp;quot;the cloud&amp;rdquo; and what it means in terms of how systems are architected. I just think that we as an industry have gotten far out over of our skis.&amp;ldquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/tastapod/status/1317058459490201600"&gt;Daniel Terhorst-North on Twitter: &amp;quot;Hot take: #Kubernetes is just #EJB for the cloud generation. An over-engineered, vendor-controlled, &amp;quot;open&amp;rdquo;, catch-all solution to a problem no one has, which conveniently ignores the hard problems of release engineering, provenance, and observability. Or is it just me?&amp;ldquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/rplevy/status/1317185225487609856"&gt;Robert E. P. Levy on Twitter: &amp;quot;The fact that distributed systems are so hard to get right and microservices work so poorly and yet biological lifeforms are massive distributed microservice architectures just goes to show we really have no damn idea what we&amp;rsquo;re doing in computer science and software engineering.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/clojure-emacs/cider/releases/tag/v0.26.1"&gt;Release CIDER 0.26.1 · clojure-emacs/cider&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.crossway.org/articles/5-questions-about-homosexuality/"&gt;5 Questions about Homosexuality | Crossway Articles&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.crossway.org/articles/how-to-help-your-kids-establish-bible-reading-habits/?utm_source=Crossway+Marketing&amp;amp;utm_campaign=26a388c283-20201015+-+Parents+-+Kids+Bible+Reading+Habits&amp;amp;utm_medium=email&amp;amp;utm_term=0_0275bcaa4b-26a388c283-283128709"&gt;How to Help Your Kids Establish Bible Reading Habits | Crossway Articles&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.npr.org/transcripts/914563075"&gt;Apple v Everybody : Planet Money : NPR&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=V4UWxlVvT1A"&gt;OPPRESSED MAJORITY (Majorité Opprimée English), by Eleonore Pourriat - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=AZJSjrox_2s"&gt;Pure Moods CD Commercial - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In so much agreement with the top comment here. This commercial
fills me with nostalgia and the opening chant comes to my mind once
or twice a week.&lt;/p&gt;

&lt;p&gt;Wild… &lt;a href="https://www.youtube.com/watch?v=Rk_sAHh9s08"&gt;Enigma - Return To Innocence (Official Video) - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://buttondown.email/hillelwayne/archive/the-pendulum-swings-eternal/"&gt;The Pendulum Swings Eternal • Buttondown&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.gnu.org/philosophy/kind-communication.html"&gt;GNU Kind Communications Guidelines - GNU Project - Free Software Foundation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More than a little ironic that this is coming from RMS but overall I
like the spirit of it quite a bit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/632964136991588352</link><guid>https://blog.twonegatives.com/post/632964136991588352</guid><pubDate>Sun, 25 Oct 2020 12:00:40 -0400</pubDate><category>friday-ish links</category></item><item><title>Friday-ish links</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://vimeo.com/223309989"&gt;Chicago Clojure - 2017-06-21 - Stuart Halloway on Repl Driven Development on Vimeo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the better descriptions of what&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/trptcolin/status/1314714541280899076"&gt;Colin Jones on Twitter: &amp;ldquo;Git hooks are basically the same concept as JS form validations. You still need backend validations (CI) if you want your end result to be valid.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how I feel about all development technologies (from the
language on up the stack). If you&amp;rsquo;re in my way I&amp;rsquo;m going to figure
out how to break through you or go around you. My cycle time is too
precious. Write-time vs. Polish-time vs. Run-time is a thing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://static.kuula.io/share/79QMS?fs=1&amp;amp;vr=0&amp;amp;zoom=1&amp;amp;sd=1&amp;amp;thumbs=1&amp;amp;lang=es&amp;amp;chromeless=0&amp;amp;logo=0"&gt;Interactive Van Gogh Painting&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Wooooooooooooooooooooooooooooooooooooooow!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;↑ is literally how I sounded playing with this.&lt;/p&gt;

&lt;p&gt;via &lt;a href="https://www.reddit.com/r/InternetIsBeautiful/comments/j81n7m/interactive_van_gogh_painting/?%24deep_link=true&amp;amp;correlation_id=edf0c7c9-d67b-4a0a-9779-e39886c9d06a&amp;amp;ref=email_digest&amp;amp;ref_campaign=email_digest&amp;amp;ref_source=email&amp;amp;utm_content=post_title&amp;amp;utm_medium=digest&amp;amp;utm_name=top_posts&amp;amp;utm_source=email&amp;amp;utm_term=day&amp;amp;%243p=e_as&amp;amp;%24original_url=https%3A%2F%2Fwww.reddit.com%2Fr%2FInternetIsBeautiful%2Fcomments%2Fj81n7m%2Finteractive_van_gogh_painting%2F%3F%24deep_link%3Dtrue%26correlation_id%3Dedf0c7c9-d67b-4a0a-9779-e39886c9d06a%26ref%3Demail_digest%26ref_campaign%3Demail_digest%26ref_source%3Demail%26utm_content%3Dpost_title%26utm_medium%3Ddigest%26utm_name%3Dtop_posts%26utm_source%3Demail%26utm_term%3Dday&amp;amp;_branch_match_id=686190651802335719"&gt;Interactive Van Gogh Painting : InternetIsBeautiful&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=32sinxCUwXA"&gt;Minecraft by Illumina in 41:35 - Summer Games Done Quick 2020 Online - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GKq2aIpIDQM"&gt;Super Smash Bros. 64 by Bubzia in 8:29 - Summer Games Done Quick 2020 Online - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.netflix.com/watch/81254224"&gt;The Social Dilemma | Netflix&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My buddy James mentioned this to me the other day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/marick/status/1315331384018456576"&gt;Brian Marick on Twitter: &amp;ldquo;Idle Sunday morning thought. Matthew 6:5-6 is pretty explicit. The ostentatiously religious must get that thrown at them often. I assume there are canned responses about how that doesn&amp;rsquo;t apply to, say, Mike Pence. What are they? https://t.co/uD5AcUo2Kt&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/gp/product/0735619670/"&gt;Code Complete: A Practical Handbook of Software Construction, Second Edition: McConnell, Steve: 0790145196705: Amazon.com: Books&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think Code Complete is &lt;em&gt;the&lt;/em&gt; book I would hand every software
developer at the start of their career.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/timvisher/status/1315648075818557440"&gt;What&amp;rsquo;s yours?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Where indeed did I pick up the strange &amp;lsquo;boxen&amp;rsquo; noun?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/timvisher/status/1315733812152807425"&gt;Tim Visher on Twitter: &amp;ldquo;@nick&lt;sub&gt;canz&lt;/sub&gt; @ceeoreo_ You can really throw people for a loop when you go with 'boxen&amp;rsquo; for multiple computers. I don&amp;rsquo;t even know where I picked that one up. Some awful mutation of https://t.co/DuwZYaQ87v and box, I guess.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.emacswiki.org/emacs/Emacsen"&gt;EmacsWiki: Emacsen&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/b0rk/status/1315831992253116417"&gt;🔎Julia Evans🔍 on Twitter: &amp;ldquo;shellcheck ♥ permalink: https://t.co/aRQuOTorZm https://t.co/eMOJQf3YyX&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shellcheeeeeeeeck!!!&lt;/strong&gt; \( ﾟ◡ﾟ)/&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=gfh-VCTwMw8&amp;amp;list=WL&amp;amp;index=154&amp;amp;t=12s"&gt;Avoiding Microservice Megadisasters - Jimmy Bogard - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Probably a re-hash of old territory if you&amp;rsquo;ve ever seen a talk about
how to do micro-services well but if you haven&amp;rsquo;t this is not a bad
place to start.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=NUrTRjEXjSM"&gt;Martin Scorsese - The Art of Silence - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=_DFCXQoKtu8"&gt;Crypt of the NecroDancer: AMPLIFIED by SpootyBiscuit in 14:53 - Summer Games Done Quick 2020 Online - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is absurd.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/hillelogram/status/1316178940491378697"&gt;Hillel dressed as Data &amp;amp; Reality author Bill Kent on Twitter: &amp;ldquo;Unpopular opinion: gifs and memes in conference talks are an antipattern. No, I&amp;rsquo;m not saying &lt;strong&gt;humor&lt;/strong&gt; is an antipattern. Humor is great, put more of it in talks. Gifs and memes &lt;strong&gt;specifically&lt;/strong&gt; are an antipattern.&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unpopular opinion, indeed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://twitter.com/b0rk/status/1317083801428856833"&gt;🔎Julia Evans🔍 on Twitter: &amp;ldquo;${…}: how to do string operations in bash permalink: https://t.co/6lJmoE8I2B https://t.co/b40jt20HoI&amp;rdquo; / Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just, you know, follow Julia.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/632228039380664320</link><guid>https://blog.twonegatives.com/post/632228039380664320</guid><pubDate>Sat, 17 Oct 2020 09:00:43 -0400</pubDate><category>friday-ish links</category></item><item><title>Effective bash/jq: Displaying All The AZs</title><description>&lt;p&gt;I wrote the following script the other day because A) text is always
superior to a screenshot, B) &lt;code&gt;C-r&lt;/code&gt; is a thing, and C) I can&amp;rsquo;t seem to
find where Amazon actually publicly documents their AZs.&lt;/p&gt;

&lt;p&gt;I wanted to share because I think it shows a couple of techniques
which I don&amp;rsquo;t see very often in scripts as well as yet again proving
that it&amp;rsquo;s good to know the tools you use.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash

{
  cat availability-zones ||
    {
      for region in $(
                     cat regions ||
                       {
                         aws ec2 describe-regions --output=text --query \
                             'Regions[].RegionName' |
                           tee regions
                       }
                   )
      do
        aws --region="$region" ec2 describe-availability-zones |
          jq '.AvailabilityZones[]|{ZoneName,RegionName}'  |
          tee -a availability-zones
      done
    }
} |
  jq -Ss 'reduce .[] as $item (
            {};
            .[$item.RegionName].azs += [$item.ZoneName]
          )'
&lt;/code&gt;&lt;/pre&gt;

&lt;hr&gt;

&lt;pre&gt;&lt;code&gt;cat availability-zones ||
  … |
      tee -a availability-zones
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This is the first bit that I think is both clever and useful. I use it
twice in this script. Once here and the second one with the &lt;code&gt;regions&lt;/code&gt;
output. The idea is to use a file as a cache with &lt;code&gt;cat&lt;/code&gt;&amp;rsquo;s exit code
being used to figure out whether the cache needs to be populated or
not. To re-query the regions you just &lt;code&gt;rm availability-zones regions&lt;/code&gt;
and rerun the command. If you&amp;rsquo;re happy with the regions you found but
you want to re-query the zones you can just &lt;code&gt;rm availability-zones&lt;/code&gt; and
be good to go from there.&lt;/p&gt;

&lt;p&gt;The key is to use cat on the one hand and &lt;code&gt;tee&lt;/code&gt; on the other. &lt;code&gt;tee&lt;/code&gt; is
so fantastically useful and everyone should be aware of it. I&amp;rsquo;m an
especially huge fan lately of the &lt;code&gt;tee &amp;lt;&amp;lt;&amp;lt;"charnock" stephen&lt;/code&gt; idiom to
both populate a file with a string while also printing it my screen.
Very useful in my CD pipelines.&lt;/p&gt;

&lt;p&gt;The next bit that I think is cool is the use of &lt;code&gt;--query&lt;/code&gt; on my &lt;code&gt;aws&lt;/code&gt;
commands.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;…
aws ec2 describe-regions --output=text --query 'Regions[].RegionName' |
…
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Unfortunately you then see me immediately turn around and fall back to
&lt;code&gt;jq&lt;/code&gt; like a coward because JMESPath just does not compute for me. And
really more so because &lt;code&gt;jq&lt;/code&gt; is general whereas JMESPath only helps me
in &lt;code&gt;awscli&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Nevertheless I&amp;rsquo;m sure it&amp;rsquo;s more efficient (for some definition of the
word) to encode my JSON response processing in &lt;code&gt;--query&lt;/code&gt; if I can
rather than starting up the separate process (although I don&amp;rsquo;t think I
can measure &lt;code&gt;jq&lt;/code&gt;&amp;rsquo;s startup time.).&lt;/p&gt;

&lt;p&gt;I also really like the use of &lt;code&gt;jq&lt;/code&gt;&amp;rsquo;s &lt;code&gt;-S&lt;/code&gt; and &lt;code&gt;-s&lt;/code&gt; flags here.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;… |
  jq -Ss 'reduce .[] as $item (
            {};
            .[$item.RegionName].azs += [$item.ZoneName]
          )'
…
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If you&amp;rsquo;re unfamiliar with them &lt;code&gt;-S&lt;/code&gt; means sort keys and &lt;code&gt;-s&lt;/code&gt; means
slurp all input into an array before processing it. &lt;code&gt;-s&lt;/code&gt; is getting me
the ability to suck all the responses together into a single array so
I can reduce it and &lt;code&gt;-S&lt;/code&gt; is making it so that the humans I&amp;rsquo;m pasting
this text to can easily find what they&amp;rsquo;re looking for.&lt;/p&gt;

&lt;p&gt;Just for kicks here&amp;rsquo;s a fully parallelized version of the same code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env bash

{
  cat availability-zones ||
    {
      parallel aws --region='{}' ec2 describe-availability-zones ::: $(
        cat regions ||
          {
            aws ec2 describe-regions --output=text \
                --query 'Regions[].RegionName' |
              tee regions
          }
               ) |
        jq '.AvailabilityZones[]|{ZoneName,RegionName}' |
        tee -a availability-zones
    }
} |
  jq -Ss 'reduce .[] as $item (
            {};
            .[$item.RegionName].azs += [$item.ZoneName]
          )'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Just because, you know, 😍 &lt;code&gt;parallel&lt;/code&gt; 😍.&lt;/p&gt;

&lt;p&gt;Cheers.&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/631775047336493056</link><guid>https://blog.twonegatives.com/post/631775047336493056</guid><pubDate>Mon, 12 Oct 2020 09:00:36 -0400</pubDate><category>effective bash</category><category>effective jq</category><category>gnu parallel</category></item><item><title>Friday-ish Links</title><description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://daniel.haxx.se/blog/2020/03/17/curl-write-out-json/"&gt;curl write-out JSON | daniel.haxx.se&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a really cool addition to &lt;code&gt;curl&lt;/code&gt; that would help a ton with
intricate scripting around it. Or, you know, maybe if you need it you
should really be using another language or something.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.microsoft.com/en-us/research/blog/dialogue-as-dataflow-a-new-approach-to-conversational-ai/"&gt;Dialogue as Dataflow: A new approach to conversational AI - Microsoft Research&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I managed never to publish my review of &lt;a href="https://elementsofclojure.com/"&gt;Elements of Clojure&lt;/a&gt;, it
seems, but Zach Tellman&amp;rsquo;s exit from the Clojure community was a
pretty sad day to me. Every one of his talks is worth watching. So
much of what I find wise in his talks is distilled in that book. I
really should get around to reviewing it…&lt;/p&gt;

&lt;p&gt;Anyway, this post is about what he&amp;rsquo;s been up to since moving on to
MSR.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=8SUkrR7ZfTA"&gt;Elements of Programming Style - Brian Kernighan - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everything I&amp;rsquo;ve seen and heard from Brian Kernighan makes me wish
that I&amp;rsquo;d worked with him or known him. He just seems like a generally
great guy and someone who&amp;rsquo;s head is screwed on real straight. I dug
this talk.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=n9xhJrPXop4"&gt;Dune Official Trailer - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Preeeeety excited here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=VvS2udf4pgI&amp;amp;t=1s"&gt;&amp;ldquo;Humanity 2.0&amp;rdquo; by Matt Taylor - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=t3jAcrLjaOA"&gt;Super Mario Bros. Pitch Meeting - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My wife and I just found this channel and we&amp;rsquo;re enjoying going
through a lot of the backlog. This one really hit home.&lt;/p&gt;

&lt;p&gt;&amp;ldquo;Super easy. Barely and inconvenience.&amp;rdquo;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=AkYDsiRVqno"&gt;Stefan Tilkov - Why software architects fail – and what to do about it - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=InyKZ0F-fVU&amp;amp;t=13s"&gt;PREDATOR: The Smartest Genre Mash-Up Ever? Probably! - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been loving Patrick H. Willems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=3FOzD4Sfgag"&gt;Edgar Wright - How to Do Visual Comedy - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wish Every Frame a Painting was still going.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=QCu-XnVxhfk&amp;amp;t=18s"&gt;Reich: How Unequal Can America Get? - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This has come up again several times this week. One of those talks
that really changes how you think about the present.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=SqSebo9kaPw"&gt;All Achievements in Hollow Knight Done in 1 Run Under 9 Hours - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ridiculous.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=XLFEvHWD_NE"&gt;The Greatest Showman | &amp;ldquo;This Is Me&amp;rdquo; with Keala Settle | 20th Century FOX - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We watched &lt;a href="https://www.imdb.com/title/tt0113497/"&gt;Jumanji&lt;/a&gt; with my family lately and beforehand my sister
requested that we watch something from Greatest Showman because she
wanted to sing. This performance still gives me chills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=0-O7tFvg2xo"&gt;SPELUNKY 2 PS4 RELEASE - Sight-Unseen First Time Experience - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s out!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As is &lt;a href="https://www.youtube.com/watch?v=s18KScLlCNg"&gt;Rogue Legacy 2&lt;/a&gt;!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=bx3--22D4E4"&gt;Coding Interviews are Broken - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hate coding interviews.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=l3uO2lO9JDk"&gt;Bullfrog Dad Protects His Tadpoles - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So cool!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=mzPKk19t3Kw"&gt;Has Anti-Racism Become as Harmful as Racism? John McWhorter vs. Nikhil Singh - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I keep thinking about so many points brought up in this debate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=69USidi0Yyk&amp;amp;t=3s"&gt;Devopsdays 2018 - Emily Freeman Scaling Sparta: Military Lessons for Growing A Dev Team - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Gv1I0y6PHfg"&gt;DAGON by H. P. Lovecraft (Illustrated) - ULTIMATE ELDER GOD VERSION - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Really cool animation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=6JP3Rv-x3uI"&gt;Why You Love A Hero Who Doesn&amp;rsquo;t Matter | Blade Runner 2049 - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=40y7dhSS1y0"&gt;THE DARK KNIGHT: How the Joker creates doubt - YouTube&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=r7jJuWB6jZU"&gt;Bunk bed disaster - Peter Pan Goes Wrong: Preview - BBC One - YouTube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My wife randomly found The Goes Wrong Show and boy did we enjoy it.
:)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description><link>https://blog.twonegatives.com/post/631525464713854976</link><guid>https://blog.twonegatives.com/post/631525464713854976</guid><pubDate>Fri, 09 Oct 2020 14:53:35 -0400</pubDate><category>friday-ish links</category></item><item><title>Effective Applescript: How to Quit a Chrome App, but Only if It's Running</title><description>&lt;p&gt;I use Chrome Apps to separate some of the &lt;a href="https://www.youtube.com/watch?v=5qap5aO4i9A"&gt;persistent&lt;/a&gt; &lt;a href="https://mynoise.net/"&gt;things&lt;/a&gt; I have
going from my normal Chrome sessions. At the end of the day I wanted
to have them quit for me from the script I run to switch my machine
from &amp;lsquo;work&amp;rsquo; to 'home&amp;rsquo; mode. It was slightly trickier than I was
expecting it to be:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;tell application "System Events"
  if (displayed name of processes where background only is false) contains "YouTube" then
    tell application "YouTube" to quit
  end if
end tell
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The bit that was tricky is is that &lt;code&gt;displayed name&lt;/code&gt; is the property of
the process that I was looking for in this case. &lt;code&gt;name&lt;/code&gt; is something
unhelpful.&lt;/p&gt;

&lt;p&gt;Happy scripting!&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/625535193653051392</link><guid>https://blog.twonegatives.com/post/625535193653051392</guid><pubDate>Tue, 04 Aug 2020 12:00:48 -0400</pubDate><category>applescript</category><category>effective applescript</category></item><item><title>Effective Applescript: How to Run a Script From a Script (Yo Dawg)</title><description>&lt;p&gt;I have a script that I run at the end of my day to switch my machine
from &amp;lsquo;work mode&amp;rsquo; to 'home mode&amp;rsquo;. It primarily takes care of ejecting
various disks that I need to undock from but I also wanted it to run
my 'distraction killer&amp;rsquo; script (which I guess I still haven&amp;rsquo;t posted
about) which runs on a timer in Keyboard Maestro.&lt;/p&gt;

&lt;p&gt;The way to do that is:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;run script (POSIX path of (path to home folder) &amp;amp; "Dropbox/distraction killer.applescript")
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Happy scripting.&lt;/p&gt;</description><link>https://blog.twonegatives.com/post/625523872491552768</link><guid>https://blog.twonegatives.com/post/625523872491552768</guid><pubDate>Tue, 04 Aug 2020 09:00:51 -0400</pubDate><category>applescript</category><category>effective applescript</category></item><item><title>Effective Bash: `source` can take arguments and run a script on `$PATH`</title><description>&lt;p&gt;If you&amp;rsquo;re anything like me you may have thought of the &lt;code&gt;source&lt;/code&gt; Bash
builtin as something that is capable of running code in the active
Bash shell with full access to the environment from a given file.&lt;/p&gt;

&lt;p&gt;What I didn&amp;rsquo;t know, though, was that so long as the &lt;code&gt;filename&lt;/code&gt; doesn&amp;rsquo;t
contain a slash, it&amp;rsquo;s actually searched for on &lt;code&gt;PATH&lt;/code&gt;. The other neat
thing is that you can pass arguments to the script being run.&lt;/p&gt;

&lt;p&gt;What this lets you do is place a script that needs to run in the
context of a running shell somewhere on &lt;code&gt;PATH&lt;/code&gt; even if it needs
arguments. I use this for getting role sessions for the aws cli like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;source get_role_session read_only 123456
&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
  &lt;p&gt;. (a period)&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;. filename [arguments]
&lt;/code&gt;&lt;/pre&gt;
  
  &lt;p&gt;Read and execute commands from the filename argument in the current
  shell context. If filename does not contain a slash, the PATH variable
  is used to find filename. When Bash is not in POSIX mode, the current
  directory is searched if filename is not found in $PATH. If any
  arguments are supplied, they become the positional parameters when
  filename is executed. Otherwise the positional parameters are
  unchanged. If the -T option is enabled, source inherits any trap on
  DEBUG; if it is not, any DEBUG trap string is saved and restored around
  the call to source, and source unsets the DEBUG trap while it executes.
  If -T is not set, and the sourced file changes the DEBUG trap, the new
  value is retained when source completes. The return status is the exit
  status of the last command executed, or zero if no commands are
  executed. If filename is not found, or cannot be read, the return
  status is non-zero. This builtin is equivalent to source. &amp;mdash;&lt;a href="https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#Bourne-Shell-Builtins"&gt;Bourne
  Shell Builtins (Bash Reference Manual)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>https://blog.twonegatives.com/post/625082208193052672</link><guid>https://blog.twonegatives.com/post/625082208193052672</guid><pubDate>Thu, 30 Jul 2020 12:00:47 -0400</pubDate><category>effective bash</category><category>source</category></item></channel></rss>
