<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://cori.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://cori.github.io/" rel="alternate" type="text/html" /><updated>2026-04-22T14:21:20+00:00</updated><id>https://cori.github.io/feed.xml</id><title type="html">cori schlegel</title><subtitle>Developer from South-central Wisconsi</subtitle><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/09/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-09T12:16:00+00:00</published><updated>2018-04-09T12:16:00+00:00</updated><id>https://cori.github.io/2018/04/09/1</id><content type="html" xml:base="https://cori.github.io/2018/04/09/1/"><![CDATA[<p><a href="" id="a991"></a>While working on getting a Markdown plugin working in Manuscript I wanted to server the plugin’s Javascript directly from the raw GitHub file. A tool called <a href="https://rawgit.com">rawgit</a> turned out to be quite useful in this, since GitHub serves raw files as <code class="language-plaintext highlighter-rouge">text/plain</code>.  <a href="#a991">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[While working on getting a Markdown plugin working in Manuscript I wanted to server the plugin’s Javascript directly from the raw GitHub file. A tool called rawgit turned out to be quite useful in this, since GitHub serves raw files as text/plain. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/08/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-08T13:09:00+00:00</published><updated>2018-04-08T13:09:00+00:00</updated><id>https://cori.github.io/2018/04/08/1</id><content type="html" xml:base="https://cori.github.io/2018/04/08/1/"><![CDATA[<p><a href="" id="a981"></a>Wrapped up a basic dotfiles repo, with a smidgen of vim plugin-ness and a little OS X config. Still want to get a dotsecrets repo or a subbfoler using git-secret, but the very most basic pieces are in place.  <a href="#a981">#</a></p>

<p><a href="" id="a982"></a>A couple of useful little OS X bits that I learned while doing this; Fn+Left-Arrow and Fn+Right-Arrow are Home and End (of line) shortcuts when using the default keyboard. Very useful when using vim in iTerm2, where Cmd+[LR]-Arrow change tabs. Also was pointed to <a href="http://www.drbunsen.org/remapping-caps-lock/">this</a> which prompted me to map Caps Lock to Escape (also useful in vim)  <a href="#a982">#</a></p>

<p><a href="" id="a983"></a>I think I need to look into a terraform vim plugin.  <a href="#a983">#</a></p>

<p><a href="" id="a984"></a>Trying to get a CKEditor Markdown plugin working in Manuscript. Using <a href="https://github.com/hectorguo/CKEditor-Markdown-Plugin">this one</a> which looks pretty good in the <a href="http://hectorguo.github.io/CKEditor-Markdown-Plugin/">demo</a>. I can reload the event editor’s CKEditor but can’t get the plugin to load via</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">var</span> <span class="nx">ed</span> <span class="o">=</span> <span class="nx">CKEDITOR</span><span class="p">.</span><span class="nx">instances</span><span class="p">.</span><span class="nx">sEvent</span><span class="p">.</span><span class="nx">config</span>
<span class="nx">CKEDITOR</span><span class="p">.</span><span class="nx">instances</span><span class="p">.</span><span class="nx">sEvent</span><span class="p">.</span><span class="nx">destroy</span><span class="p">()</span>
<span class="nx">CKEDITOR</span><span class="p">.</span><span class="nx">plugins</span><span class="p">.</span><span class="nx">addExternal</span><span class="p">(</span><span class="dl">'</span><span class="s1">markdown</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">https://rawgit.com/hectorguo/CKEditor-Markdown-Plugin/master/markdown/plugin.js</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">ed</span><span class="p">.</span><span class="nx">extraPlugins</span> <span class="o">=</span> <span class="dl">"</span><span class="s2">FBContextMenu,FBLink,FBFormSubmit,FBSnippets,FBInsertImage,FBCodeSnippets,markdown</span><span class="dl">"</span>
<span class="nx">CKEDITOR</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="dl">'</span><span class="s1">sEvent</span><span class="dl">'</span><span class="p">,</span> <span class="nx">ed</span><span class="p">)</span>
</code></pre></div></div>

