CINXE.COM
Kyle Rankin | Linux Journal
<!DOCTYPE html> <html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# " class="no-js wf-loading"> <head> <meta charset="utf-8" /> <meta name="Generator" content="Drupal 9 (https://www.drupal.org)" /> <meta name="MobileOptimized" content="width" /> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="icon" href="/themes/linuxjournal/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="canonical" href="https://www.linuxjournal.com/users/kyle-rankin" /> <link rel="shortlink" href="https://www.linuxjournal.com/user/1002206" /> <title>Kyle Rankin | Linux Journal</title> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/align.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/fieldgroup.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/container-inline.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/clearfix.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/details.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/hidden.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/item-list.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/js.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/nowrap.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/position-container.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/progress.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/reset-appearance.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/resize.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/sticky-header.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-counter.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-report-counters.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/system-status-report-general-info.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/tablesort.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/system/css/components/tree-child.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/poll/css/poll.base.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/poll/css/poll.theme.css?smwnh4" /> <link rel="stylesheet" media="all" href="/core/modules/views/css/views.module.css?smwnh4" /> <link rel="stylesheet" media="all" href="/modules/contrib/webform/modules/webform_bootstrap/css/webform_bootstrap.css?smwnh4" /> <link rel="stylesheet" media="all" href="/libraries/shariff/shariff.complete.css?smwnh4" /> <link rel="stylesheet" media="all" href="/themes/linuxjournal/css/style.css?smwnh4" /> <link rel="stylesheet" media="all" href="/themes/linuxjournal/css/fonts.css?smwnh4" /> <!-- <script defer src="https://use.fontawesome.com/releases/v5.0.9/js/all.js" integrity="sha384-8iPTk2s/jMVj81dnzb/iFR2sdA7u06vHJyyLlAd4snFpCl/SnyUjRrbdJsw1pGIl" crossorigin="anonymous"></script>--> <script> // Non-blocking webfonts. (function iife() { 'use strict'; // JS is able to start executing. document.documentElement.classList.remove('no-js'); // Optimization for Repeat Views // Stop early for repeat views that have already cached fonts. if (sessionStorage.fontsLoadedLateef && sessionStorage.fontsLoadedOpensans /* && sessionStorage.fontsLoadedNEWFONT */) { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-opensans'); document.documentElement.classList.add('wf-lateef'); // document.documentElement.classList.add('wf-NEWFONT'); return; } // Inlined Font Face Observer script + Promise polyfill. /*! Font Face Observer v2.0.13 - © Bram Stein. License: BSD-3-Clause */ (function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}} function r(a,b){if(a.a==p){if(b==a)throw new TypeError;a.a=1;a.b=b;v(a)}}function v(a){l(function(){if(a.a!=p)for(;a.f.length;){var b=a.f.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0==a.a?"function"==typeof c?e(c.call(void 0,a.b)):e(a.b):1==a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(h){b(h)}}})}n.prototype.g=function(a){return this.c(void 0,a)};n.prototype.c=function(a,b){var c=this;return new n(function(d,e){c.f.push([a,b,d,e]);v(c)})}; function w(a){return new n(function(b,c){function d(c){return function(d){h[c]=d;e+=1;e==a.length&&b(h)}}var e=0,h=[];0==a.length&&b(h);for(var k=0;k<a.length;k+=1)u(a[k]).c(d(k),c)})}function x(a){return new n(function(b,c){for(var d=0;d<a.length;d+=1)u(a[d]).c(b,c)})};window.Promise||(window.Promise=n,window.Promise.resolve=u,window.Promise.reject=t,window.Promise.race=x,window.Promise.all=w,window.Promise.prototype.then=n.prototype.c,window.Promise.prototype["catch"]=n.prototype.g);}()); (function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function r(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;"; this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)} function t(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function y(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function z(a,b){function c(){var a=k;y(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);y(a)};function A(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var B=null,C=null,E=null,F=null;function G(){if(null===C)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);C=!!a&&603>parseInt(a[1],10)}else C=!1;return C}function J(){null===F&&(F=!!document.fonts);return F} function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} A.prototype.load=function(a,b){var c=this,k=a||"BESbswy",q=0,D=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=D?b():document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},function(){b()})}e()}),N=new Promise(function(a,c){q=setTimeout(c,D)});Promise.race([N,M]).then(function(){clearTimeout(q);a(c)},function(){b(c)})}else m(function(){function u(){var b;if(b=-1!= f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===B&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),B=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=B&&(f==v&&g==v&&h==v||f==w&&g==w&&h==w||f==x&&g==x&&h==x)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(q),a(c))}function I(){if((new Date).getTime()-H>=D)d.parentNode&&d.parentNode.removeChild(d),b(c);else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth, g=n.a.offsetWidth,h=p.a.offsetWidth,u();q=setTimeout(I,50)}}var e=new r(k),n=new r(k),p=new r(k),f=-1,g=-1,h=-1,v=-1,w=-1,x=-1,d=document.createElement("div");d.dir="ltr";t(e,L(c,"sans-serif"));t(n,L(c,"serif"));t(p,L(c,"monospace"));d.appendChild(e.a);d.appendChild(n.a);d.appendChild(p.a);document.body.appendChild(d);v=e.a.offsetWidth;w=n.a.offsetWidth;x=p.a.offsetWidth;I();z(e,function(a){f=a;u()});t(e,L(c,'"'+c.family+'",sans-serif'));z(n,function(a){g=a;u()});t(n,L(c,'"'+c.family+'",serif')); z(p,function(a){h=a;u()});t(p,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=A:(window.FontFaceObserver=A,window.FontFaceObserver.prototype.load=A.prototype.load);}()); // Load and observe Lateef var Lateef = new FontFaceObserver('Lateef', {weight: 400}); Promise.all([Lateef.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-lateef'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedLateef = true; }); // Load and observe Open Sans var os300 = new FontFaceObserver('Open Sans', {weight: 300}); var os400 = new FontFaceObserver('Open Sans', {weight: 400}); Promise.all([os300.load(), os400.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-opensans'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedOpensans = true; }); // Load and observe NEWFONT /* var NEWFONT = new FontFaceObserver('NEWFONT', {weight: 400}); Promise.all([NEWFONT.load()]).then(function() { document.documentElement.classList.remove('wf-loading'); document.documentElement.classList.add('wf-NEWFONT'); // Optimization for Repeat Views // Set a flag in localstorage so repeat views can skip processing FFO. sessionStorage.fontsLoadedNEWFONT = true; }); */ })(); </script> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <script src=https://slashdot.org/country.js></script> <script src="/themes/linuxjournal/js/ada.js"></script> <script src="/themes/linuxjournal/js/accessibility.js"></script> <script>window.addEventListener('load', function() { new Accessibility(); });</script> <script src="//a.fsdn.com/con/js/sftheme/cmp2.js"></script> <link rel="stylesheet" href="//a.fsdn.com/con/css/sftheme/sandiego/cmp.css" type="text/css"> <link rel="stylesheet" href="/themes/linuxjournal/css/ccpa.css" type="text/css"> <script>window.bizx.cmp.init({ geo: window });</script> <script> function bm_trace() { (function (w,d,t) { _ml = w._ml || {}; _ml.eid = '771'; var s, cd, tag; s = d.getElementsByTagName(t)[0]; cd = new Date(); tag = d.createElement(t); tag.async = 1; tag.src = 'https://ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth(); s.parentNode.insertBefore(tag, s); })(window,document,'script'); } bizx.cmp.ifConsent('', ['all', 'bombora'],bm_trace); </script> </head> <body class="path-user has-glyphicons"> <a href="#main-content" class="visually-hidden focusable skip-link"> Skip to main content </a> <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas> <div id="wrap"> <div class="leader-wrapper" id="leader-wrapper"> </div> <div class="brand-wrapper" id="brand-wrapper"> <div class="brand container"> <div class="region region-brand"> <a class="logo navbar-btn" href="/" title="Home" rel="home"> <h1><img src="/themes/linuxjournal/images/ljlogo.png" alt="Linux Journal" /></h1> </a> <section id="block-topbannernearlogo" class="block block-block-content block-block-contenta8e75a3d-967c-416d-8944-4015d1f90a84 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><a href="https://www.windriver.com/products/elxr-pro?utm_source=ba&utm_medium=pa&utm_campaign=ba-dg-amer-awa-vsmf-eLxrProLau_lin_dis_09172024"><img alt="Windriver eLxrPro" data-entity-type="file" data-entity-uuid="8ba04368-7803-4329-a196-dc1ea780ec2a" src="/sites/default/files/inline-images/WindRiver-eLxrPro_0.png" width="728" height="90" loading="lazy" /></a></div> </section> </div> </div> <div class="header-wrapper"> <header class="navbar navbar-default container" id="navbar" role="banner"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <div id="navbar-collapse" class="navbar-collapse collapse"> <div class="region region-navigation-collapsible"> <section id="block-linuxjournal-main-menu" class="block block-system block-system-menu-blockmain clearfix navbar__menu col-xs-12 col-sm-8"> <ul class="menu menu--main nav navbar-nav"> <li class="expanded dropdown first"> <a href="/" class="dropdown-toggle" data-toggle="dropdown" data-drupal-link-system-path="<front>">Topics+ <span class="caret"></span></a> <ul class="dropdown-menu"> <li class="first"> <a href="/tag/cloud">Cloud</a> </li> <li> <a href="/tag/containers" data-drupal-link-system-path="taxonomy/term/978">Containers</a> </li> <li> <a href="/tag/desktop">Desktop</a> </li> <li> <a href="/tag/kernel" data-drupal-link-system-path="taxonomy/term/662">Kernel</a> </li> <li> <a href="/tag/mobile">Mobile</a> </li> <li> <a href="/tag/networking">Networking</a> </li> <li> <a href="/tag/privacy">Privacy</a> </li> <li> <a href="/tag/programming">Programming</a> </li> <li> <a href="/tag/security" data-drupal-link-system-path="taxonomy/term/31">Security</a> </li> <li> <a href="/tag/servers">Servers</a> </li> <li class="last"> <a href="/tag/sysadmin" data-drupal-link-system-path="taxonomy/term/21">SysAdmin</a> </li> </ul> </li> <li> <a href="/news" data-drupal-link-system-path="news">News</a> </li> <li class="last"> <a href="/books" data-drupal-link-system-path="books">eBooks</a> </li> </ul> </section> <section class="search-block-form block block-search block-search-form-block clearfix navbar__search col-xs-12 col-sm-4 col-md-4 col-md-offset-0" data-drupal-selector="search-block-form" id="block-linuxjournal-search" role="search"> <h2 class="block-title sr-only">Search</h2> <form action="/search/node" method="get" id="search-block-form" accept-charset="UTF-8"> <div class="form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group"> <label for="edit-keys" class="control-label sr-only">Search</label> <div class="input-group"><input title="Enter the terms you wish to search for." data-drupal-selector="edit-keys" class="form-search form-control" placeholder="Search" type="search" id="edit-keys" name="keys" value="" size="15" maxlength="128" /><span class="input-group-btn"><button type="submit" value="Search" class="button js-form-submit form-submit btn-primary btn icon-only" name=""><span class="sr-only">Search</span><span class="icon glyphicon glyphicon-search" aria-hidden="true"></span></button></span></div> <div id="edit-keys--description" class="description help-block"> Enter the terms you wish to search for. </div> </div> <div class="form-actions form-group js-form-wrapper form-wrapper" data-drupal-selector="edit-actions" id="edit-actions"></div> </form> </section> </div> </div> <div class="navbar-header"> <div class="region region-navigation"> <section id="block-mobilenavigation" class="block block-system block-system-menu-blockmenu-mobile-navbar clearfix col-xs-12 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-0 navbar__menu navbar__mobilenavigation"> <ul class="menu menu--menu-mobile-navbar nav"> <li class="first"> <a href="/news" data-drupal-link-system-path="news">News</a> </li> <li> <a href="/popular" data-drupal-link-system-path="popular">Popular</a> </li> <li class="last"> <a href="/recent" data-drupal-link-system-path="recent">Recent</a> </li> </ul> </section> </div> </div> </header> </div> </div> <div role="main" class="main-container container js-quickedit-main-content" id="main"> <div class="row"> <section class="col-sm-12"> <div class="highlighted"> <div class="region region-highlighted"> <div data-drupal-messages-fallback class="hidden"></div> </div> </div> <a id="main-content"></a> <div class="region region-content"> <h1 class="page-header">Kyle Rankin</h1> <div class="row bs-1col-stacked user user--type-user user--view-mode-full"> <div class="col-sm-12 bs-region bs-region--top"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/users/kyle-rankin" hreflang="en"><img loading="lazy" src="/sites/default/files/pictures/picture-1002206.jpg" width="85" height="84" alt="Profile picture for user Kyle Rankin" typeof="foaf:Image" class="img-responsive" /> </a> </div> <div class="field field--name-field-author-bio field--type-text-long field--label-hidden field--item"><p> Kyle Rankin is a Tech Editor and columnist at <em>Linux Journal</em> and the Chief Security Officer at Purism. He is the author of <em>Linux Hardening in Hostile Networks</em>, <em>DevOps Troubleshooting</em>, <em>The Official Ubuntu Server Book</em>, <em>Knoppix Hacks</em>, <em>Knoppix Pocket Reference</em>, <em>Linux Multimedia Hacks</em> and <em>Ubuntu Hacks</em>, and also a contributor to a number of other O'Reilly books. Rankin speaks frequently on security and open-source software including at BsidesLV, O'Reilly Security Conference, OSCON, SCALE, CactusCon, Linux World Expo and Penguicon. You can follow him at @kylerankin. </p></div> </div> <div class="col-sm-12 bs-region bs-region--main"> <div class="field field--name-dynamic-block-fielduser-author-content field--type-ds field--label-above"> <div class="field--label">Articles by Kyle Rankin</div> <div class="field--item"><div class="views-element-container form-group"><div class="view view-author-content view-id-author_content view-display-id-block_1 js-view-dom-id-dfe64adcd31a6a1fee68fe22584583178644b9ef315e53383dbfa56342aeecc8"> <div class="view-content"> <div class="views-view-grid horizontal cols-2 clearfix"> <div class="views-row clearfix row-1"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/linux-journal-ceases-publication-awkward-goodbye" hreflang="en">Linux Journal Ceases Publication: An Awkward Goodbye</a></span></div><div class="views-field views-field-created"><span class="field-content">August 7, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/rv-offsite-backup-update" hreflang="en">RV Offsite Backup Update</a></span></div><div class="views-field views-field-created"><span class="field-content">August 7, 2019</span></div></div> </div> <div class="views-row clearfix row-2"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/my-favorite-infrastructure" hreflang="en">My Favorite Infrastructure</a></span></div><div class="views-field views-field-created"><span class="field-content">August 7, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/what-really-ircs-me-mastodon" hreflang="en">What Really IRCs Me: Mastodon</a></span></div><div class="views-field views-field-created"><span class="field-content">July 9, 2019</span></div></div> </div> <div class="views-row clearfix row-3"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/lessons-vendor-lock-google-and-huawei" hreflang="en">Lessons in Vendor Lock-in: Google and Huawei</a></span></div><div class="views-field views-field-created"><span class="field-content">July 5, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/filesystem-hierarchy-standard" hreflang="en">Filesystem Hierarchy Standard</a></span></div><div class="views-field views-field-created"><span class="field-content">June 17, 2019</span></div></div> </div> <div class="views-row clearfix row-4"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/why-smart-cards-are-smart" hreflang="en">Why Smart Cards Are Smart</a></span></div><div class="views-field views-field-created"><span class="field-content">June 12, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/digital-will-part-i-requirements" hreflang="en">Digital Will, Part I: Requirements</a></span></div><div class="views-field views-field-created"><span class="field-content">June 7, 2019</span></div></div> </div> <div class="views-row clearfix row-5"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/signing-git-commits" hreflang="en">Signing Git Commits</a></span></div><div class="views-field views-field-created"><span class="field-content">May 16, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/what-linux-journals-resurrection-taught-me-about-foss-community" hreflang="en">What Linux Journal's Resurrection Taught Me about the FOSS Community</a></span></div><div class="views-field views-field-created"><span class="field-content">April 3, 2019</span></div></div> </div> <div class="views-row clearfix row-6"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/downsides-raspberry-pi-alternatives" hreflang="en">Downsides to Raspberry Pi Alternatives</a></span></div><div class="views-field views-field-created"><span class="field-content">March 27, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/lessons-vendor-lock-3d-printers" hreflang="en">Lessons in Vendor Lock-in: 3D Printers</a></span></div><div class="views-field views-field-created"><span class="field-content">March 19, 2019</span></div></div> </div> <div class="views-row clearfix row-7"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/tamper-evident-boot-heads" hreflang="en">Tamper-Evident Boot with Heads</a></span></div><div class="views-field views-field-created"><span class="field-content">January 31, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/put-down-pipe" hreflang="en">Command-Line Tip: Put Down the Pipe</a></span></div><div class="views-field views-field-created"><span class="field-content">January 22, 2019</span></div></div> </div> <div class="views-row clearfix row-8"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/some-thoughts-open-core" hreflang="en">Some Thoughts on Open Core</a></span></div><div class="views-field views-field-created"><span class="field-content">January 18, 2019</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/back-basics-sort-and-uniq" hreflang="en">Back to Basics: Sort and Uniq</a></span></div><div class="views-field views-field-created"><span class="field-content">January 8, 2019</span></div></div> </div> <div class="views-row clearfix row-9"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/lessons-vendor-lock-messaging" hreflang="en">Lessons in Vendor Lock-in: Messaging</a></span></div><div class="views-field views-field-created"><span class="field-content">December 19, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/lessons-vendor-lock-shaving" hreflang="en">Lessons in Vendor Lock-in: Shaving</a></span></div><div class="views-field views-field-created"><span class="field-content">December 12, 2018</span></div></div> </div> <div class="views-row clearfix row-10"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/weekend-reading-sysadmin-101" hreflang="en">Weekend Reading: Sysadmin 101</a></span></div><div class="views-field views-field-created"><span class="field-content">December 8, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/travel-laptop-tips-practice" hreflang="en">Travel Laptop Tips in Practice</a></span></div><div class="views-field views-field-created"><span class="field-content">November 21, 2018</span></div></div> </div> <div class="views-row clearfix row-11"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/schedule-one-time-commands-unix-tool" hreflang="en">Schedule One-Time Commands with the UNIX at Tool</a></span></div><div class="views-field views-field-created"><span class="field-content">November 19, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/video/freenode-live-2018-kyle-rankin-death-and-resurrection-linux-journal" hreflang="en">freenode #live 2018 - Kyle Rankin - The death and resurrection of Linux Journal</a></span></div><div class="views-field views-field-created"><span class="field-content">November 5, 2018</span></div></div> </div> <div class="views-row clearfix row-12"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/papas-got-brand-new-nas-software" hreflang="en">Papa's Got a Brand New NAS: the Software</a></span></div><div class="views-field views-field-created"><span class="field-content">October 29, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/stop-killing-your-cattle" hreflang="en">Stop Killing Your Cattle: Server Infrastructure Advice</a></span></div><div class="views-field views-field-created"><span class="field-content">September 11, 2018</span></div></div> </div> <div class="views-row clearfix row-13"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/edit-pdfs-xournal" hreflang="en">Edit PDFs with Xournal</a></span></div><div class="views-field views-field-created"><span class="field-content">September 6, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/two-portable-diy-retro-gaming-consoles" hreflang="en">Two Portable DIY Retro Gaming Consoles</a></span></div><div class="views-field views-field-created"><span class="field-content">September 3, 2018</span></div></div> </div> <div class="views-row clearfix row-14"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/3d-printed-firearms-are-blowing" hreflang="en">3D-Printed Firearms Are Blowing Up</a></span></div><div class="views-field views-field-created"><span class="field-content">August 28, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/cleaning-your-inbox-mutt" hreflang="en">Cleaning Your Inbox with Mutt</a></span></div><div class="views-field views-field-created"><span class="field-content">August 28, 2018</span></div></div> </div> <div class="views-row clearfix row-15"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/copy-and-paste-screen" hreflang="en">Copy and Paste in Screen</a></span></div><div class="views-field views-field-created"><span class="field-content">August 23, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/telecommuting-tips" hreflang="en">Telecommuting Tips</a></span></div><div class="views-field views-field-created"><span class="field-content">August 10, 2018</span></div></div> </div> <div class="views-row clearfix row-16"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/geeklife-weboost-4g-x-otr-review" hreflang="en">#geeklife: weBoost 4G-X OTR Review</a></span></div><div class="views-field views-field-created"><span class="field-content">August 7, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/what-really-ircs-me-slack" hreflang="en">What Really IRCs Me: Slack</a></span></div><div class="views-field views-field-created"><span class="field-content">July 30, 2018</span></div></div> </div> <div class="views-row clearfix row-17"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/progress-your-image" hreflang="en">Progress with Your Image</a></span></div><div class="views-field views-field-created"><span class="field-content">July 26, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/rest-encryption" hreflang="en">At Rest Encryption</a></span></div><div class="views-field views-field-created"><span class="field-content">July 18, 2018</span></div></div> </div> <div class="views-row clearfix row-18"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/diy-rv-offsite-backup-and-media-server" hreflang="en">DIY RV Offsite Backup and Media Server</a></span></div><div class="views-field views-field-created"><span class="field-content">July 10, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/piventory-lj-tech-editors-personal-stash-raspberry-pis-and-other-single-board-computers" hreflang="en">Piventory: LJ Tech Editor's Personal Stash of Raspberry Pis and Other Single-Board Computers</a></span></div><div class="views-field views-field-created"><span class="field-content">June 14, 2018</span></div></div> </div> <div class="views-row clearfix row-19"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/why-you-should-do-it-yourself" hreflang="en">Why You Should Do It Yourself</a></span></div><div class="views-field views-field-created"><span class="field-content">May 31, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/privacy-plugins" hreflang="en">Privacy Plugins</a></span></div><div class="views-field views-field-created"><span class="field-content">May 28, 2018</span></div></div> </div> <div class="views-row clearfix row-20"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/tor-hidden-services" hreflang="en">Tor Hidden Services</a></span></div><div class="views-field views-field-created"><span class="field-content">May 23, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/facebook-compartmentalization" hreflang="en">Facebook Compartmentalization</a></span></div><div class="views-field views-field-created"><span class="field-content">April 12, 2018</span></div></div> </div> <div class="views-row clearfix row-21"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/simple-cloud-hardening" hreflang="und">Simple Cloud Hardening</a></span></div><div class="views-field views-field-created"><span class="field-content">April 10, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/vendor-lock-now-cloud" hreflang="en">Vendor Lock-in: Now in the Cloud!</a></span></div><div class="views-field views-field-created"><span class="field-content">April 1, 2018</span></div></div> </div> <div class="views-row clearfix row-22"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/whats-new-qubes-4" hreflang="und">What's New in Qubes 4</a></span></div><div class="views-field views-field-created"><span class="field-content">March 1, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/qubes-desktop-tips" hreflang="und">Qubes Desktop Tips</a></span></div><div class="views-field views-field-created"><span class="field-content">February 26, 2018</span></div></div> </div> <div class="views-row clearfix row-23"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/shorter-commands" hreflang="und">Shorter Commands</a></span></div><div class="views-field views-field-created"><span class="field-content">February 21, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/learning-it-fundamentals" hreflang="und">Learning IT Fundamentals</a></span></div><div class="views-field views-field-created"><span class="field-content">February 17, 2018</span></div></div> </div> <div class="views-row clearfix row-24"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/refactor-factor" hreflang="und">The Refactor Factor</a></span></div><div class="views-field views-field-created"><span class="field-content">January 31, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/advice-buying-and-setting-laptops-when-youre-traveling-or-call" hreflang="und">Advice for Buying and Setting Up Laptops When You're Traveling or On-Call</a></span></div><div class="views-field views-field-created"><span class="field-content">January 28, 2018</span></div></div> </div> <div class="views-row clearfix row-25"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/raspberry-pi-alternatives" hreflang="und">Raspberry Pi Alternatives</a></span></div><div class="views-field views-field-created"><span class="field-content">January 22, 2018</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/hack-and-preparing-vacation" hreflang="und">Sysadmin Tips on Preparing for Vacation</a></span></div><div class="views-field views-field-created"><span class="field-content">January 11, 2018</span></div></div> </div> <div class="views-row clearfix row-26"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/so-long-and-thanks-all-bash" hreflang="und">So Long, and Thanks for All the Bash</a></span></div><div class="views-field views-field-created"><span class="field-content">December 1, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/banana-backups" hreflang="und">Banana Backups</a></span></div><div class="views-field views-field-created"><span class="field-content">November 21, 2017</span></div></div> </div> <div class="views-row clearfix row-27"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/sysadmin-101-patch-management" hreflang="und">Sysadmin 101: Patch Management</a></span></div><div class="views-field views-field-created"><span class="field-content">November 14, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/update-tickets-command-line" hreflang="und">Update Tickets from the Command Line</a></span></div><div class="views-field views-field-created"><span class="field-content">October 19, 2017</span></div></div> </div> <div class="views-row clearfix row-28"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/sysadmin-101-leveling" hreflang="und">Sysadmin 101: Leveling Up</a></span></div><div class="views-field views-field-created"><span class="field-content">September 21, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/sysadmin-101-ticketing" hreflang="und">Sysadmin 101: Ticketing</a></span></div><div class="views-field views-field-created"><span class="field-content">August 29, 2017</span></div></div> </div> <div class="views-row clearfix row-29"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/sysadmin-101-automation" hreflang="und">Sysadmin 101: Automation</a></span></div><div class="views-field views-field-created"><span class="field-content">August 1, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/sysadmin-101-alerting" hreflang="und">Sysadmin 101: Alerting</a></span></div><div class="views-field views-field-created"><span class="field-content">July 11, 2017</span></div></div> </div> <div class="views-row clearfix row-30"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/orchestration-mcollective-part-ii" hreflang="und">Orchestration with MCollective, Part II</a></span></div><div class="views-field views-field-created"><span class="field-content">June 8, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/orchestration-mcollective" hreflang="und">Orchestration with MCollective</a></span></div><div class="views-field views-field-created"><span class="field-content">May 11, 2017</span></div></div> </div> <div class="views-row clearfix row-31"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/simple-server-hardening-part-ii" hreflang="und">Simple Server Hardening, Part II</a></span></div><div class="views-field views-field-created"><span class="field-content">April 11, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/preseeding-full-disk-encryption" hreflang="und">Preseeding Full Disk Encryption</a></span></div><div class="views-field views-field-created"><span class="field-content">March 16, 2017</span></div></div> </div> <div class="views-row clearfix row-32"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/grub-boot-iso" hreflang="und">GRUB Boot from ISO</a></span></div><div class="views-field views-field-created"><span class="field-content">March 14, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/two-factors-are-better-one" hreflang="und">Two Factors Are Better Than One</a></span></div><div class="views-field views-field-created"><span class="field-content">March 9, 2017</span></div></div> </div> <div class="views-row clearfix row-33"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/flash-roms-raspberry-pi" hreflang="und">Flash ROMs with a Raspberry Pi</a></span></div><div class="views-field views-field-created"><span class="field-content">March 6, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secret-agent-man" hreflang="und">Secret Agent Man</a></span></div><div class="views-field views-field-created"><span class="field-content">February 28, 2017</span></div></div> </div> <div class="views-row clearfix row-34"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/own-your-dns-data" hreflang="und">Own Your DNS Data</a></span></div><div class="views-field views-field-created"><span class="field-content">February 16, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/simple-server-hardening" hreflang="und">Simple Server Hardening</a></span></div><div class="views-field views-field-created"><span class="field-content">February 14, 2017</span></div></div> </div> <div class="views-row clearfix row-35"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/papas-got-brand-new-nas" hreflang="und">Papa's Got a Brand New NAS</a></span></div><div class="views-field views-field-created"><span class="field-content">January 12, 2017</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-desktops-qubes-extra-protection" hreflang="und">Secure Desktops with Qubes: Extra Protection</a></span></div><div class="views-field views-field-created"><span class="field-content">December 15, 2016</span></div></div> </div> <div class="views-row clearfix row-36"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-desktops-qubes-compartmentalization" hreflang="und">Secure Desktops with Qubes: Compartmentalization</a></span></div><div class="views-field views-field-created"><span class="field-content">October 13, 2016</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-desktops-qubes-installation" hreflang="und">Secure Desktops with Qubes: Installation</a></span></div><div class="views-field views-field-created"><span class="field-content">May 28, 2016</span></div></div> </div> <div class="views-row clearfix row-37"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-desktops-qubes-introduction" hreflang="und">Secure Desktops with Qubes: Introduction</a></span></div><div class="views-field views-field-created"><span class="field-content">May 27, 2016</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/aws-ec2-vpc-cli" hreflang="und">AWS EC2 VPC CLI</a></span></div><div class="views-field views-field-created"><span class="field-content">March 28, 2016</span></div></div> </div> <div class="views-row clearfix row-38"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/whats-new-3d-printing-part-iv-octoprint" hreflang="und">What's New in 3D Printing, Part IV: OctoPrint</a></span></div><div class="views-field views-field-created"><span class="field-content">February 24, 2016</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/whats-new-3d-printing-part-iii-software" hreflang="und">What's New in 3D Printing, Part III: the Software</a></span></div><div class="views-field views-field-created"><span class="field-content">February 4, 2016</span></div></div> </div> <div class="views-row clearfix row-39"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/whats-new-3d-printing-part-ii-hardware" hreflang="und">What's New in 3D Printing, Part II: the Hardware</a></span></div><div class="views-field views-field-created"><span class="field-content">January 20, 2016</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/whats-new-3d-printing-part-i-introduction" hreflang="und">What's New in 3D Printing, Part I: Introduction</a></span></div><div class="views-field views-field-created"><span class="field-content">December 23, 2015</span></div></div> </div> <div class="views-row clearfix row-40"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/libreboot-x60-part-ii-installation" hreflang="und">Libreboot on an x60, Part II: the Installation</a></span></div><div class="views-field views-field-created"><span class="field-content">October 28, 2015</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/libreboot-x60-part-i-setup" hreflang="und">Libreboot on an X60, Part I: the Setup</a></span></div><div class="views-field views-field-created"><span class="field-content">September 28, 2015</span></div></div> </div> <div class="views-row clearfix row-41"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-server-deployments-hostile-territory-part-ii" hreflang="und">Secure Server Deployments in Hostile Territory, Part II</a></span></div><div class="views-field views-field-created"><span class="field-content">July 29, 2015</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/purism-librem-13-review" hreflang="und">Purism Librem 13 Review</a></span></div><div class="views-field views-field-created"><span class="field-content">July 10, 2015</span></div></div> </div> <div class="views-row clearfix row-42"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/secure-server-deployments-hostile-territory" hreflang="und">Secure Server Deployments in Hostile Territory</a></span></div><div class="views-field views-field-created"><span class="field-content">June 25, 2015</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/dr-hjkl-command-line" hreflang="und">Dr Hjkl on the Command Line</a></span></div><div class="views-field views-field-created"><span class="field-content">May 21, 2015</span></div></div> </div> <div class="views-row clearfix row-43"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/libreboot-x60-part-iii-modify-boot-menu" hreflang="und">Libreboot on an X60, Part III: Modify the Boot Menu</a></span></div><div class="views-field views-field-created"><span class="field-content">May 1, 2015</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/return-mac" hreflang="und">Return of the Mac</a></span></div><div class="views-field views-field-created"><span class="field-content">April 20, 2015</span></div></div> </div> <div class="views-row clearfix row-44"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/not-so-dynamic-updates" hreflang="und">Not So Dynamic Updates</a></span></div><div class="views-field views-field-created"><span class="field-content">March 30, 2015</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/localhost-dns-cache" hreflang="und">Localhost DNS Cache</a></span></div><div class="views-field views-field-created"><span class="field-content">February 23, 2015</span></div></div> </div> <div class="views-row clearfix row-45"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/purism-librem-15-review" hreflang="und">Purism Librem 15</a></span></div><div class="views-field views-field-created"><span class="field-content">December 31, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/weapons-maas-deployment" hreflang="und">Weapons of MaaS Deployment</a></span></div><div class="views-field views-field-created"><span class="field-content">October 30, 2014</span></div></div> </div> <div class="views-row clearfix row-46"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/only-mac-i-use" hreflang="und">The Only Mac I Use</a></span></div><div class="views-field views-field-created"><span class="field-content">October 27, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/encrypt-your-dog-mutt-and-gpg" hreflang="und">Encrypt Your Dog (Mutt and GPG)</a></span></div><div class="views-field views-field-created"><span class="field-content">September 29, 2014</span></div></div> </div> <div class="views-row clearfix row-47"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/check-exchange-command-line" hreflang="und">Check Exchange from the Command Line</a></span></div><div class="views-field views-field-created"><span class="field-content">September 1, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/tails-above-rest-part-iii" hreflang="und">Tails above the Rest, Part III</a></span></div><div class="views-field views-field-created"><span class="field-content">July 8, 2014</span></div></div> </div> <div class="views-row clearfix row-48"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/dolphins-nsa-dragnet" hreflang="und">Dolphins in the NSA Dragnet</a></span></div><div class="views-field views-field-created"><span class="field-content">July 7, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/tails-above-rest-part-ii" hreflang="und">Tails above the Rest, Part II</a></span></div><div class="views-field views-field-created"><span class="field-content">July 3, 2014</span></div></div> </div> <div class="views-row clearfix row-49"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/tails-above-rest-installation" hreflang="und">Tails above the Rest: the Installation</a></span></div><div class="views-field views-field-created"><span class="field-content">July 3, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/bundle-tor" hreflang="und">A Bundle of Tor</a></span></div><div class="views-field views-field-created"><span class="field-content">July 3, 2014</span></div></div> </div> <div class="views-row clearfix row-50"> <div class="views-col col-1" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/nsa-linux-journal-extremist-forum-and-its-readers-get-flagged-extra-surveillance" hreflang="und">NSA: Linux Journal is an "extremist forum" and its readers get flagged for extra surveillance</a></span></div><div class="views-field views-field-created"><span class="field-content">July 3, 2014</span></div></div> <div class="views-col col-2" style="width: 50%;"><div class="views-field views-field-title"><span class="field-content"><a href="/content/super-pi-brothers" hreflang="und">Super Pi Brothers</a></span></div><div class="views-field views-field-created"><span class="field-content">June 19, 2014</span></div></div> </div> </div> </div> <nav class="pager-nav text-center" role="navigation" aria-labelledby="pagination-heading"> <h4 id="pagination-heading" class="visually-hidden">Pagination</h4> <ul class="pagination js-pager__items"> <li class="pager__item is-active active"> <a href="?page=0" title="Current page"> <span class="visually-hidden"> Current page </span>1</a> </li> <li class="pager__item"> <a href="?page=1" title="Go to page 2"> <span class="visually-hidden"> Page </span>2</a> </li> <li class="pager__item pager__item--next"> <a href="?page=1" title="Go to next page" rel="next"> <span class="visually-hidden">Next page</span> <span aria-hidden="true">Next ›</span> </a> </li> <li class="pager__item pager__item--last"> <a href="?page=1" title="Go to last page" rel="last"> <span class="visually-hidden">Last page</span> <span aria-hidden="true">Last »</span> </a> </li> </ul> </nav> </div> </div> </div> </div> </div> </div> </div> </section> </div> </div> <footer class="footer container" role="contentinfo"> <div class="region region-footer"> <section class="views-element-container block block-views block-views-blocknewsletter-promo-block-block-1 clearfix" id="block-views-block-newsletter-promo-block-block-1"> <div class="form-group"><div class="view view-newsletter-promo-block view-id-newsletter_promo_block view-display-id-block_1 js-view-dom-id-7884e9b367bcb57960d494cddc25168390ceff631a2ff0313abd84529b2019d2"> <div class="view-content"> <div class="views-row"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="newsletter-bottom"> <div class="col-md-9 col-sm-12 signup-form"> <!--<h3>Linux Journal Week in Review</h3> <p>Sign up to get all the good stuff delivered to your inbox every week.</p> <form id="subForm" class="js-cm-form" action="https://www.createsend.com/t/subscribeerror?description=" method="post" data-id="A61C50BEC994754B1D79C5819EC1255CDBC34DDF3E170B13E2BAC2D68C42BF424F853383C84F5BAE38EAB4CFA5C73907CAC074FF8192503AF80F3699F7FE5CE1"> <div class="flexform">--> <!--<label for="fieldEmail">Email</label> <br />--> <!--<input id="fieldEmail" name="cm-gjjtdh-gjjtdh" type="email" class="js-cm-email-input" placeholder="Enter your email. Get the newsletter." required /> <button class="js-cm-submit-button" type="submit">Sign Up</button> </div> <div> <input id="cm-privacy-consent" name="cm-privacy-consent" required type="checkbox" /> <label for="cm-privacy-consent">I give my consent to be emailed</label> <input id="cm-privacy-consent-hidden" name="cm-privacy-consent-hidden" type="hidden" value="true" /> </div> </form> <script type="text/javascript" src="https://js.createsend1.com/javascript/copypastesubscribeformlogic.js"></script> </div>--> <!--<div class="col-md-3 col-sm-12 subs-callout"> <img src="/sites/default/files/styles/large/public/2019-01/LJ294-Jan2019-Cover_0.jpg" width="100px" /> <h3>The Value of Open Source Journalism</h3> <p> Subscribe and support our coverage for technology's biggest thinkers – with up to 52% savings. </p> <strong><a href="https://www.linuxjournal.com/subscribe">Subscribe <i class="fa fa-angle-double-right" aria-hidden="true"></i></a> </strong> </div>--> </div> </div> </div> </div> </div> </div> </section> </div> <div class="footer-blocks col-sm-12"> <div class="col-md-6 col-sm-12 footer-left"> <div class="region region-footer-left"> <section id="block-connectwithusfooter" class="block block-block-content block-block-content5e722bd4-5e08-454b-8507-956089bfa661 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div class="footer-heading">Connect With Us <span class="social-media sm-a-no-underline"><a href="https://youtube.com/linuxjournalonline" alt="Linux Journal on YouTube" aria-label="YouTube"><i class="fa fa-youtube fa-2x"></i></a><a href="https://www.facebook.com/linuxjournal/" alt="Linux Journal on Facebook" aria-label="Facebook"><i class="fa fa-facebook-f fa-2x"></i><a href="https://twitter.com/linuxjournal" alt="Linux Journal on Twitter" aria-label="Twitter"><i class="fa fa-twitter fa-2x"></i></a></span></div> <p>Linux Journal, representing 25+ years of publication, is the original magazine of the global Open Source community.</p></div> </section> <section id="block-linuxjournal-block-9" class="block block-block-content block-block-content8669793b-e217-4426-a79e-eb3c21ede127 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="copyright">© 2024 Slashdot Media, LLC. All rights reserved.</div> </div> </section> <section id="block-privacyterms" class="block block-block-content block-block-contenta203b8bd-80ef-4982-bf6e-784dd7b44120 clearfix"> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><ul class="menu menu--footer-submenu nav" id="terms-nav"> <li><a href="https://slashdotmedia.com/privacy-statement/" rel="nofollow" target="_blank">PRIVACY POLICY</a></li> <li><a href="https://slashdotmedia.com/terms-of-use/" rel="nofollow" target="_blank">TERMS OF SERVICE</a></li> <li><a href="/sponsors">ADVERTISE</a></li> </ul></div> </section> </div> </div> <div class="col-md-4 col-sm-8 footer-middle"> <div class="region region-footer-middle"> <nav role="navigation" aria-labelledby="block-footermenucolumn2-menu" id="block-footermenucolumn2"> <h2 class="visually-hidden" id="block-footermenucolumn2-menu">Footer Menu Column 2</h2> <ul class="menu menu--footer-menu-column-2 nav"> <li class="first"> <a href="/content/masthead" data-drupal-link-system-path="node/1007727">Masthead</a> </li> <li> <a href="/author" data-drupal-link-system-path="node/1009249">Authors</a> </li> <li class="last"> <a href="/form/contact" data-drupal-link-system-path="webform/contact">Contact Us</a> </li> </ul> </nav> <nav role="navigation" aria-labelledby="block-footermenucolumn3-menu" id="block-footermenucolumn3"> <h2 class="visually-hidden" id="block-footermenucolumn3-menu">Footer Menu Column 3</h2> <ul class="menu menu--footer-menu-column-3 nav"> <li class="first"> <a href="/rss_feeds" data-drupal-link-system-path="node/1000457">RSS Feeds</a> </li> <li class="last"> <a href="/aboutus" data-drupal-link-system-path="node/1000267">About Us</a> </li> </ul> </nav> </div> </div> </div> </footer> </div> </div> <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"user\/1002206","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","suppressDeprecationErrors":true,"bootstrap":{"forms_has_error_value_toggle":1,"popover_enabled":1,"popover_animation":1,"popover_auto_close":1,"popover_container":"body","popover_content":"","popover_delay":"0","popover_html":0,"popover_placement":"right","popover_selector":"","popover_title":"","popover_trigger":"click"},"linuxjournal":{"disqus":{"origin":"https:\/\/www.linuxjournal.com","prettyUrl":"\/users\/kyle-rankin","fullUrl":"https:\/\/www.linuxjournal.com\/users\/kyle-rankin","embedUrl":"https:\/\/linuxjournal.disqus.com\/embed.js","shortname":"linuxjournal"}},"ajaxTrustedUrl":{"\/search\/node":true},"user":{"uid":0,"permissionsHash":"a7b3a803411eb9cbd5d7d374ffb326721ee8274ab5a665df8f38311e3aad858c"}}</script> <script src="/core/assets/vendor/jquery/jquery.min.js?v=3.6.3"></script> <script src="/core/assets/vendor/underscore/underscore-min.js?v=1.13.6"></script> <script src="/core/misc/polyfills/element.matches.js?v=9.5.9"></script> <script src="/core/misc/polyfills/object.assign.js?v=9.5.9"></script> <script src="/core/assets/vendor/once/once.min.js?v=1.0.1"></script> <script src="/core/assets/vendor/jquery-once/jquery.once.min.js?v=9.5.9"></script> <script src="/core/misc/drupalSettingsLoader.js?v=9.5.9"></script> <script src="/core/misc/drupal.js?v=9.5.9"></script> <script src="/core/misc/drupal.init.js?v=9.5.9"></script> <script src="/themes/contrib/bootstrap/js/drupal.bootstrap.js?smwnh4"></script> <script src="/themes/contrib/bootstrap/js/attributes.js?smwnh4"></script> <script src="/themes/contrib/bootstrap/js/theme.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/affix.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/alert.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/button.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/carousel.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/collapse.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/dropdown.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/modal.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/tooltip.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/popover.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/scrollspy.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/tab.js?smwnh4"></script> <script src="/themes/linuxjournal/bootstrap/assets/javascripts/bootstrap/transition.js?smwnh4"></script> <script src="/themes/linuxjournal/js/lj-consentmanager.js?smwnh4"></script> <script src="/modules/contrib/webform/js/webform.behaviors.js?v=9.5.9"></script> <script src="/core/misc/jquery.once.bc.js?v=9.5.9"></script> <script src="/core/misc/states.js?v=9.5.9"></script> <script src="/themes/contrib/bootstrap/js/misc/states.js?smwnh4"></script> <script src="/modules/contrib/webform/js/webform.states.js?v=9.5.9"></script> <script src="/modules/contrib/webform/modules/webform_bootstrap/js/webform_bootstrap.states.js?v=9.5.9"></script> <script src="/themes/contrib/bootstrap/js/popover.js?smwnh4"></script> <!-- START EMBED --> <noscript><img src="https://api.b2c.com/api/noscript-448i7exgpyqpr9c144q.gif"></noscript> <!-- END EMBED --> <!-- Matomo --> <script type="text/javascript"> var _paq = _paq || []; function initPiwik() { _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.linuxjournal.com/"; _paq.push(['setTrackerUrl', u+'piwik.php']); _paq.push(['setSiteId', '50']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); })(); } </script> <noscript><p><img src="https://analytics.linuxjournal.com/piwik.php?idsite=50&rec=1" style="border:0;" alt="" /></p></noscript> <!-- End Matomo Code --> <div class="modal-custom overlay-custom" id="ccpa-modal" style="margin-left: 0; display: none; max-width: 100%; width: 100%"> <div id="modal-content" class="modal-content"> <div class="modal-header" id="ccpa-modal-content-destination"></div> <span class="close" id="modal-close">×</span> </div> </div> </body> </html>