<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Andrew Martin - Binary Sludge]]></title><description><![CDATA[dredging the digital quagmire]]></description><link>https://www.binarysludge.com/</link><generator>Ghost 0.11</generator><lastBuildDate>Sat, 17 May 2025 12:28:03 GMT</lastBuildDate><atom:link href="https://www.binarysludge.com/author/andrew-martin/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Talk: Assertion - or it Didn't Happen (in Cloud Networks) - CfgMgmtCamp, Feburary 2018]]></title><description><![CDATA[<p>Thanks to <a href="http://cfgmgmtcamp.eu/">CfgMgmtCamp</a> for having me, here are the slides for <a href="http://cfgmgmtcamp.eu/schedule/misc/ProveIt.html">Assertion - or it Didn't Happen (in Cloud Networks)</a>. </p>

<p><code>netassert</code> is a tool to invade network namespaces and test Kubernetes Network Policy - all the code for the demos and configuration is at <a href="https://github.com/controlplaneio/netassert">https://github.com/controlplaneio/netassert</a></p>

<p>Talk</p>]]></description><link>https://www.binarysludge.com/2018/02/05/assertion-or-it-didnt-happen-in-cloud-networks-cfgmgmtcamp-feburary-2018/</link><guid isPermaLink="false">75600cfc-ac49-4b5e-a7b5-6cec445e6b3d</guid><category><![CDATA[kubernetes]]></category><category><![CDATA[testing]]></category><category><![CDATA[talk]]></category><category><![CDATA[slides]]></category><category><![CDATA[devops]]></category><category><![CDATA[Unit Testing]]></category><category><![CDATA[linux]]></category><category><![CDATA[System Administration]]></category><category><![CDATA[AWS]]></category><category><![CDATA[cURL]]></category><category><![CDATA[Debugging]]></category><category><![CDATA[bash]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Mon, 05 Feb 2018 13:51:00 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="http://cfgmgmtcamp.eu/">CfgMgmtCamp</a> for having me, here are the slides for <a href="http://cfgmgmtcamp.eu/schedule/misc/ProveIt.html">Assertion - or it Didn't Happen (in Cloud Networks)</a>. </p>

<p><code>netassert</code> is a tool to invade network namespaces and test Kubernetes Network Policy - all the code for the demos and configuration is at <a href="https://github.com/controlplaneio/netassert">https://github.com/controlplaneio/netassert</a></p>