<p>I can destroy and reload the Manuscript default CKEditor plugin to reload with that code, but the Markdown plugin isn’t available. Also tried <code class="language-plaintext highlighter-rouge">CKEDITOR.plugins.add('markdown', 'https://rawgit.com/hectorguo/CKEditor-Markdown-Plugin/master/markdown/plugin.js')</code> instead of <code class="language-plaintext highlighter-rouge">addExternal()</code> although I think the external version is the right API to use.  <a href="#a984">#</a></p>

<p><a href="" id="a985"></a>I’m referencing <a href="https://stackoverflow.com/questions/12531002/change-ckeditor-toolbar-dynamically">this Stack Overflow</a> question and answers and also pieces of <a href="https://theholyjava.wordpress.com/2011/04/04/how-to-customize-ckeditor-with-your-own-plugins-skins-configurations/">this article</a>.  <a href="#a985">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Wrapped up a basic dotfiles repo, with a smidgen of vim plugin-ness and a little OS X config. Still want to get a dotsecrets repo or a subbfoler using git-secret, but the very most basic pieces are in place. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/07/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-07T14:39:00+00:00</published><updated>2018-04-07T14:39:00+00:00</updated><id>https://cori.github.io/2018/04/07/1</id><content type="html" xml:base="https://cori.github.io/2018/04/07/1/"><![CDATA[<p><a href="" id="a971"></a>At SQL Saturday Madison today.  <a href="#a971">#</a></p>

<p><a href="" id="a972"></a>Azure SQL Managed Instances seem like an interesting alternative to Azure SQL Database. Lift-and-shift model with “local” control at the instance (instead of database) level.  <a href="#a972">#</a></p>

<p><a href="" id="a973"></a>With respect to tuning, the DTU calculator tool looks useful. Also, wtf is parameter sniffing? Additionally, Jes talked about things at the logical SQL server level with respect to Azure SQL Database. I’d like to understand more abou tthat concept.  <a href="#a973">#</a></p>

<p><a href="" id="a974"></a>Analysis Services session was probably good for analysis services developers; not that useful for me personally. <a href="#a974">#</a></p>

<p><a href="" id="a975"></a>Learned about WPS’s remote work push, which seems to have come a long way in just a few years. They’ve been moving to remote first for about 2 years and have a ton of their current workforce working remotely.  <a href="#a975">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[At SQL Saturday Madison today. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/06/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-06T13:27:00+00:00</published><updated>2018-04-06T13:27:00+00:00</updated><id>https://cori.github.io/2018/04/06/1</id><content type="html" xml:base="https://cori.github.io/2018/04/06/1/"><![CDATA[<p><a href="" id="a961"></a>Finally have a working prototype scaleset for Elasticesearch 1.7 running in Azure. Oddities:</p>

<ol>
  <li>While the config trigger is being handled in terraform with a VM Extension, it still relies on a Bash script running in the context of the VM being created to set itself up.</li>
  <li>The config that’s executed by the VM Extension only approximates dynamic configuration by looping over some passed-in variables. Better than nothing, though.</li>
</ol>

<p>Hopefully Consul will be able to address the service discovery concern, since right now the ES zen discovery addressing is dynamically hard-coded. It’s possible there’s a way to handle that “internally”, but so far I haven’t been able to find a way to access scaleset instance information during the startup process, and so am needing to gather that information in Bash when the VM starts up.  <a href="#a961">#</a></p>

<p><a href="" id="a962"></a>TIL about Bash’s greedy variable parsing courtesy of krallja; this means that in the context of a Bash substitution varible like <code class="language-plaintext highlighter-rouge">$host$prefix0000$counter</code>, <code class="language-plaintext highlighter-rouge">$prefix0000</code> is parsed as a whole variable instead of as a variable followed by a string. On the other hand in <code class="language-plaintext highlighter-rouge">$host$prefix-0000$counter</code>, <code class="language-plaintext highlighter-rouge">$prefix</code> is a variable since “-“ isn’t valid in a variable name. You can also resolve this like <code class="language-plaintext highlighter-rouge">$host${prefix}0000$counter</code>. <a href="#a962">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Finally have a working prototype scaleset for Elasticesearch 1.7 running in Azure. Oddities:]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/05/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-05T19:46:00+00:00</published><updated>2018-04-05T19:46:00+00:00</updated><id>https://cori.github.io/2018/04/05/1</id><content type="html" xml:base="https://cori.github.io/2018/04/05/1/"><![CDATA[<p><a href="" id="a951"></a>Still running into problems with the Elasticsearch scaleset. With the new image using the init script in root’s cron on reboot, the <code class="language-plaintext highlighter-rouge">mount</code> command to attach the local assets folder to the azure file storage doesn’t happen. I can
t tell if it’s just not getting cxalled or if its failing in some way. When it’s run at the command line everything works like a charm, but when run at startup the templating <code class="language-plaintext highlighter-rouge">eval</code> commands generate empty .yml and defaults files bercause there’s no source file.</p>

