<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>root@kevops:~#</title>
  <link>https://kevops.com/</link>
  <description>Kindly doing needfuls</description>
  <language>en-us</language>
  <lastBuildDate>Fri, 14 Aug 2026 20:00:18 +0000</lastBuildDate>
  <atom:link href="https://kevops.com/feed.xml" rel="self" type="application/rss+xml"/>
  <item>
    <title>Code Design Pitfall</title>
    <link>https://kevops.com/2020/12/code-design-pitfall/</link>
    <guid isPermaLink="true">https://kevops.com/2020/12/code-design-pitfall/</guid>
    <pubDate>Thu, 17 Dec 2020 00:00:00 +0000</pubDate>
    <description>I write a lot of object-oriented code these days and I am a strong advocate of the SOLID principles. I have noticed that if I follow those principles, I tend to write better code that's more testable, more flexible, and more maintainable. However, sometimes when I am initially designing code for a new feature I fall into this weird trap and I have to stop and bring myself back to reality. It goes…</description>
  </item>
  <item>
    <title>Quick Functional Tests in Saltstack</title>
    <link>https://kevops.com/2016/01/quick-functional-tests-in-saltstack/</link>
    <guid isPermaLink="true">https://kevops.com/2016/01/quick-functional-tests-in-saltstack/</guid>
    <pubDate>Thu, 21 Jan 2016 00:00:00 +0000</pubDate>
    <description>SaltStack is pretty awesome. If you don't know what it is and are looking for a configuration manangement tool, I highly recommend it. All of the major configuration management tools (Puppet, Chef, Ansible, Salt) are mostly the same, but the saltstack community is great. The IRC channel on freenode is an excellent resource, and their github issue tracker is actively monitored if you submit a bug…</description>
  </item>
  <item>
    <title>Generate hosts file on a cpanel server quickly</title>
    <link>https://kevops.com/2016/01/generate-hosts-file-on-a-cpanel-server-quickly/</link>
    <guid isPermaLink="true">https://kevops.com/2016/01/generate-hosts-file-on-a-cpanel-server-quickly/</guid>
    <pubDate>Tue, 19 Jan 2016 00:00:00 +0000</pubDate>
    <description>So here's how to quickly generate a hosts file on a cPanel server, or rather how to print out a bunch of lines of text that can be appended to someone's local "hosts file": Quick one-liner you can paste directly on a server over ssh: www="yes"; cd /var/cpanel/users 2/dev/null &amp;&amp; for userfile in ; do echo "$userfile"; ip=$(awk -F\= '$1 == "IP" {print $2}' "$userfile"); domains=; domain=$(egrep…</description>
  </item>
  <item>
    <title>Cloudflare + DDoS</title>
    <link>https://kevops.com/2015/12/cloudflare-ddos/</link>
    <guid isPermaLink="true">https://kevops.com/2015/12/cloudflare-ddos/</guid>
    <pubDate>Fri, 18 Dec 2015 00:00:00 +0000</pubDate>
    <description>Quick post here. If you're using something like Cloudflare for the sole purpose of mitigating a distributed denial of service attack (DDoS), please be smart with your DNS records. I have a lot of respect for Cloudflare as a service. They use a combination of anycast + cache header injection + using their own Content Delivery Network (CDN) for static files (JS, CSS, images, etc). If you are using…</description>
  </item>
  <item>
    <title>Varnish Logging Per Host With Init Script</title>
    <link>https://kevops.com/2015/11/varnish-logging-per-host-with-init-script/</link>
    <guid isPermaLink="true">https://kevops.com/2015/11/varnish-logging-per-host-with-init-script/</guid>
    <pubDate>Fri, 06 Nov 2015 00:00:00 +0000</pubDate>
    <description>I've been hacking around with varnish a lot lately. If you don't know what varnish is, it is an open-source, in-memory caching HTTP reverse proxy and really just an amazing piece of software. You can learn more here. Varnish, in keeping with it's philosophy of being low-footprint and high-performance, does not by default log anything to slow disks. Instead it keeps an ephemeral log in memory.…</description>
  </item>
  <item>
    <title>Bound Method Python</title>
    <link>https://kevops.com/2015/09/bound-method-python/</link>
    <guid isPermaLink="true">https://kevops.com/2015/09/bound-method-python/</guid>
    <pubDate>Sat, 12 Sep 2015 00:00:00 +0000</pubDate>
    <description>This is a mini post that only exists to hopefully help out people like me who are dumb sometimes. If you are pulling your hair out trying to figure out why you are getting something like this: Then you are probably trying to do something like this: You should be doing: In the former code block, python was printing exactly what you told it to. It's a lot like Ruby, in that everything is an object.…</description>
  </item>
  <item>
    <title>Adding Spotify current track to tmux status bar</title>
    <link>https://kevops.com/2014/08/adding-spotify-current-track-to-tmux-status-bar/</link>
    <guid isPermaLink="true">https://kevops.com/2014/08/adding-spotify-current-track-to-tmux-status-bar/</guid>
    <pubDate>Mon, 04 Aug 2014 00:00:00 +0000</pubDate>
    <description>I love tmux. I'm a very recent convert. I just discovered/embraced tmux over screen, so I've been hacking my ~/.tmux.conf a lot in the last couple days. It's strangely satisfying to make your status bar display remote and local content in clever ways. The possibilities are endless. Spotify has also been a necessity lately at work and at home. I'm using the Spotify Linux Preview Since I'm running…</description>
  </item>
  <item>
    <title>Control Panels, Cross Site Request Forgery, and Case 74889</title>
    <link>https://kevops.com/2014/07/control-panels-cross-site-request-forgery-and-case-74889/</link>
    <guid isPermaLink="true">https://kevops.com/2014/07/control-panels-cross-site-request-forgery-and-case-74889/</guid>
    <pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate>
    <description>The rise of web hosting control panels has changed the landscape of the web hosting industry dramatically. They reduce the barrier to entry for server administration by automating configuration and management tasks within a web-based GUI. Before this, server administrators had to configure their systems by hand, or through a suite of their own custom shell scripts and such. While this has allowed…</description>
  </item>
  <item>
    <title>Advanced Troubleshooting with Strace</title>
    <link>https://kevops.com/2014/07/advanced-troubleshooting-with-strace/</link>
    <guid isPermaLink="true">https://kevops.com/2014/07/advanced-troubleshooting-with-strace/</guid>
    <pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate>
    <description>Sometimes a site is performing erratically, or loading slowly and it's not evident what the problem is. When you've run out of standard troubleshooting methods, it might be time to go deeper. We need to go deeper. One way to do that is with a tool called strace. Strace allows you to track the system calls to the kernel in real time. You can pass it a process id, or run it in front of a command.…</description>
  </item>
  <item>
    <title>Using CasperJS to Automate Server Migration Testing</title>
    <link>https://kevops.com/2014/07/using-casperjs-to-automate-server-migration-testing/</link>
    <guid isPermaLink="true">https://kevops.com/2014/07/using-casperjs-to-automate-server-migration-testing/</guid>
    <pubDate>Sun, 20 Jul 2014 00:00:00 +0000</pubDate>
    <description>CasperJs is an open source navigation scripting &amp; testing utility written in Javascript by Nicolas Perriault for the PhantomJS WebKit headless browser. It also works with Gecko-based SlimerJS as an alternative engine. What does all of that mean? It means you can emulate navigation steps just as you would in a browser -- without the browser. I've played with PhantomJS in the past out of curiosity,…</description>
  </item>
</channel>
</rss>
