<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
    <title>m7c1</title>
    <link>https://m7c1.com</link>
    <atom:link href="https://m7c1.com/feed" rel="self" type="application/rss+xml" />
    <description>Much by way of discourse, some by way of advice; security from Clausewitz to Fancy Bear.</description>
    <language>en-us</language>
    <lastBuildDate>Thu, 30 Jul 2026 15:29:00 +0000</lastBuildDate>
    <generator>core-cms</generator>
        <image>
        <url>https://dfprfxesp83bf.cloudfront.net/images/logo.png</url>
        <title>m7c1</title>
        <link>https://m7c1.com</link>
    </image>
        <item>
        <title><![CDATA[The Metro]]></title>
        <link>https://m7c1.com/posts/the-metro</link>
        <guid isPermaLink="true">https://m7c1.com/posts/the-metro</guid>
        <description><![CDATA[Michael van Eeden, Hacker Turned Admin]]></description>
        <pubDate>Thu, 30 Jul 2026 15:29:00 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Deep Copy in JS]]></title>
        <link>https://m7c1.com/posts/deep-copy-in-js</link>
        <guid isPermaLink="true">https://m7c1.com/posts/deep-copy-in-js</guid>
        <description><![CDATA[Today, we'll look at how to perform a 'deep copy' of structures in JavaScript.Â  We'll look at a couple different out-of-the-box solutions and then roll our own recursive solution.  This tutorial will also provide some background on the difference between copying by value and by reference in JS, and what exactly a 'deep copy' is.]]></description>
        <pubDate>Sun, 05 Jul 2020 18:28:32 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[JavaScript Quick Reference]]></title>
        <link>https://m7c1.com/posts/javascript-quick-reference</link>
        <guid isPermaLink="true">https://m7c1.com/posts/javascript-quick-reference</guid>
        <description><![CDATA[A small but growing quick reference for JavaScript is now up.]]></description>
        <pubDate>Fri, 08 May 2020 17:39:51 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Setting up a Samba Share on Linux]]></title>
        <link>https://m7c1.com/posts/setting-up-a-samba-share-on-linux</link>
        <guid isPermaLink="true">https://m7c1.com/posts/setting-up-a-samba-share-on-linux</guid>
        <description><![CDATA[In this short tutorial, we'll setup a basic file server by installing Samba on Linux, and configuring access to it.]]></description>
        <pubDate>Sun, 26 Apr 2020 22:21:38 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Xinput Revisited: Improving Trackpad on Linux]]></title>
        <link>https://m7c1.com/posts/xinput-revisited-improving-trackpad-on-linux</link>
        <guid isPermaLink="true">https://m7c1.com/posts/xinput-revisited-improving-trackpad-on-linux</guid>
        <description><![CDATA[In this short tutorial, we're going to explore improving the trackpad experience on Linux.  We'll enable (or disable!) tap-to-click, natural scrolling and the three finger 'middle' mouse button action.  This will also give us an opportunity to learn a little bit about xinput and how X events are connected to actions.  This article applies to any system running X.]]></description>
        <pubDate>Sun, 12 Apr 2020 17:17:33 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Creating an Encrypted Container on Linux]]></title>
        <link>https://m7c1.com/posts/creating-an-encrypted-container-on-linux</link>
        <guid isPermaLink="true">https://m7c1.com/posts/creating-an-encrypted-container-on-linux</guid>
        <description><![CDATA[In this tutorial, we'll cover how to create an encrypted container on Linux.Â  We'll also cover how to integrate its use into your environment.  You can think of this space as a safe, which you can open, store things in or read things from, and then close again.]]></description>
        <pubDate>Sat, 04 Apr 2020 19:51:29 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[The 1970 Passage of the Fair Credit Reporting Act]]></title>
        <link>https://m7c1.com/posts/the-1970-passage-of-the-fair-credit-report-act</link>
        <guid isPermaLink="true">https://m7c1.com/posts/the-1970-passage-of-the-fair-credit-report-act</guid>
        <description><![CDATA[A brief historical narrative on the 1970 passage of the Fair Credit Reporting Act (FCRA).  The act can be seen as a early reaction to an emerging appreciation for the power of mechanized (and then digitized) data analysis.  The FCRA represents one of the earliest legal actions taken in realm of privacy and security.]]></description>
        <pubDate>Fri, 27 Mar 2020 20:16:44 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Desktop Entry Introduction with Calibre]]></title>
        <link>https://m7c1.com/posts/desktop-entry-introduction-with-calibre</link>
        <guid isPermaLink="true">https://m7c1.com/posts/desktop-entry-introduction-with-calibre</guid>
        <description><![CDATA[In this brief tutorial, we'll cover how to create a Desktop Entry in Linux.  We'll create such an entry for the ebook-manager Calibre by following the freedesktop (xdg) specification.  By the end of the article, we'll be able to create arbitrary desktop entries that work with a variety of desktop-environments and launchers like kupfer!]]></description>
        <pubDate>Mon, 16 Mar 2020 14:24:45 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[i3, xrandr and Multiple Screens]]></title>
        <link>https://m7c1.com/posts/i3-xrandr-and-multiple-screens</link>
        <guid isPermaLink="true">https://m7c1.com/posts/i3-xrandr-and-multiple-screens</guid>
        <description><![CDATA[In this brief tutorial, we'll cover how to set up and use multiple monitors with i3.Â  We'll use xrandr and i3-msg to orient our displays and place the workspaces we want on whatever monitor we want.]]></description>
        <pubDate>Mon, 09 Mar 2020 15:49:06 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Integrating Clementine with i3status over dbus with Python]]></title>
        <link>https://m7c1.com/posts/integrating-clementine-with-i3status-over-dbus-with-python</link>
        <guid isPermaLink="true">https://m7c1.com/posts/integrating-clementine-with-i3status-over-dbus-with-python</guid>
        <description><![CDATA[Today we'll cover how to use the dbus interprocess communication (IPC) mechanism to integrate the Clementine music player into i3status.Â  We'll write a small script in Python that determines Clementine's state using the dbus library, and then appends that state to the i3status bar.  While we're at it, we'll also learn quite a bit about dbus!]]></description>
        <pubDate>Mon, 02 Mar 2020 13:30:13 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x06: Using xscreensaver and Detecting Full Screen Apps in i3]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x06-using-xscreensaver-and-detecting-full-screen-apps-in-i3</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x06-using-xscreensaver-and-detecting-full-screen-apps-in-i3</guid>
        <description><![CDATA[In this, part 6 of our Linux Environment series, we'll cover how to install xscreensaver, and write a script that checks for full screen windows.  Then we'll connect the two to stop your machine from going to sleep in the middle of movies!]]></description>
        <pubDate>Mon, 24 Feb 2020 21:31:36 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Buffer Overflow 0x02: Storing Shellcode in an Environment Variable]]></title>
        <link>https://m7c1.com/posts/buffer-overflow-0x02-storing-shellcode-in-an-environment-variable</link>
        <guid isPermaLink="true">https://m7c1.com/posts/buffer-overflow-0x02-storing-shellcode-in-an-environment-variable</guid>
        <description><![CDATA[In this tutorial we'll cover how to perform a simple buffer overflow by jumping to shellcode that we've stored in an environment variable.  We'll cover how to place the code, find its address, and go over a simple example of jumping to it to perform an exploit.]]></description>
        <pubDate>Mon, 17 Feb 2020 20:20:04 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[How To: Pipelines]]></title>
        <link>https://m7c1.com/posts/how-to-pipelines</link>
        <guid isPermaLink="true">https://m7c1.com/posts/how-to-pipelines</guid>
        <description><![CDATA[In this tutorial, we'll cover how to create and use command line pipelines.  We'll go over a little bit of background on what they are, work through a couple of examples and finally address a common pipeline difficulty to do with standard error.]]></description>
        <pubDate>Sun, 09 Feb 2020 19:18:29 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Signals, Jobs and Process Control]]></title>
        <link>https://m7c1.com/posts/signals-jobs-and-process-control</link>
        <guid isPermaLink="true">https://m7c1.com/posts/signals-jobs-and-process-control</guid>
        <description><![CDATA[One very common command line activity is process control.  In this tutorial, using tools like kill, and builtins like fg and jobs to interact with processes, and cover how to run them in both the foreground, and background of a single terminal.]]></description>
        <pubDate>Mon, 03 Feb 2020 23:03:14 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[How To: xargs]]></title>
        <link>https://m7c1.com/posts/how-to-use-xargs</link>
        <guid isPermaLink="true">https://m7c1.com/posts/how-to-use-xargs</guid>
        <description><![CDATA[In this tutorial we'll cover how to use the xargs command-line tool.  xargs allows arbitrary input, like the output of another command or the contents of a file, to be used as the parameters for another command.]]></description>
        <pubDate>Mon, 27 Jan 2020 21:17:36 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[How To: User Signup, Email Activation and Login in MySQL and PHP]]></title>
        <link>https://m7c1.com/posts/how-to-user-signup-email-activation-and-signup-flow-in-mysql-and-php</link>
        <guid isPermaLink="true">https://m7c1.com/posts/how-to-user-signup-email-activation-and-signup-flow-in-mysql-and-php</guid>
        <description><![CDATA[Many websites use a system of user verification that requires anyone who signs up (registers) to provide an email address, and then click a link sent to them to 'activate' their account.  In this tutorial, we'll cover the basic logic and creation of such a system using PHP and MySQL.  At the end, we'll have a working activation system and we'll have learned a little bit about web programming along the way!]]></description>
        <pubDate>Mon, 20 Jan 2020 15:54:08 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[The 2007 Estonian Cyber Incident: A Digital People's War]]></title>
        <link>https://m7c1.com/posts/the-2007-estonian-cyber-incident</link>
        <guid isPermaLink="true">https://m7c1.com/posts/the-2007-estonian-cyber-incident</guid>
        <description><![CDATA[In April of 2007, the relocation of a controversial statue in Estonia touched off weeks of cyber attacks against the technologically sophisticated Baltic state.  Long-standing animosity between Estonia and Russia went cyber, publicly outing the nation state as a major cyber force, and unequivocally demonstrating major discontinuities between traditional, 'kinetic' combat and cyber war.]]></description>
        <pubDate>Mon, 06 Jan 2020 21:31:25 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Install Killer AX1650 Drivers and Get WiFi with only a Debian Netinstaller]]></title>
        <link>https://m7c1.com/posts/install-killer-ax1650-drivers-and-get-wifi-with-only-a-usb-and-a-debian-netinstaller</link>
        <guid isPermaLink="true">https://m7c1.com/posts/install-killer-ax1650-drivers-and-get-wifi-with-only-a-usb-and-a-debian-netinstaller</guid>
        <description><![CDATA[In this tutorial, we'll cover manually installing the wifi drivers for the Killer AX1650 network card which do NOT come prepackaged with on the Debain Netinstaller.  To do this, we'll need another machine with an internet connection that's running the same Linux kernel we're trying to install.  We'll learn a little about Linux networking along the way!]]></description>
        <pubDate>Mon, 30 Dec 2019 18:24:54 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Using apache's htaccess to Lock a Directory]]></title>
        <link>https://m7c1.com/posts/using-apaches-htaccess-to-lock-a-directory</link>
        <guid isPermaLink="true">https://m7c1.com/posts/using-apaches-htaccess-to-lock-a-directory</guid>
        <description><![CDATA[Tutorial: Quickly setup a password protected directory served by Apache with htaccess!]]></description>
        <pubDate>Mon, 23 Dec 2019 16:21:21 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x05: Integrating mpd into i3status using i3bar]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x05-i3status-i3bar-and-customizing-i3</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x05-i3status-i3bar-and-customizing-i3</guid>
        <description><![CDATA[In this fifth installment of our ongoing Linux tutorial series, we're going to customize our i3 experience by modifying i3bar's output.Â  We're going to integrate our MPD music backend into i3bar to display our music info in our i3status bar!]]></description>
        <pubDate>Mon, 16 Dec 2019 22:46:59 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x04: Setting up Music with MPD and ncmpcpp]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x04-setting-up-music-with-mpd-and-a-gui</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x04-setting-up-music-with-mpd-and-a-gui</guid>
        <description><![CDATA[In this, part four of a multipart tutorial series on setting up a functional and very fast Linux desktop environment, we'll cover how to install the Music Player Daemon, MPD, and a terminal-based GUI for it, ncmpcpp.  This will give us a light-weight and robust way to organize and play music on Linux.]]></description>
        <pubDate>Sun, 08 Dec 2019 15:13:26 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x03: Oh My Zsh and Powerlevel9k]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x03</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x03</guid>
        <description><![CDATA[In this, part three of a multipart tutorial series on setting up a functional and very fast Linux desktop environment, we'll cover how to install Oh My Zsh, Powerlevel9k and all the necessary bits and pieces to make your terminal your own.  Time for the oh so popular shell customization installment!]]></description>
        <pubDate>Sun, 01 Dec 2019 19:54:04 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Meuller's Bears: Russian Hacking and the 2016 US Presidential Election]]></title>
        <link>https://m7c1.com/posts/meullers-bears-russian-hacking-and-the-2016-us-presidential-election</link>
        <guid isPermaLink="true">https://m7c1.com/posts/meullers-bears-russian-hacking-and-the-2016-us-presidential-election</guid>
        <description><![CDATA[The Russian hacking of the 2016 US presidential election was an incredible event.  Robert Meuller's report on the subject is full of fascinating details, learn about how Russian bears expertly utilized information and social media for meddling purposes!]]></description>
        <pubDate>Mon, 25 Nov 2019 18:45:41 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x02]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x02</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x02</guid>
        <description><![CDATA[In this, part two of an multipart tutorial series on setting up a functional and very fast Linux desktop environment, we'll cover how to install i3, ViM, the terminal Terminator, the application launcher Kupfer and set zsh as our default shell!  We'll also learn a little bit about editing files using ViM.]]></description>
        <pubDate>Sun, 17 Nov 2019 18:53:50 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Linux Environment Setup 0x01]]></title>
        <link>https://m7c1.com/posts/linux-environment-setup-0x01</link>
        <guid isPermaLink="true">https://m7c1.com/posts/linux-environment-setup-0x01</guid>
        <description><![CDATA[In this, part one of an multipart tutorial series on setting up a functional and very fast Linux desktop environment, we'll cover a little bit of background on Linux and desktop environments in general, and then walk through installing Debian!]]></description>
        <pubDate>Sun, 10 Nov 2019 17:39:02 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Buffer Overflow 0x01]]></title>
        <link>https://m7c1.com/posts/buffer-overflow-0x01</link>
        <guid isPermaLink="true">https://m7c1.com/posts/buffer-overflow-0x01</guid>
        <description><![CDATA[A step by step buffer overflow tutorial.  We'll cover why buffer overflows exist, how they can be abused to subvert flow of control, and step though an example exploitation in Linux using GDB.]]></description>
        <pubDate>Thu, 24 Oct 2019 13:19:46 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[The ARPANET]]></title>
        <link>https://m7c1.com/posts/the-arpanet</link>
        <guid isPermaLink="true">https://m7c1.com/posts/the-arpanet</guid>
        <description><![CDATA[A brief history of the ARPANET.]]></description>
        <pubDate>Thu, 17 Oct 2019 17:07:29 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[The Morris Worm]]></title>
        <link>https://m7c1.com/posts/the-morris-worm</link>
        <guid isPermaLink="true">https://m7c1.com/posts/the-morris-worm</guid>
        <description><![CDATA[rtm and the hacker spirit breach the protections of adolescence.]]></description>
        <pubDate>Fri, 23 Aug 2019 14:35:46 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Tor and 'Invisibility']]></title>
        <link>https://m7c1.com/posts/tor-and-invisibility</link>
        <guid isPermaLink="true">https://m7c1.com/posts/tor-and-invisibility</guid>
        <description><![CDATA[Misconstruing Tor as a cloak of invisibility is dangerous.]]></description>
        <pubDate>Fri, 24 May 2019 13:59:00 +0000</pubDate>
    </item>
    <item>
        <title><![CDATA[Curation]]></title>
        <link>https://m7c1.com/posts/curation</link>
        <guid isPermaLink="true">https://m7c1.com/posts/curation</guid>
        <description><![CDATA[How can we continue to protect ourselves in an era defined by ubiquitous data collection?  Curation!]]></description>
        <pubDate>Fri, 26 Apr 2019 16:51:47 +0000</pubDate>
    </item>
</channel>
</rss>