<p>So I switched, at least temporarily, back to the vm extension, but get the same result when running the script with <code class="language-plaintext highlighter-rouge">sudo sh test.sh</code>. Removing the <code class="language-plaintext highlighter-rouge">sh</code> from the extension’s <code class="language-plaintext highlighter-rouge">commandToExecute</code> causes an error:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>azurerm_virtual_machine_scale_set.es_ss: Long running operation terminated with status 'Failed': Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension 'test'. Error message: \"Enable failed: failed to execute command: command terminated with exit status=1\n[stdout]\n\n[stderr]\nsudo: es-shell-test.sh: command not found\n\"."
</code></pre></div></div>

<p>In the end I needed to go with <code class="language-plaintext highlighter-rouge">bash</code> without the <code class="language-plaintext highlighter-rouge">sudo</code>; the templating is a bash feature, and I suspect the <code class="language-plaintext highlighter-rouge">commandToExecutew</code> runs as root. <a href="#a951">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Still running into problems with the Elasticsearch scaleset. With the new image using the init script in root’s cron on reboot, the mount command to attach the local assets folder to the azure file storage doesn’t happen. I can t tell if it’s just not getting cxalled or if its failing in some way. When it’s run at the command line everything works like a charm, but when run at startup the templating eval commands generate empty .yml and defaults files bercause there’s no source file.]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/04/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-04T15:18:00+00:00</published><updated>2018-04-04T15:18:00+00:00</updated><id>https://cori.github.io/2018/04/04/1</id><content type="html" xml:base="https://cori.github.io/2018/04/04/1/"><![CDATA[<p><a href="" id="a941"></a>Continuing along the Elasticsearch Scaleset process; I’ve attempted the virtual machine extensions mentioned previously to little success. The expected files are created but are empty, and therefore don’t do the job. Probably some sort of permissions issue. I’ve moved on to trying to handle them with a startup script with somewhat better effect thus far. And in point of fact, a startup script is likely to be a better bet anyway, since (provided the startup script is delivered in the packer image) new scaleset members will start up with that script having run; it’s not clear that he VM extension would run for new scaleset members, and I strongly suspect it would not. I also discovered that the <a href="https://stackoverflow.com/a/17030906/8151"><code class="language-plaintext highlighter-rouge">eval</code></a> process I’m using for bash file-templating is … unuseful for some of the files - one bash-script-like file in particular has a number of env variable references in it like <code class="language-plaintext highlighter-rouge">$ES_CLASSPATH</code> or <code class="language-plaintext highlighter-rouge">$ES_HOME</code> which, when procesed through the <code class="language-plaintext highlighter-rouge">eval</code> process, end up empty and making the file invalid. I had to switch to using <code class="language-plaintext highlighter-rouge">sed</code> to do the replacement(s) I needed in that file.  <a href="#a941">#</a></p>