<p>Talk also available via <a href="https://drive.google.com/open?id=1Z6nZ1KF7_ayM3K7qNGL8g4Ar41Wh-NdN">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQmlJMvMORbhdEM3tDBDztr2n3fgNkp7UGQzOSD0MWdKEz6HW2J46D5lfECVXSog9_wQ4n_MKHw1TBk/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Talk: Meteor-Proof Infrastructure - BrisTech, January 2018]]></title><description><![CDATA[<p>Thanks to <a href="https://twitter.com/bristech">@BrisTech</a> for nursing me with beverages after suffering a mild knock on the head on the train from London! A great night with some scintillating chats afterwards.</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=105MkD9zGbSpvjz1luVTnLagPHeC7tP8K">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vR8qXAbWLw9oHP03TAGB9UHciaRuVF2sdpCRkJpyCG7bmgUazDxSdXrGrhnJYlEzzTtLXgFEJoKnli7/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2018/01/23/talk-meteor-proof-infrastructure-bristech-january-2018/</link><guid isPermaLink="false">7fab0c1b-a6cd-4fae-8cc5-611b4c55f097</guid><category><![CDATA[talk]]></category><category><![CDATA[devops]]></category><category><![CDATA[System Administration]]></category><category><![CDATA[testing]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[security]]></category><category><![CDATA[continuous-deployment]]></category><category><![CDATA[continuous-integration]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Tue, 23 Jan 2018 13:18:00 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="https://twitter.com/bristech">@BrisTech</a> for nursing me with beverages after suffering a mild knock on the head on the train from London! A great night with some scintillating chats afterwards.</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=105MkD9zGbSpvjz1luVTnLagPHeC7tP8K">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vR8qXAbWLw9oHP03TAGB9UHciaRuVF2sdpCRkJpyCG7bmgUazDxSdXrGrhnJYlEzzTtLXgFEJoKnli7/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - IPExpo Europe, October 2017]]></title><description><![CDATA[<p>Thanks to <a href="https://twitter.com/ipexpo">@IPExpo</a> for having me - plenty more to discover on <a href="https://www.disruptive.live/machina/">their website</a>.</p>

<p>Talk also available via <a href="https://drive.google.com/file/d/0B4ERfJ71fIQySHhvN1E3TW1yams/view">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vRDeiUNOqUqMxkX_NFOYcZJg9q0ddCVo5tisTpnAApe_qorOfb2ELfkH9XzYxKCN6OCycvqfYn1pxu-/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/10/04/talk-insecure-containers-continuous-defence-against-open-source-exploits-ipexpo-europe-october-2017/</link><guid isPermaLink="false">6a02b533-cdeb-4d7c-b184-a32d23a275d1</guid><category><![CDATA[devops]]></category><category><![CDATA[security]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[slides]]></category><category><![CDATA[testing]]></category><category><![CDATA[linux]]></category><category><![CDATA[system adminstration]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Wed, 04 Oct 2017 13:51:00 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="https://twitter.com/ipexpo">@IPExpo</a> for having me - plenty more to discover on <a href="https://www.disruptive.live/machina/">their website</a>.</p>

<p>Talk also available via <a href="https://drive.google.com/file/d/0B4ERfJ71fIQySHhvN1E3TW1yams/view">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vRDeiUNOqUqMxkX_NFOYcZJg9q0ddCVo5tisTpnAApe_qorOfb2ELfkH9XzYxKCN6OCycvqfYn1pxu-/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - DevOps Tooling Expo, July 2017]]></title><description><![CDATA[<p>Thanks to Amazic and the various interesting vendors for their support - the day comprised a raft of engaging talks pitching at Public Sector organisations.</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyT0ZTOV9QLXUzRmM">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vRYAOEHl8fmTThY0l1GpfruLlQI2Swmxjvs90M_9OW-O0w32jPnUBmLI8W5YRq3sOHMyXqGpl_8XlMB/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/07/19/talk-insecure-containers-continuous-defence-against-open-source-exploits-devops-tooling-expo-july-2017/</link><guid isPermaLink="false">30d5958f-66d9-459b-84b1-7b7c9492b135</guid><category><![CDATA[security]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[talk]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Wed, 19 Jul 2017 15:17:00 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to Amazic and the various interesting vendors for their support - the day comprised a raft of engaging talks pitching at Public Sector organisations.</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyT0ZTOV9QLXUzRmM">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vRYAOEHl8fmTThY0l1GpfruLlQI2Swmxjvs90M_9OW-O0w32jPnUBmLI8W5YRq3sOHMyXqGpl_8XlMB/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - All Hands On DevOps, June 2017]]></title><description><![CDATA[<p>Thanks to the <a href="http://www.thirdrepublic.com/">Third Republic</a> team for hosting <a href="https://www.meetup.com/AHODevOps/events/240211971/">All Hand On DevOps</a> this month. Despite the Amazon Prime beer woes it was a great success!</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyU3BLZ1VwRk83YUE">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1aKkMH011E8SI7W4NY6r5EOTeuR6fJLb56pciNdvpLSI/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/06/15/talk-insecure-containers-continuous-defence-against-open-source-exploits-all-hands-on-devops-june-2017/</link><guid isPermaLink="false">6b3e7861-45f6-4dca-9782-8063c961646b</guid><category><![CDATA[security]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[talk]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 15 Jun 2017 20:03:06 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to the <a href="http://www.thirdrepublic.com/">Third Republic</a> team for hosting <a href="https://www.meetup.com/AHODevOps/events/240211971/">All Hand On DevOps</a> this month. Despite the Amazon Prime beer woes it was a great success!</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyU3BLZ1VwRk83YUE">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1aKkMH011E8SI7W4NY6r5EOTeuR6fJLb56pciNdvpLSI/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - [ Contain ], June 2017]]></title><description><![CDATA[<p>Thanks to <a href="https://twitter.com/jetstackhq">Jetstack</a> for arranging the <a href="https://www.meetup.com//Contain/events/240176053/?showDescription=true">[ Contain ]</a> summer meetup. After two excellent talks I whizzed through this one a tad quickly - thanks to all present for their continued attention despite the pace!</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyLTRYVHl3bExDYm8">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1eaXWnok8SadUNHnjREC_MHY4ARX4q_rKofLEN0Kfir0/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/06/08/talk-insecure-containers-continuous-defence-against-open-source-exploits-contain-june-2017/</link><guid isPermaLink="false">8e6f91f7-21cd-48c9-9782-a9e2e071ae50</guid><category><![CDATA[talk]]></category><category><![CDATA[security]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 08 Jun 2017 11:23:15 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="https://twitter.com/jetstackhq">Jetstack</a> for arranging the <a href="https://www.meetup.com//Contain/events/240176053/?showDescription=true">[ Contain ]</a> summer meetup. After two excellent talks I whizzed through this one a tad quickly - thanks to all present for their continued attention despite the pace!</p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyLTRYVHl3bExDYm8">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1eaXWnok8SadUNHnjREC_MHY4ARX4q_rKofLEN0Kfir0/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[How To Restart Chrome (Without Using the Upgrade Relaunch Button)]]></title><description><![CDATA[<p>Need to restart Chrome to free memory or after a plugin installation?  </p>

<ol>  
    <li>Navigate to <code>chrome://restart</code></li>
</ol>

<p>Or...</p>

<ol>  
    <li>Navigate to <code>chrome://flags</code></li>
    <li>Open the console (<code>F12</code> on PC, <a href="https://developers.google.com/chrome-developer-tools/docs/console#opening_the_console">other systems</a>)</li>
    <li>Enter <code>restartBrowser();</code></li>
</ol>]]></description><link>https://www.binarysludge.com/2017/06/08/temp-slug-109/</link><guid isPermaLink="false">6f6d374f-b7cf-40c1-8e2b-3292654294dd</guid><category><![CDATA[system adminstration]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 08 Jun 2017 09:24:46 GMT</pubDate><content:encoded><![CDATA[<p>Need to restart Chrome to free memory or after a plugin installation?  </p>

<ol>  
    <li>Navigate to <code>chrome://restart</code></li>
</ol>

<p>Or...</p>

<ol>  
    <li>Navigate to <code>chrome://flags</code></li>
    <li>Open the console (<code>F12</code> on PC, <a href="https://developers.google.com/chrome-developer-tools/docs/console#opening_the_console">other systems</a>)</li>
    <li>Enter <code>restartBrowser();</code></li>
</ol>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - Docker Melbourne, May 2017]]></title><description><![CDATA[<p>Thanks to <a href="https://twitter.com/benitogriffin">Ben Griffin</a> for arranging a last minute <a href="https://www.meetup.com/Melbourne-Docker-User-Group/events/240289176/">Docker Melbourne</a>! </p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQycF80RHZVYlQxVDg">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1IdQS5mah334GdkmF2TxhLg588hkdaOtwgcIjrv_7Yys/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/05/31/untitled/</link><guid isPermaLink="false">5c99d987-308e-4059-aeb9-e02cc64ec068</guid><category><![CDATA[talk]]></category><category><![CDATA[security]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Wed, 31 May 2017 10:07:58 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="https://twitter.com/benitogriffin">Ben Griffin</a> for arranging a last minute <a href="https://www.meetup.com/Melbourne-Docker-User-Group/events/240289176/">Docker Melbourne</a>! </p>

<p>Talk also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQycF80RHZVYlQxVDg">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1IdQS5mah334GdkmF2TxhLg588hkdaOtwgcIjrv_7Yys/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Securing Docker Containers Workshop - Container Camp AU May 2017]]></title><description><![CDATA[<p>Thanks to the attendees of this workshop for not ripping it apart too hard despite a couple of last-minute fixes morphing into bugs! The whole workshop is available on <a href="https://katacoda.com/sublimino/courses/container-camp-docker-security-workshop">Katacoda</a>, and the slides are  also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyZXNKZUNhT3dLQVE">PDF</a>:</p>

<iframe src="https://docs.google.com/presentation/d/1d4m6fyf24LZ6EZNqXRNbecT0wshv0e070RjKQntT3jY/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/05/22/securing-docker-containers-workshop-container-camp-au-may-2017/</link><guid isPermaLink="false">cd823464-ba82-4bed-acf1-6045ca9c85e2</guid><category><![CDATA[workshop]]></category><category><![CDATA[docker]]></category><category><![CDATA[security]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Mon, 22 May 2017 02:19:32 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to the attendees of this workshop for not ripping it apart too hard despite a couple of last-minute fixes morphing into bugs! The whole workshop is available on <a href="https://katacoda.com/sublimino/courses/container-camp-docker-security-workshop">Katacoda</a>, and the slides are  also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyZXNKZUNhT3dLQVE">PDF</a>:</p>

<iframe src="https://docs.google.com/presentation/d/1d4m6fyf24LZ6EZNqXRNbecT0wshv0e070RjKQntT3jY/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Mastering the Shell (and many other applications) aka Readline Shortcuts]]></title><description><![CDATA[<p>These should all be committed to muscle memory by now, but some continue to elude me:</p>

<table xmlns="http://www.w3.org/1999/xhtml" id="readline-commands" summary="This table contains a lot of useful line editing commands for apps that use the readline library.">  
      <thead>
        <tr>
          <th style="background: inherit; border: none;"></th>
          <th id="th-emacs">Emacs keys</th>
          <th id="th-action">Action</th>
          <th id="th-scope">Scope</th>
          <th id="th-direction">Direction/Place</th>
        </tr>
      </thead>

      <tbody id="tgroup-move">
        <tr id="backward-char">
          <th rowspan="7" scope="row" class="action_group">Moving around</th>
          <td headers="th-emacs"><kbd>Ctrl-b</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one character</td>
          <td headers="th-direction">⇦ to the left</td>
        </tr>

        <tr id="forward-char">
          <td headers="th-emacs"><kbd>Ctrl-f</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one character</td>
          <td headers="th-direction">⇨ to the right</td>
        </tr>

        <tr id="backward-word" title="Move back to the start of the current or previous word. Words are composed of letters and digits.">
          <td headers="th-emacs"><kbd>Alt-b</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one word</td>
          <td headers="th-direction">⇦ to the</td></tr></tbody></table>]]></description><link>https://www.binarysludge.com/2017/05/13/readline-shortcuts/</link><guid isPermaLink="false">6f74487c-8028-47af-bf3e-7338bdeadda9</guid><category><![CDATA[bash]]></category><category><![CDATA[linux]]></category><category><![CDATA[system adminstration]]></category><category><![CDATA[devops]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Sat, 13 May 2017 16:33:35 GMT</pubDate><content:encoded><![CDATA[<p>These should all be committed to muscle memory by now, but some continue to elude me:</p>