<p><a href="" id="a942"></a>Of course all of this is till running into startup problems, maybe at least partly to do with not correctly handling (or not properly ignoring) failure modes? And the challenge of running it <code class="language-plaintext highlighter-rouge">@reboot</code> is that if it fails the system, doesn’t boot. I’m not 100% sure why this is; most of what I’m doing in there shouldn’t be relevant to system startup (aside from whether or not Elasticesearch can start, which is a separate issue and shouldn’t mean that the OS boot would fail).  <a href="#a942">#</a></p>

<p><a href="" id="a943"></a>Deallocating a scaleset instance seems to take a much longer time than I would have expected, as well, and oddly, for some script failures a deallocation and start cycle seems to fix the issue.  <a href="#a943">#</a></p>

<p><a href="" id="a944"></a>I’ve been looking at using an alert filter in Azure connected to a webhook to publish notifications (perhaps to Slack). Might be useful not only for knowing when a long-running operation is finished but also for tracking other events. Interestingly enough the Administrative event fiolter also published activity from the Azure CLI (and presumably from Azure-PowerShell). It’ll be interesting to see if it also catches terraform activity.  <a href="#a944">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Continuing along the Elasticsearch Scaleset process; I’ve attempted the virtual machine extensions mentioned previously to little success. The expected files are created but are empty, and therefore don’t do the job. Probably some sort of permissions issue. I’ve moved on to trying to handle them with a startup script with somewhat better effect thus far. And in point of fact, a startup script is likely to be a better bet anyway, since (provided the startup script is delivered in the packer image) new scaleset members will start up with that script having run; it’s not clear that he VM extension would run for new scaleset members, and I strongly suspect it would not. I also discovered that the eval process I’m using for bash file-templating is … unuseful for some of the files - one bash-script-like file in particular has a number of env variable references in it like $ES_CLASSPATH or $ES_HOME which, when procesed through the eval process, end up empty and making the file invalid. I had to switch to using sed to do the replacement(s) I needed in that file. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/03/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-03T15:00:00+00:00</published><updated>2018-04-03T15:00:00+00:00</updated><id>https://cori.github.io/2018/04/03/1</id><content type="html" xml:base="https://cori.github.io/2018/04/03/1/"><![CDATA[<p><a href="" id="a931"></a>Still proceeding on updating my dotfiles, albeit slowly. I’ve more or less settled on <a href="https://github.com/anishathalye/dotfiles">Anish’s</a> pattern, probably using his <a href="https://github.com/anishathalye/dotbot">DotBot</a> project. That will require getting to know git submodules better. I’m also planning on playing with <a href="http://git-secret.io/">git-secret</a> to be able to store my local identity config in GitHub as well. Since I’ve recently upograded to the paid plan I may as well try and make use of the private repos a little more, and with git-secret and a private repo together that will probably suffice.  <a href="#a931">#</a></p>

<p><a href="" id="a932"></a>I’m also dithering about how to store more extensive info like dotstuff that’s stored in folders. Much of that probably belongs in submodules somehow as well. Also planning on decking out my vim a little more as previously noted, so that will have to come into it. I was planning on using <a href="https://github.com/junegunn/vim-plug">vim-plug</a> for that but I’ll need to make sureit supported installing from submodules if I’m going to go that route (as it seems to do). <a href="#a932">#</a></p>

<p><a href="" id="a933"></a>On the Elasticsearch scaleset front, since multicast isn’t an option I’ll have to do the cluster config some other way. It seems like using <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/windows/extensions-customscript">Azure Virtual Machine Custom Script Extensions</a> (in <a href="https://www.terraform.io/docs/providers/azurerm/r/virtual_machine_extension.html">terraform</a> prompted by <a href="https://github.com/Azure/azure-quickstart-templates/blob/master/elasticsearch-vmss/azuredeploy.json">this quickstart</a>) might be the route to go; that seems like it might be a useful replacement for the remote-exec work I was doing in the individual vm set up.  <a href="#a933">#</a></p>

<p><a href="" id="a934"></a>TIL that GitHub gist raw urls change when a gist is revised. This makes sense from a git point of view (as I suspect that the gist is just a small git repo on the back end) but I’m not sure whether that seems reasonable from the front end.  <a href="#a934">#</a></p>