<table xmlns="http://www.w3.org/1999/xhtml" id="readline-commands" summary="This table contains a lot of useful line editing commands for apps that use the readline library.">  
      <thead>
        <tr>
          <th style="background: inherit; border: none;"></th>
          <th id="th-emacs">Emacs keys</th>
          <th id="th-action">Action</th>
          <th id="th-scope">Scope</th>
          <th id="th-direction">Direction/Place</th>
        </tr>
      </thead>

      <tbody id="tgroup-move">
        <tr id="backward-char">
          <th rowspan="7" scope="row" class="action_group">Moving around</th>
          <td headers="th-emacs"><kbd>Ctrl-b</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one character</td>
          <td headers="th-direction">⇦ to the left</td>
        </tr>

        <tr id="forward-char">
          <td headers="th-emacs"><kbd>Ctrl-f</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one character</td>
          <td headers="th-direction">⇨ to the right</td>
        </tr>

        <tr id="backward-word" title="Move back to the start of the current or previous word. Words are composed of letters and digits.">
          <td headers="th-emacs"><kbd>Alt-b</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one word</td>
          <td headers="th-direction">⇦ to the left</td>
        </tr>

        <tr id="forward-word">
          <td headers="th-emacs"><kbd>Alt-f</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope">one word</td>
          <td headers="th-direction">⇨ to the right</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-a</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope"></td>
          <td headers="th-direction">⇤ to the start of the line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-e</kbd></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope"></td>
          <td headers="th-direction">⇥ to the end of the line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-x-x</kbd><sup><a title="Contributed by Lance Levine" href="http://blog.bigsmoke.us/2007/05/13/readline-exchange-point-and-mark-command">[1]</a></sup></td>
          <td headers="th-action">Move the cursor</td>
          <td headers="th-scope"></td>
          <td headers="th-direction">
            ⇤⇥ to the start, and to the end again<br>
          </td>
        </tr>
      </tbody>

      <tbody id="tgroup-cut-copy-paste">
        <tr>
          <th rowspan="8" scope="row" class="action_group">
          Cut, copy<br>and paste
          </th>
          <td headers="th-emacs"><kbd>Backspace</kbd></td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">the character</td>
          <td headers="th-direction">⇦ to the left of the cursor</td>
        </tr>

        <tr>
          <td headers="th-emacs">
            <kbd>DEL</kbd><br>
            <kbd>Ctrl-d</kbd>
          </td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">the character</td>
          <td headers="th-direction">underneath the cursor</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-u</kbd></td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">everything</td>
          <td headers="th-direction">⇤ from the cursor back to the line start</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-k</kbd></td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">everything</td>
          <td headers="th-direction">⇥ from the cursor to the end of the line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-d</kbd></td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">word</td>
          <td headers="th-direction">⇨ untill before the next word boundary</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-w</kbd></td>
          <td headers="th-action">Delete</td>
          <td headers="th-scope">word</td>
          <td headers="th-direction">⇦ untill after the previous word boundary</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-y</kbd></td>
          <td headers="th-action">Yank/Paste</td>
          <td headers="th-scope">prev. killed text</td>
          <td headers="th-direction">at the cursor position</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-y</kbd></td>
          <td headers="th-action">Yank/Paste</td>
          <td headers="th-scope">prev. prev. killed text</td>
          <td headers="th-direction">at the cursor position</td>
        </tr>
      </tbody>

      <tbody id="tgroup-history">
        <tr>
          <th rowspan="9" scope="row" class="action_group">History</th>
          <td headers="th-emacs"><kbd>Ctrl-p</kbd></td>
          <td headers="th-action">Move in history</td>
          <td headers="th-scope">one line</td>
          <td headers="th-direction">⇧ before this line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-n</kbd></td>
          <td headers="th-action">Move in history</td>
          <td headers="th-scope">one line</td>
          <td headers="th-direction">⇩ after this line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-&gt;</kbd></td>
          <td headers="th-action">Move in history</td>
          <td headers="th-scope">all the lines</td>
          <td headers="th-direction">⇩ to the line currently being entered</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-r</kbd></td>
          <td headers="th-action" colspan="2">Incrementally search the line history</td>
          <td headers="th-direction">⇧ backwardly</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-s</kbd><sup><a title="João Matos says: beware of freezing terminals!" href="http://blog.bigsmoke.us/2013/08/05/readline-shortcuts-ctrl-s-and-xoff">[2]</a></sup></td>
          <td headers="th-action" colspan="2">Incrementally search the line history</td>
          <td headers="th-direction">⇩ forwardly</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-J</kbd></td>
          <td headers="th-action" colspan="3">End an incremental search</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-G</kbd></td>
          <td headers="th-action" colspan="3">Abort an incremental search and restore the original line</td>
        </tr>

        <tr> 
          <td headers="th-emacs"><kbd>Alt-Ctrl-y</kbd></td>
          <td headers="th-action">Yank/Paste</td>
          <td headers="th-scope">arg. 1 of prev. cmnd</td>
          <td headers="th-direction">at the cursor position</td>
        </tr>

        <tr> 
          <td headers="th-emacs">
            <kbd>Alt-.</kbd><br>
            <kbd>Alt-_</kbd>
          </td>
          <td headers="th-action">Yank/Paste</td>
          <td headers="th-scope">last arg of prev. cmnd</td>
          <td headers="th-direction">at the cursor position</td>
        </tr>
      </tbody>

      <tbody id="tgroup-undo">
        <tr>
          <th rowspan="4" scope="row" class="action_group">Undo</th>
          <td headers="th-emacs">
            <kbd>Ctrl-_</kbd><br>
            <kbd>Ctrl-x</kbd><br>
            <kbd>Ctrl-u</kbd>
          </td>
          <td headers="th-action" colspan="3">Undo the last editing command; you can undo all the way back to an empty line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-r</kbd></td>
          <td headers="th-action" colspan="3">Undo all changes made to this line</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-l</kbd></td>
          <td headers="th-action" colspan="3">Clear the screen, reprinting the current line at the top</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Ctrl-l</kbd></td>
          <td headers="th-action" colspan="3">Clear the screen, reprinting the current line at the top</td>
        </tr>
      </tbody>

      <tbody id="tgroup-completion">
        <tr>
          <th rowspan="4" scope="row" class="action_group">Completion</th>
          <td headers="th-emacs"><kbd>TAB</kbd></td>
          <td headers="th-action" colspan="3">Auto-complete a name</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-/</kbd><sup><a title="Contributed by Luca Citi" href="http://blog.bigsmoke.us/2007/05/09/bypassing-smart-completion-in-bash">[3]</a></sup></td>
          <td headers="th-action" colspan="3">Auto-complete a name (without smart completion)</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-?</kbd></td>
          <td headers="th-action" colspan="3">List the possible completions of the preceeding text</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-*</kbd></td>
          <td headers="th-action" colspan="3">Insert all possible completions of the preceeding text</td>
        </tr>
      </tbody>

      <tbody id="tgroup-transpose">
        <tr>
          <th rowspan="2" scope="row" class="action_group">Transpose</th>
          <td headers="th-emacs"><kbd>Ctrl-t</kbd></td>
          <td headers="th-action">Transpose/drag</td>
          <td headers="th-scope">char. before the cursor</td>
          <td headers="th-direction">↷ over the character at the cursor</td>
        </tr>

        <tr>
          <td headers="th-emacs"><kbd>Alt-t</kbd></td>
          <td headers="th-action">Transpose/drag</td>
          <td headers="th-scope">word before the cursor</td>
          <td headers="th-direction">↷ over the word at/after the cursor</td>
        </tr>
      </tbody>

    </table>

<hr>

<p>source: <a href="http://www.bigsmoke.us/readline/shortcuts">http://www.bigsmoke.us/readline/shortcuts</a></p>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - Orchestrate 2017]]></title><description><![CDATA[<p>Sunny Barcelona was a marvellous location for <a href="https://ti.to/blended/orchestrate-2017/en">Orchestrate 2017</a>: this talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyclQ1aDh0OUZTaWM">PDF</a>;</p>

<iframe src="https://docs.google.com/presentation/d/1QBRwfC1fO4WULXvR651HXbiGQ7jORK-kzQ_pLT8Xycs/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/04/06/talk-insecure-containers-continuous-defence-against-open-source-exploits-orchestrate-2017/</link><guid isPermaLink="false">d123a7b0-66b0-4493-a68e-66ef1b3bd46a</guid><category><![CDATA[talk]]></category><category><![CDATA[security]]></category><category><![CDATA[devops]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 06 Apr 2017 11:43:52 GMT</pubDate><content:encoded><![CDATA[<p>Sunny Barcelona was a marvellous location for <a href="https://ti.to/blended/orchestrate-2017/en">Orchestrate 2017</a>: this talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyclQ1aDh0OUZTaWM">PDF</a>;</p>

<iframe src="https://docs.google.com/presentation/d/1QBRwfC1fO4WULXvR651HXbiGQ7jORK-kzQ_pLT8Xycs/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Video: Insecure Containers - Continuous Defence against Open Source Exploits - KubeCon 2017]]></title><description><![CDATA[<p>It was wonderful fun to speak at <a href="http://events.linuxfoundation.org/events/cloudnativecon-and-kubecon-europe">KubeCon 2017</a> in the company of so many luminaries of the container scene.</p>