<p><a href="" id="a935"></a>Another interesting TIL, it seems like when using terraform to apply a scaleset that relies on a virtual machine extension using a remote file (I’m currently testing with a gist), if there’s an error in the remote file, reapplying after fixing the problem in the remote file doesn’t seem to be sufficient. I’ve had to <code class="language-plaintext highlighter-rouge">terraform destroy</code> followed by a fresh <code class="language-plaintext highlighter-rouge">terraform apply</code> to get it to piuck up the changes. ~Not quite sure why yet.~ Apparently changes to the scaleset definition (including the fileUri for a vm extension script) don’t dirty the scaleset, so it doesn’t get picked up by the state refresh. Not sure exactly why <em>this</em> happens, but….  <a href="#a935">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Still proceeding on updating my dotfiles, albeit slowly. I’ve more or less settled on Anish’s pattern, probably using his DotBot project. That will require getting to know git submodules better. I’m also planning on playing with git-secret to be able to store my local identity config in GitHub as well. Since I’ve recently upograded to the paid plan I may as well try and make use of the private repos a little more, and with git-secret and a private repo together that will probably suffice. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/02/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-02T00:00:00+00:00</published><updated>2018-04-02T00:00:00+00:00</updated><id>https://cori.github.io/2018/04/02/1</id><content type="html" xml:base="https://cori.github.io/2018/04/02/1/"><![CDATA[<p><a href="" id="a921"></a>Research into updating my dotfiles arrangement proceeds apace. <a href="#a921">#</a></p>

<p><a href="" id="a922"></a>Today’s big discovery on the Elasticsearch in Azure front is that Azure virtual networks don’t support multicast, so ES discovery has to be unicast. that’s … unfortunate.  <a href="#a922">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Research into updating my dotfiles arrangement proceeds apace. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/04/01/1/" rel="alternate" type="text/html" title="1" /><published>2018-04-01T17:10:00+00:00</published><updated>2018-04-01T17:10:00+00:00</updated><id>https://cori.github.io/2018/04/01/1</id><content type="html" xml:base="https://cori.github.io/2018/04/01/1/"><![CDATA[<p><a href="" id="a9111"></a>I’m refreshing my <a href="https://github.com/cori/dotfiles">dotfiles</a> configuration, which I haven’t been keeping up for quite some time. I’m digging into some vim enhancements (plugins and the like) since I’m using vim a lot more these days, and that’s prompted me to look at sharing those configurations among machines; thus circling back around to my dotfiles repo and rethinking how I was handling all of that. Also my efforts to get a useable <a href="https://glitch.com">Glitch</a> console config will be well-served with some thought around how best to organize things. Especially since I switched to <a href="https://github.com/robbyrussell/oh-my-zsh">Oh-My-Zsh</a> for console config it hadn’t seemed particularly useful to maintain separate dotfiles, but I’m definitely seeing where it may once again bbe useful. Additionally I may be sending my work MacBBook out for repair, so being able to get another machine up and running quickly would be helpful.  <a href="#a9111">#</a></p>