<p>This talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers, and then goes into some detail about tools to install</p>]]></description><link>https://www.binarysludge.com/2017/03/30/talk-insecure-containers-continuous-defence-against-open-source-exploits-kubecon-2017/</link><guid isPermaLink="false">f2d10e5c-f9fd-42e7-ba94-3830db64992f</guid><category><![CDATA[talk]]></category><category><![CDATA[continuous-deployment]]></category><category><![CDATA[continuous-integration]]></category><category><![CDATA[security]]></category><category><![CDATA[open source]]></category><category><![CDATA[docker]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[video]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 30 Mar 2017 11:18:13 GMT</pubDate><content:encoded><![CDATA[<p>It was wonderful fun to speak at <a href="http://events.linuxfoundation.org/events/cloudnativecon-and-kubecon-europe">KubeCon 2017</a> in the company of so many luminaries of the container scene.</p>

<p>This talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers, and then goes into some detail about tools to install into continuous delivery pipelines.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQySDFSU3NieEd6bVk">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1Cf4oodyZm1pON_rP1RxlIiMNLvMhMUW9prru8LB6k04/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

<p><strong>EDIT 2016/04/06:</strong> video also available <a href="https://www.youtube.com/watch?v=MP09j2RdgPE">here</a></p>]]></content:encoded></item><item><title><![CDATA[Video: Insecure Containers - Continuous Defence against Open Source Exploits - PIPELINE 2017]]></title><description><![CDATA[<p>Thanks to <a href="https://web.pipelineconf.info/">PIPELINE</a> for hosting this years best CD conference (as ever!) - it was marvellous fun and (so far) very smoothly organised.</p>

<p>This talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers, and then goes into some detail about</p>]]></description><link>https://www.binarysludge.com/2017/03/21/talk-insecure-containers-continuous-defence-against-open-source-exploits-pipeline-2017/</link><guid isPermaLink="false">6c83e7d0-bb8e-495b-8b61-1636ee0ba8e8</guid><category><![CDATA[talk]]></category><category><![CDATA[continuous-deployment]]></category><category><![CDATA[continuous-integration]]></category><category><![CDATA[security]]></category><category><![CDATA[open source]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Tue, 21 Mar 2017 12:32:00 GMT</pubDate><content:encoded><![CDATA[<p>Thanks to <a href="https://web.pipelineconf.info/">PIPELINE</a> for hosting this years best CD conference (as ever!) - it was marvellous fun and (so far) very smoothly organised.</p>

<p>This talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers, and then goes into some detail about tools to install into continuous delivery pipelines.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyY1AxMXRETkVENDA">PDF</a>.</p>

<iframe src="https://docs.google.com/presentation/d/1azVwcop7eU8wNyzumH-8ysh2v8rNMXh-EcPnb6ZIuiA/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

<p><strong>EDIT 2016/03/30:</strong> video also available <a href="https://vimeo.com/209689238">here</a></p>]]></content:encoded></item><item><title><![CDATA[Talk: Insecure Containers? Continuous Defence against Open Source Exploits - Docker London 2017]]></title><description><![CDATA[<p>Docker London was good fun as always, this talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyUUgxWlNQN0hZS0k">PDF</a>;</p>

<iframe src="https://docs.google.com/presentation/d/1eWxH447C1CeJvNueGDJEgXBokaC9O3hVIehS14h83nU/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></description><link>https://www.binarysludge.com/2017/03/02/talk-insecure-containers-continuous-defence-against-open-source-exploits-docker-london-2017/</link><guid isPermaLink="false">da623215-5511-4a99-8485-69261bb64e44</guid><category><![CDATA[talk]]></category><category><![CDATA[security]]></category><category><![CDATA[Docker]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[devops]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Thu, 02 Mar 2017 12:54:20 GMT</pubDate><content:encoded><![CDATA[<p>Docker London was good fun as always, this talk concerns Docker security in the light of recent widely-available exploits, with a focus on web applications and containers.</p>

<p>It's also available via <a href="https://drive.google.com/open?id=0B4ERfJ71fIQyUUgxWlNQN0hZS0k">PDF</a>;</p>

<iframe src="https://docs.google.com/presentation/d/1eWxH447C1CeJvNueGDJEgXBokaC9O3hVIehS14h83nU/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>]]></content:encoded></item><item><title><![CDATA[Video: All Things Continuous at ffconf]]></title><description><![CDATA[<p>I had a blast presenting at <a href="https://2016.ffconf.org/">ffconf 2016</a> - thanks to Rem and Julie for making the entire experience pain-free and wonderful fun!</p>

<iframe src="https://docs.google.com/presentation/d/1SB_cgKPSdOY5X2RBsCJVt1jEYJz8OJrXY5THeZG7Ww0/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>  

<p></p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/7NU2v4hYXrY?list=PLXmT1r4krsTpDoGcdh1baZPIV6DtX9_rX" frameborder="0" allowfullscreen></iframe>]]></description><link>https://www.binarysludge.com/2016/11/11/talk-all-things-continuous-at-ffconf/</link><guid isPermaLink="false">25f12efb-53c6-4565-aaa3-c62fd2f19c88</guid><category><![CDATA[talk]]></category><category><![CDATA[continuous-deployment]]></category><category><![CDATA[devops]]></category><category><![CDATA[video]]></category><dc:creator><![CDATA[Andrew Martin]]></dc:creator><pubDate>Fri, 11 Nov 2016 14:59:10 GMT</pubDate><content:encoded><![CDATA[<p>I had a blast presenting at <a href="https://2016.ffconf.org/">ffconf 2016</a> - thanks to Rem and Julie for making the entire experience pain-free and wonderful fun!</p>

<iframe src="https://docs.google.com/presentation/d/1SB_cgKPSdOY5X2RBsCJVt1jEYJz8OJrXY5THeZG7Ww0/embed?start=false&loop=false&delayms=3000" frameborder="0" width="809" height="485" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>  

<p></p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/7NU2v4hYXrY?list=PLXmT1r4krsTpDoGcdh1baZPIV6DtX9_rX" frameborder="0" allowfullscreen></iframe>]]></content:encoded></item></channel></rss>