<p><a href="" id="a912"></a>Digging around online for ideas about how to organize them I quickly stumbled across the <a href="https://dotfiles.github.io/">dotfile</a> GitHub page, and specifically the <a href="https://dotfiles.github.io/#tutorials">tutorials</a> section, and am reading through those. Lots to go through there, but so far <a href="https://www.anishathalye.com/2014/08/03/managing-your-dotfiles/">Anish’s</a> process looks pretty sensible, and <a href="https://github.com/anishathalye/dotbot">DotBot</a> in particular looks useful.  <a href="#a912">#</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[I’m refreshing my dotfiles configuration, which I haven’t been keeping up for quite some time. I’m digging into some vim enhancements (plugins and the like) since I’m using vim a lot more these days, and that’s prompted me to look at sharing those configurations among machines; thus circling back around to my dotfiles repo and rethinking how I was handling all of that. Also my efforts to get a useable Glitch console config will be well-served with some thought around how best to organize things. Especially since I switched to Oh-My-Zsh for console config it hadn’t seemed particularly useful to maintain separate dotfiles, but I’m definitely seeing where it may once again bbe useful. Additionally I may be sending my work MacBBook out for repair, so being able to get another machine up and running quickly would be helpful. #]]></summary></entry><entry><title type="html">1</title><link href="https://cori.github.io/2018/03/31/1/" rel="alternate" type="text/html" title="1" /><published>2018-03-31T12:42:00+00:00</published><updated>2018-03-31T12:42:00+00:00</updated><id>https://cori.github.io/2018/03/31/1</id><content type="html" xml:base="https://cori.github.io/2018/03/31/1/"><![CDATA[<p><a href="" id="a901"></a>While thinking about trying to keep this up again I’ve bbeen puzzling about post tags. Currently these aren’t supported out-of-the box by Jekyll, and any plugins that might provide the functionality aren’t supported by the GitHub Pages Jekyll workflow, so I’d have to build my site locally and push the static files to the repo to use anything like that and I’m still not ready to do that. A couple of folks have documented how they went about handling it, though, notably:</p>

<ul>
  <li><a href="http://zpbappi.com/jekyll-with-tags-archive-and-comments-in-github-pages/">Zp Bappi</a></li>
  <li><a href="http://www.minddust.com/post/alternative-tags-and-categories-on-github-pages/">minddust</a></li>
  <li><a href="http://longqian.me/2017/02/09/github-jekyll-tag/">Long Qian</a></li>
</ul>

<p>Of these right now the minddust approach seems the most straightforward and aside from having to generate the category and tag files manually seems pretty simple. To bbe fair both of the other models require some file creation, and that should be easily automated, bperhaps even hooking into the <code class="language-plaintext highlighter-rouge">jekyll build</code> process.  <a href="#a901">#</a></p>

<p><a href="" id="a902"></a>This week I worked on a couple of internal Glitch projects (well, internal to Fog Creek but externally visible) to enhance our recruiting process. I won’t link to them here but anyone who applies for one of our <a href="https://fogcreek.com/careers">open positions</a> will see them. In any case I ran into a couple of slightly interesting bits that I want to capture, mostly having to do with “new” Javascript hotness since I last regularly used JS (in, um, 2012 maybe?).</p>

<ul>
  <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals">Template literals</a> rawk.</li>
  <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData">FormData</a> object is super nice for quickly capturing an entire form’s fields for POSTing to an endpoint for processing. Saves a <em>lot</em> of boilerplate.
    <ul>
      <li>If you’re using JQuery’s <code class="language-plaintext highlighter-rouge">.ajax()</code> function or the like, <a href="https://stackoverflow.com/a/21045034/8151">you must remember</a> to set <code class="language-plaintext highlighter-rouge">contentType</code> and <code class="language-plaintext highlighter-rouge">processData</code> to <code class="language-plaintext highlighter-rouge">false</code> or things won’t work properly.</li>
    </ul>
  </li>
  <li>When using the Google APIs (specifically the Sheets API, in this case), particularly when leveraging the <a href="https://github.com/google/google-api-nodejs-client">Node.js client</a>, using <a href="https://github.com/google/google-api-nodejs-client#using-jwt-service-tokens">JWT Service Tokens</a> is the best route forward. This took me entirely too long to figure out. It also took me a while to figure out that the service account created needed to be granted access explicitly.
<a href="#a902">#</a></li>
</ul>]]></content><author><name></name></author><summary type="html"><![CDATA[While thinking about trying to keep this up again I’ve bbeen puzzling about post tags. Currently these aren’t supported out-of-the box by Jekyll, and any plugins that might provide the functionality aren’t supported by the GitHub Pages Jekyll workflow, so I’d have to build my site locally and push the static files to the repo to use anything like that and I’m still not ready to do that. A couple of folks have documented how they went about handling it, though, notably:]]></summary></entry></feed>