<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Brooks Garrett</title>
    <link>https://brooksgarrett.com/</link>
    <description>Recent content on Brooks Garrett</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 14 Sep 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://brooksgarrett.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>DIY Clamps for Amp Rack in Can Am Defender</title>
      <link>https://brooksgarrett.com/blog/diy-defender-clamps/</link>
      <pubDate>Tue, 14 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/diy-defender-clamps/</guid>
      <description>We&amp;rsquo;ve recently begun the process of kitting out our Can Am Defender with tower speakers and bed based subwoofers. Fitting all the racks in a somewhat dry place is difficult anywhere except the roof so I set out to design and build an amp rack that didn&amp;rsquo;t look like it was something I made. My current idea is to mount up a couple pieces of plywood and black them out with truck bed liner to seal them against moisture.</description>
    </item>
    
    <item>
      <title>May 2021 Log</title>
      <link>https://brooksgarrett.com/strenuous/sl052021/</link>
      <pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/strenuous/sl052021/</guid>
      <description>18 May 2021  Fitness  StrongLifts 5x5 A   Good Deed  Picked up Trash    </description>
    </item>
    
    <item>
      <title>The Complete Node.js Developer Course (2nd Ed.)</title>
      <link>https://brooksgarrett.com/reviews/mead-complete-nodejs/</link>
      <pubDate>Thu, 09 Mar 2017 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/reviews/mead-complete-nodejs/</guid>
      <description>Basic Info  Link: https://www.udemy.com/the-complete-nodejs-developer-course-2 Instructor: Andrew Mead Price: $85 (Often on sale for $15) Format: Online / Video Certificate: Yes Overall Score: 9/10  Summary review I came across this course while taking Andrew&amp;rsquo;s other class, The Complete React Web App Developer Course. During the React class I kept wanting to understand how the React App would interact with a backend API so I purchased this course on sale and dove in.</description>
    </item>
    
    <item>
      <title>Privacy Statement</title>
      <link>https://brooksgarrett.com/privacy/</link>
      <pubDate>Mon, 23 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/privacy/</guid>
      <description>PRIVACY STATEMENT  SECTION 1 - WHAT DO WE DO WITH YOUR INFORMATION? When you purchase something from our page, as part of the buying and selling process, we collect the personal information you give us such as your name, address and email address.
When you browse our page, we also automatically receive your computer’s internet protocol (IP) address in order to provide us with information that helps us learn about your browser and operating system.</description>
    </item>
    
    <item>
      <title>Developing for Alexa</title>
      <link>https://brooksgarrett.com/blog/developing-for-alexa/</link>
      <pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/developing-for-alexa/</guid>
      <description>For my first 1 Project Per Month Challenge I took a previous idea and ported it so I can retreive information from our new Echo Dot. There are guides on building your first Alexa skill so I&amp;rsquo;ll only cover the unique things I stumbled on while developing my first skill.
The goal is to create a skill for Alexa that will retreive the Fire Danger Class for a nearby tower. This information is most useful for people who:</description>
    </item>
    
    <item>
      <title>Narcan and You</title>
      <link>https://brooksgarrett.com/blog/narcan-you/</link>
      <pubDate>Fri, 09 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/narcan-you/</guid>
      <description>Opiod abuse is an epidemic.
I&amp;rsquo;ve seen countless debates rage on firefighter forums I visit debating whether rescue services should be equipped with Narcan. One side suggests that people who continually abuse opiods become complacent when they know Narcan is a phone call away. Others suggest that if we have a tool that consistenly and safely saves lives then we should use it. My department hasn&amp;rsquo;t had a ton of opiod abuse cases so I wasn&amp;rsquo;t familiar with either argument.</description>
    </item>
    
    <item>
      <title>My Thoughts on Pebble</title>
      <link>https://brooksgarrett.com/blog/thoughts-on-pebble/</link>
      <pubDate>Thu, 08 Dec 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/thoughts-on-pebble/</guid>
      <description>In case you missed the news this week, Pebble is no more. Every report seems to indicate that post-acquisition, Pebble will no longer produce smart watches. That&amp;rsquo;s not a terribly surprising move when you look at the larger market. LG is pulling out and Moto says NoMo. With a Pebble exit, Apple and Samsung are really the only major players remaining. A recent Gartner study gives pretty compelling evidence as to why the mass exodus is occurring.</description>
    </item>
    
    <item>
      <title>Capturing Session Keys for Wireshark</title>
      <link>https://brooksgarrett.com/blog/session-keys-for-wireshark/</link>
      <pubDate>Thu, 18 Aug 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/session-keys-for-wireshark/</guid>
      <description>Decrypting HTTPS can be a real pain in Wireshark. I found an article that describes having Chrome or FireFox dump Session Keys for you which WireShark can then load and use to decrypt TLS sessions. Based on that article I roughed up the below Powershell function so I can selectively dump Session keys when I want to and with the browser I choose. By default I use Chrome but by passing an argument (2) to the function I can instead switch to Firefox.</description>
    </item>
    
    <item>
      <title>NIST Deprecates SMS 2FA</title>
      <link>https://brooksgarrett.com/blog/nist-deprecates-sms/</link>
      <pubDate>Tue, 26 Jul 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/nist-deprecates-sms/</guid>
      <description>While you were sleeping, NIST has released their latest public draft of SP 800-63 on GitHub.
Among the changes is this comment regarding SMS messages as an Out of Band (OOB) token for 2 Factor Authentication.
From SP 800-63B Section 5.1.3.2
 Due to the risk that SMS messages may be intercepted or redirected, implementers of new systems SHOULD carefully consider alternative authenticators. If the out of band verification is to be made using a SMS message on a public mobile telephone network, the verifier SHALL verify that the pre-registered telephone number being used is actually associated with a mobile network and not with a VoIP (or other software-based) service.</description>
    </item>
    
    <item>
      <title>Schedule Outlook Appointments in Powershell</title>
      <link>https://brooksgarrett.com/blog/outlook-appt-in-powershell/</link>
      <pubDate>Thu, 30 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/outlook-appt-in-powershell/</guid>
      <description>Here is a simple script to schedule Outlook appointments from Powershell. I use this to automate reminders to myself during the day&amp;hellip;
$folder = $outlook.Session.folders |where-object {$_.Name -eq &amp;#39;email@work.com&amp;#39;} $cal = $folder.Folders |? {$_.Name -eq &amp;#34;Calendar&amp;#34;} $appt = $calendar.Items.Add(1) $appt.Start = [datetime]&amp;#34;06/30/2016 17:00&amp;#34; $appt.End = [datetime]”06/30/2016 17:30&amp;#34; $appt.Subject = &amp;#34;Dinner&amp;#34; $appt.Save() This script demonstrates the basic usage. I&amp;rsquo;m doing a bit more by saving it as a function in my profile.</description>
    </item>
    
    <item>
      <title>ZFS Sandbox in Hyper-V</title>
      <link>https://brooksgarrett.com/blog/hyperv-zfs-sandbox/</link>
      <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/hyperv-zfs-sandbox/</guid>
      <description>ZFS has arrived on Ubuntu 16.04 LTS and that means it&amp;rsquo;s time to upgrade my NAS. Since my NAS houses all my kids pictures I want it to be redundant but performant. I like the ability to dedup as well as snapshot (and remotely backup those snapshots) that ZFS offers. Before I actually trust my data to a new technology I need to be sure I know how it behaves when it crashes.</description>
    </item>
    
    <item>
      <title>Docker in Azure</title>
      <link>https://brooksgarrett.com/blog/docker-in-azure/</link>
      <pubDate>Tue, 14 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/docker-in-azure/</guid>
      <description>I&amp;rsquo;m playing with Docker and have it set up locally in Hyper-V for testing. I really want to have a public/internet facing host though. I remembered I had some free Azure credits from my MSDN Subscription so that&amp;rsquo;s where I&amp;rsquo;m getting started.
Things I have:
 MSDN Account Azure Account Docker Toolbox installed My Powershell Profile  First, use Docker Machine to establish your Docker VM in Azure. Of important note are the -d (driver) argument and the Subscriber ID.</description>
    </item>
    
    <item>
      <title>Powershell Profile</title>
      <link>https://brooksgarrett.com/blog/powershell-profile-one/</link>
      <pubDate>Mon, 13 Jun 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/powershell-profile-one/</guid>
      <description>I&amp;rsquo;ve nearly exclusively used Linux for all blogging, development, and research. The Bash command line is just too powerful to ignore. Now with Microsoft making major strides to improve PowerShell I&amp;rsquo;m finding myself spending more and more time on my Windows machine.
This is my profile for Windows machines. Supports docker on the command line, rust and cargo, and generally lets me do whatever I want. I really haven&amp;rsquo;t been missing Linux lately.</description>
    </item>
    
    <item>
      <title>Screenshot to S3</title>
      <link>https://brooksgarrett.com/blog/screenshot-to-s3/</link>
      <pubDate>Mon, 29 Feb 2016 11:19:26 -0500</pubDate>
      
      <guid>https://brooksgarrett.com/blog/screenshot-to-s3/</guid>
      <description>I&amp;rsquo;ve been writing in pure markdown for a while and one portion of my workflow still gives me trouble.
Images.
Today I threw together a simple solution for managing images and thought I&amp;rsquo;d share in case someone else has issues.
Tools I&amp;rsquo;m using:
 Atom Editor s3cmd S3 Browser Greenshot Python 2.7 Custom PowerShell  I publish in Atom. I host in S3. All my rich content (image, video, presentation, etc.</description>
    </item>
    
    <item>
      <title>Windows with Git</title>
      <link>https://brooksgarrett.com/blog/windows-with-git/</link>
      <pubDate>Sun, 28 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/windows-with-git/</guid>
      <description>I&amp;rsquo;ve nearly exclusively used Linux for all blogging, development, and research. The Bash command line is just too powerful to ignore. Now with Microsoft making major strides to improve PowerShell I&amp;rsquo;m finding myself spending more and more time on my Windows machine.
Running a VM just for git and vim is a silly thing to do. I spent about 10 minutes getting git working on my Windows laptop and getting my blog workflow up and running.</description>
    </item>
    
    <item>
      <title>Wish List</title>
      <link>https://brooksgarrett.com/wishlist/</link>
      <pubDate>Thu, 25 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/wishlist/</guid>
      <description>I have friends from all around the world and a massive family. It is inevitable that an occasion arises which social edict demands someone purchase me a gift. To be clear, I&amp;rsquo;m pretty happy with my life and the things I have and gifts are usually a seriously generous but unnecessary gesture.
That said, I sincerely appreciate receiving gifts and I&amp;rsquo;m notoriously hard to buy for (if I really really want something I tend to go buy it myself.</description>
    </item>
    
    <item>
      <title>Configuring SDR for Fire Pager Scanning</title>
      <link>https://brooksgarrett.com/blog/2015-12-08-configuring-sdr-for-fire-pager-scanning/</link>
      <pubDate>Tue, 08 Dec 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/2015-12-08-configuring-sdr-for-fire-pager-scanning/</guid>
      <description>A boring post on building a SDR scanning machine based on a cheap RTL dongle and an old emachines computer.
The Project I&amp;rsquo;m a volunteer firefighter and currently our method of receiving pages is&amp;hellip; outdated. We carry these black Motorola Minitor pagers which audibly alert us when we are needed. This works great most of the time. We need some extra things to happen so I&amp;rsquo;ve started looking at how SDR can help us.</description>
    </item>
    
    <item>
      <title>CoreOS, Fleet, and Invalid Ports</title>
      <link>https://brooksgarrett.com/blog/coreos-fleet-and-invalid-ports/</link>
      <pubDate>Tue, 20 Oct 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/coreos-fleet-and-invalid-ports/</guid>
      <description>I kept getting this error today while trying to launch a unit in fleet:
Oct 20 15:54:03 coreos02 docker[3542]: docker: Invalid containerPort: -p. Oct 20 15:54:03 coreos02 docker[3542]: See &amp;#39;/usr/bin/docker run --help&amp;#39;. Oct 20 15:54:03 coreos02 systemd[1]: consul@1.service: Main process exited, code=exited, status=1/FAILURE Oct 20 15:54:03 coreos02 systemd[1]: consul@1.service: Unit entered failed state. Oct 20 15:54:03 coreos02 systemd[1]: consul@1.service: Failed with result &amp;#39;exit-code&amp;#39;. I added a ExecStartPre command to my unit definition to see what was going on.</description>
    </item>
    
    <item>
      <title>Manually remove unit from etcd</title>
      <link>https://brooksgarrett.com/blog/manually-remove-unit-from-etcd/</link>
      <pubDate>Mon, 19 Oct 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/manually-remove-unit-from-etcd/</guid>
      <description>Long story short I was playing with Docker and got myself into quite the bind. After deploying a nice and easy test cluster I decided to have a go with Consul using the &amp;ldquo;official&amp;rdquo; Consul on CoreOS. Big problem because that Dockerfile expects you to be running &amp;ldquo;etcd&amp;rdquo; while my cluster is running &amp;ldquo;etcd2&amp;rdquo;! That means it breaks etcd, fleet, and the entire CoreOS system. As a bonus, since CoreOS handles HA it then proceeds to BREAK THE WHOLE CLUSTER.</description>
    </item>
    
    <item>
      <title>Git History is Forever</title>
      <link>https://brooksgarrett.com/blog/git-history-is-forever/</link>
      <pubDate>Thu, 10 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/git-history-is-forever/</guid>
      <description>There are lots of stories about people accidentally leaking credentials or other sensitive information via their Git repositories. It never fails that someone is working on their early project and hardcodes an API key. Then they commit that key and the leak is on.
It&amp;rsquo;s important to understand how Git works and what you should do if this happens to you. First understand that Git is effectively a log that will forever remember all your commits and changes even long after you wish it wouldn&amp;rsquo;t.</description>
    </item>
    
    <item>
      <title>Thoughts on Community</title>
      <link>https://brooksgarrett.com/blog/thoughts-on-community/</link>
      <pubDate>Thu, 10 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/thoughts-on-community/</guid>
      <description>Another day dawns in the world of Information Security and along with it new controversy and drama. If you haven&amp;rsquo;t been watching Twitter lately then you&amp;rsquo;ve been missing out.
It all starts with a tweet and ends with a cacophony. Essentially irongeek is a guy that films and hosts said video of multiple conferences including BSides Las Vegas. The guy has a long history of making snide comments so the joke McGrew mentions shouldn&amp;rsquo;t be a huge surprise.</description>
    </item>
    
    <item>
      <title>DynamicDNS with CloudFlare</title>
      <link>https://brooksgarrett.com/blog/dynamicdns-with-cloudflare/</link>
      <pubDate>Wed, 09 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/dynamicdns-with-cloudflare/</guid>
      <description>I&amp;rsquo;ve been using CloudFlare for a while now to protect my sites and generally make life easy. If you haven&amp;rsquo;t seen it before then stop here and go check them out. I&amp;rsquo;ll wait.
If you&amp;rsquo;re already familiar then you know the one of the key requirements is that CloudFlare becomes your DNS provider. They also have a wonderful API. Connect the dots and you too can replace your DDNS provider with a completely free solution, get better security, and accelerate your site!</description>
    </item>
    
    <item>
      <title>The Lamy Safari</title>
      <link>https://brooksgarrett.com/blog/the-lamy-safari/</link>
      <pubDate>Wed, 09 Sep 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/the-lamy-safari/</guid>
      <description>I&amp;rsquo;ve been questioned multiple times about why I always seem to have one of my Lamy Safari pens clipped close at hand. Typically the question is &amp;ldquo;Why is that pen the best pen?&amp;rdquo;
 It&amp;rsquo;s not.
 The Lamy Safari is a low end pen from German manufacturer Lamy that is composed of a plastic body and a steel nib. The pen itself is very light compared to &amp;ldquo;higher end&amp;rdquo; competitors.</description>
    </item>
    
    <item>
      <title>Where&#39;d You Go?</title>
      <link>https://brooksgarrett.com/blog/where-d-you-go/</link>
      <pubDate>Wed, 29 Jul 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/where-d-you-go/</guid>
      <description>I&amp;rsquo;ve been gone for a while and sorry (truly) for that. I&amp;rsquo;ve been really busy lately working on assisting with a course being taught at Black Hat and transitioning into a new position at my primary job.
All said it&amp;rsquo;s an exciting time in my life. I&amp;rsquo;m surrounded by energetic and intelligent people who make me better in every way. I&amp;rsquo;m supported by an excellent family. I&amp;rsquo;m incredibly thankful for everyone in my life right now.</description>
    </item>
    
    <item>
      <title>What I Wish You Knew About Volunteer Firefighters</title>
      <link>https://brooksgarrett.com/blog/what-i-wish-you-knew-about-volunteer/</link>
      <pubDate>Tue, 12 May 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/what-i-wish-you-knew-about-volunteer/</guid>
      <description>Sunday morning our department was paged out to support a life flight helicopter landing at a local hospital. It&amp;rsquo;s a pretty routine thing. We get the page, we respond to the station and retrieve an engine, and lastly we secure the landing pad and provide safety for the incoming aircraft. On this particular morning the call went out around 0600 and we were there by 0608. Afterward around 0730 I decided to stop in the gas station to grab a soda before going home.</description>
    </item>
    
    <item>
      <title>Local DNS Override for Testing</title>
      <link>https://brooksgarrett.com/blog/local-dns-override-for-testing/</link>
      <pubDate>Wed, 29 Apr 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/local-dns-override-for-testing/</guid>
      <description>One of of primary projects involves a local telemetry agent which needs to speak to two separate endpoints. One endpoint is a command channel which provides configuration information while the second is an event channel where the agent sends telemetry and security event data.
Currently we use HAProxy to balance the event channel traffic among several servers. I wanted to move to Amazon Elastic Load Balancing to take advantage of their redundancy and reliability.</description>
    </item>
    
    <item>
      <title>Remote Streaming with Pi and MPD</title>
      <link>https://brooksgarrett.com/blog/remote-streaming-with-pi-and-mpd/</link>
      <pubDate>Sun, 22 Mar 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/remote-streaming-with-pi-and-mpd/</guid>
      <description>I wanted to be able to stream Spotify on my outdoor system without resorting to Bluetooth and streaming from my phone. I still had my original Raspberry Pi Model B around so I started looking for a way to run Spotify on the command line. That gave way to the Mopidy project. Getting it running on the Pi is fairly well documented. I noticed a step or two missing so below I placed my exact steps to get up and running on my Pi.</description>
    </item>
    
    <item>
      <title>Nagios SMS Alerts with Amazon SNS</title>
      <link>https://brooksgarrett.com/blog/nagios-sms-alerts-with-amazon-sns/</link>
      <pubDate>Thu, 12 Feb 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/nagios-sms-alerts-with-amazon-sns/</guid>
      <description>Nagios is the stalwart go-to system monitoring solution that won&amp;rsquo;t die. Despite a bevy of replacement solutions and huge set of commercial offerings the little open source project that could keeps our infrastructure running. One of the key components of Nagios is alerting when something breaks. Today I integrated our Nagios deployment with Amazon Simple Notification Service to deliver SMS messages to our engineers.
Configuring SNS First, be aware that currently ONLY US East 1 supports SMS messaging.</description>
    </item>
    
    <item>
      <title>Clean Passwords from Logs</title>
      <link>https://brooksgarrett.com/blog/clean-passwords-from-logs/</link>
      <pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/clean-passwords-from-logs/</guid>
      <description>Today was a day of fixing things. We had some issues with a bad behaving Storm topology so I wrote up some scripts to automate collecting the heap dump, generating a report, tailing relevant logs, and then shipping the whole thing off to a file server. Worked great until I realized the developers were keeping sensitive information in the topology config which is spewed into the log on every restart!</description>
    </item>
    
    <item>
      <title>Fix OhMyZSH Prompts in PuTTY</title>
      <link>https://brooksgarrett.com/blog/fix-ohmyzsh-prompts-in-putty/</link>
      <pubDate>Sat, 24 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/fix-ohmyzsh-prompts-in-putty/</guid>
      <description>Part of the draw to oh-my-zsh and zsh in general is the tight git integration. While I&amp;rsquo;m working on the console I see this:
➜ _posts git:(master) ✗ This is awesome. The arrow tells me my last command returned an exit code 0 (since it is green), I know I&amp;rsquo;m in my posts directory, I&amp;rsquo;m on the master branch, and I have unstaged/uncommitted changes. That&amp;rsquo;s way more useful than knowing I&amp;rsquo;m on a server as a certain user!</description>
    </item>
    
    <item>
      <title>Write More with VI and Bash</title>
      <link>https://brooksgarrett.com/blog/write-more-with-vi-and-bash/</link>
      <pubDate>Thu, 22 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/write-more-with-vi-and-bash/</guid>
      <description>Part of my New Year&amp;rsquo;s resolution is to write more. My challenge is I&amp;rsquo;m incredibly busy and incredibly lazy.
To make sure I have no excuses I&amp;rsquo;ve already optimized how I publish. The problem now is I have to keep entering YAML front matter into my posts. Recognizing this causes me to ignore writing I set out to fix it.
My solution is three parts:
 A basic template An awk script to parse the template A shell script to tie it all together  The template is very basic and essentially contains only the front matter and placeholder markers.</description>
    </item>
    
    <item>
      <title>Chuck CLI</title>
      <link>https://brooksgarrett.com/blog/chuck-cli/</link>
      <pubDate>Wed, 21 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/chuck-cli/</guid>
      <description>My good friend Daniel Miessler dropped a tweet the other day talking about the Chuck Norris Database API. Now as soon as I heard there is an API available I had to get it into my shell for those days when humor is all that keeps me from rm -rf / the world.
Here&amp;rsquo;s how I did it.
➜ ~ tail -n 1 ~/.oh-my-zsh/lib/aliases.zsh alias chuck=&amp;#34;curl -s http://api.icndb.com/jokes/random/ | egrep -oh &amp;#39;\&amp;#34;joke\&amp;#34;: \&amp;#34;[^\&amp;#34;]+&amp;#39; | awk -F \\\&amp;#34; &amp;#39;{print \$4;}&amp;#39;&amp;#34; ➜ ~ chuck Chuck Norris doesn&amp;#39;t use GUI, he prefers COMMAND line.</description>
    </item>
    
    <item>
      <title>Diffie-Hellman groups in VPN</title>
      <link>https://brooksgarrett.com/blog/diffie-hellman-groups/</link>
      <pubDate>Mon, 05 Jan 2015 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/diffie-hellman-groups/</guid>
      <description>I&amp;rsquo;ve been working with VPNs quite a bit recently and keep running into issues where the other party uses the bit strength and group number for Diffie-Hellman groups interchangeably. Here is a quick reference list:
 Group 1: 768-bit Group 2: 1024-bit Group 5: 1536-bit Group 14: 2048-bit Group 15: 3072-bit Group 19: 256-bit EC Group 20: 384-bit EC  </description>
    </item>
    
    <item>
      <title>Cordova Browser Platform Support on Linux</title>
      <link>https://brooksgarrett.com/blog/cordova-browser-on-linux/</link>
      <pubDate>Mon, 29 Dec 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/cordova-browser-on-linux/</guid>
      <description>I&amp;rsquo;m working on a new mobile application which, of course, means Cordova. Recently Cordova added the &amp;ldquo;browser&amp;rdquo; platform so you can test your application right on the desktop with no hackery required.
Getting the platform added to your project and run it as a browser app is as simple as:
cordova platform add browser cordova run browser I, however, am on Linux and when I first tried to run on the browser platform I only got a blank output with no browser.</description>
    </item>
    
    <item>
      <title>On Roughhousing</title>
      <link>https://brooksgarrett.com/blog/roughhousing/</link>
      <pubDate>Sun, 23 Nov 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/roughhousing/</guid>
      <description>I&amp;rsquo;m an absolutely huge fan of rugby so what comes next may shock you:
 I regularly flip, turn, body slam, and fold my two year old.
 To clarify I&amp;rsquo;m not injuring him or punishing him but instead engaging in old-fashioned rough housing. Typically you would be made aware of the activity by the sounds of laughter and squeals emanting from his mouth. The video below is absolutely spot on given one important rule:</description>
    </item>
    
    <item>
      <title>Apple is winning, but not why you think</title>
      <link>https://brooksgarrett.com/blog/apple-is-winning/</link>
      <pubDate>Fri, 24 Oct 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/apple-is-winning/</guid>
      <description>Apple is winning the mobile war but not for the obvious reasons. Apple is winning because they are the first to realize that phones don&amp;rsquo;t matter. Samsung still thinks that making an awesome phone will win market share. Google is standing in a good spot but digging a big hole. Amazon is somewhere in France trying to locate New York. Nokia and Microsoft are on a good trajectory.
What am I rambling about?</description>
    </item>
    
    <item>
      <title>Professional Incident Response</title>
      <link>https://brooksgarrett.com/talk/professional-incident-response/</link>
      <pubDate>Thu, 16 Oct 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/talk/professional-incident-response/</guid>
      <description>This presentation was first presented at HouSecCon 5.0 on Thursday 16 October 2014.
 You built it; they broke it; now what? In this talk learn how to advance your incident response plan beyond a policy document and into a scalable framework that enables your team to respond, track, and report on incidents of every size by leveraging what professional responders do every single day.
  [Slide Deck Download](http://data.brooksgarrett.com/collateral/decks/Professional Incident Response.</description>
    </item>
    
    <item>
      <title>Just Get Flux</title>
      <link>https://brooksgarrett.com/blog/justgetflux/</link>
      <pubDate>Tue, 16 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/justgetflux/</guid>
      <description>A friend of mine recommended I try out Flux and I&amp;rsquo;m ever glad I did. The basic premise is that Flux monitors the time of day and adjusts your screen temperature (or hue) to match ambient light levels. The result is a much more enjoyable session at night. I&amp;rsquo;m sitting in my living room with only a single lamp on and the glow of the light bulb on the keyboard is a near identical match to the color setting suggested by Flux.</description>
    </item>
    
    <item>
      <title>Static Site with Jekyll, GitHub, TravisCI, and S3</title>
      <link>https://brooksgarrett.com/blog/jekyll-github-travisci-s3/</link>
      <pubDate>Tue, 16 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/jekyll-github-travisci-s3/</guid>
      <description>For a while now I&amp;rsquo;ve been exclusively using [Jekyll][jekyll] to publish my site. At first I started with basic [Jekyll][jekyll] running on [DigitalOcean][do]. This worked well but meant I needed to SSH to a server when I wanted to post content. Not really the best requirement for a seamless workflow but it worked for a while. Then I started using Git and GitHub to manage the content as a repository. A bit of php later and I had a post-commit hook in GitHub to notify the [DigitalOcean][do] server that new content was ready.</description>
    </item>
    
    <item>
      <title>Dynamically controllable dynamic scanning</title>
      <link>https://brooksgarrett.com/talk/distributed-dynamic-scanning/</link>
      <pubDate>Wed, 10 Sep 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/talk/distributed-dynamic-scanning/</guid>
      <description>This presentation was first presented at HP Protect 2014 on Wednesday 10 September 2014. This talk was a collaborative presentation with 4 speakers:
 Brandon Spurth Jeremy Brooks Jonathan Griggs Brooks Garrett   Dynamic scanning is a staple of the web application security community. The complex nature of scanning each site and the expertise required to run the tools and interpret the results often limits the deployment models. Development teams usually do not contain a security expert and must rely on an external team to perform their dynamic audits.</description>
    </item>
    
    <item>
      <title>Intro to Podcasting</title>
      <link>https://brooksgarrett.com/blog/intro-to-podcast/</link>
      <pubDate>Fri, 31 Jan 2014 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/intro-to-podcast/</guid>
      <description>I came about in the InfoSec profession with the likes of @SpaceRogue and @ThisIsHNN bringing me weekly digestibles of all the things happening in the world of InfoSec. My team would huddle in the forensics lab each Friday and bear witness to a painful ridicule or Adobe each and every week as we heard all about the latest vulns and exploits. Oh, and who would ever forget the running commentary that was the Summer of Lulz.</description>
    </item>
    
    <item>
      <title>Remap Keys in Ubuntu</title>
      <link>https://brooksgarrett.com/blog/remap-keys-in-ubuntu/</link>
      <pubDate>Sat, 28 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/remap-keys-in-ubuntu/</guid>
      <description>I&amp;rsquo;m following along Daniel Miessler&amp;rsquo;s Vim Primer and saw he remapped the Caps Lock key to be his Control key. I thought this was an interesting concept but I&amp;rsquo;d rather have Escape on my Caps Lock. Also, I&amp;rsquo;m running Ubuntu instead of OSX. Off to the interwebs!
A short bit of Google-fu brough me to a couple of resources which answered the question for me. Combining the information I found led me to this process for remapping the keys:</description>
    </item>
    
    <item>
      <title>Dad Picks Up Kid, Gets Arrested</title>
      <link>https://brooksgarrett.com/blog/child-pickup-arrest/</link>
      <pubDate>Sun, 24 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/child-pickup-arrest/</guid>
      <description>As a parent what happens in this video is completely appalling. A man goes to a school after school is over to retrieve his children and is arrested. Now, being arrested in front of your kids is bad enough when you have an outstanding warrant or some other lawful reason for being detained.
This guy, however, had the audacity to challenge a law enforcement officer on whether (as defined in state law) he was entitled to pick up his children.</description>
    </item>
    
    <item>
      <title>Fit for Rugby</title>
      <link>https://brooksgarrett.com/blog/fit-for-rugby/</link>
      <pubDate>Fri, 01 Nov 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/fit-for-rugby/</guid>
      <description>I&amp;rsquo;ve been playing rugby for several years now and the sport never lets me down. It is incredibly fast paced, physical, and requires team effort. For proof you can look to the Rugby Sevens tournaments where the USA Eagles featured one of the fastest men in rugby yet still did not win the series even though Rugby 7&amp;rsquo;s is largely a game of speed. The reason is simple. Rugby is a team sport and it is pretty simple to neutralize one key player.</description>
    </item>
    
    <item>
      <title>Sriracha is the Spice of Life</title>
      <link>https://brooksgarrett.com/blog/sriracha-the-spice-of-life/</link>
      <pubDate>Fri, 25 Oct 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/sriracha-the-spice-of-life/</guid>
      <description>Note: This article is the start of a series investigating how cross industry lessons can be directly applied to the IT and Information Security spaces.
I recently saw an article about the company behind Sriracha. If you&amp;rsquo;ve never tasted Sriracha sauce, proceed to your nearest supermarket, purchase a bottle, add to anything (no, seriously. ANYTHING), and then come back for the rest of this article. I&amp;rsquo;ll wait.
As a fellow lover of the Rooster you know just how amazing it is and according to the article that isn&amp;rsquo;t an accident.</description>
    </item>
    
    <item>
      <title>Runtime Protection in the Real World</title>
      <link>https://brooksgarrett.com/talk/runtime-protection-real-world/</link>
      <pubDate>Mon, 16 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/talk/runtime-protection-real-world/</guid>
      <description>This presentation was first presented at HP Protect 2013 on Wednesday 16 September 2013.
 Learn how HP Fortify On Demand is leveraging Fortify Runtime Protection to protect our own cloud services. See tips and techniques learned from deploying Runtime Protection in the real world, and learn how you can leverage the same technology in your environment without compromising performance or uptime. You&amp;rsquo;ll come away with tips on deploying, managing, and integrating Fortify Runtime Protection so you can block attacks while providing your developers with line-of-code detail regarding how to close the holes.</description>
    </item>
    
    <item>
      <title>A Good Day to Remember What is Important</title>
      <link>https://brooksgarrett.com/blog/a-good-day-to-remember/</link>
      <pubDate>Wed, 11 Sep 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/a-good-day-to-remember/</guid>
      <description>My Facebook is alive with flags, Pentagon images, and Twin Tower tributes. Make no mistake about it: This is an incredibly important day. Today, 12 years ago, 343 of the Bravest, 60 of the Finest, and 15 of the Strongest perished. These were first responders who trained daily to serve the public but until 9/11 and the establishment of DHS and the grants that entity would bring public safety just wasn&amp;rsquo;t prepared for the massive emergency brought by terrorist attacks.</description>
    </item>
    
    <item>
      <title>Manually Migrating Guests from Disconnected ESX Host</title>
      <link>https://brooksgarrett.com/blog/disconnected-esx-host/</link>
      <pubDate>Thu, 29 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/disconnected-esx-host/</guid>
      <description>Earlier we lost the management interface on one of our ESX hosts in a cluster. The host was powered on and the guests were responsive but the host was completely unmanageable (listed as &amp;lsquo;disconnected&amp;rsquo; in Sphere) and the guest VM&amp;rsquo;s were listed as &amp;lsquo;disconnected&amp;rsquo; as well.
Obviously we needed to reboot the host and migrate the VM&amp;rsquo;s but that VMotion was out of the question. Finally we resorted to powering down the guest image and using the following steps to recover the guest machines on a new host.</description>
    </item>
    
    <item>
      <title>Intro to Hacking - Resources</title>
      <link>https://brooksgarrett.com/blog/hacking-resources/</link>
      <pubDate>Sun, 25 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/hacking-resources/</guid>
      <description>This is just a place holder for interesting resource for self-education in InfoSec.
Training Security  [Metasploit Unleashed - (Free)] (http://www.offensive-security.com/metasploit-unleashed/Main_Page) [Dr. Fu Malware Analysis - (Free)] (http://fumalwareanalysis.blogspot.com/p/malware-analysis-tutorials-reverse.html)  Programming  [Codecademy - Learn to Code!] (http://www.codecademy.com/)  Reference  [SQLInjection Techniques] (http://www.chokepoint.net/2013/08/using-mysql-locally-for-testing-sql.html)  Resources  [VulnHub] (http://vulnhub.com/) [Mutillidae] (http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10) [Metasploit Community Download] (http://www.rapid7.com/products/metasploit/metasploit-community-registration.jsp) [Armitage - GUI for Metasploit] (http://www.fastandeasyhacking.com/) [SecurityTube - YouTube but you learn stuff&amp;hellip;] (http://www.securitytube.net/)  CTF Competitions  [CSAW 2013 - Nov 14-16 2013] (https://csaw.</description>
    </item>
    
    <item>
      <title>Nearly 150 Free Books</title>
      <link>https://brooksgarrett.com/blog/free-books-from-msft/</link>
      <pubDate>Mon, 12 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/free-books-from-msft/</guid>
      <description>Microsoft apparently has a phat stack of free books
Perhaps if you ran this in the Chrome Console good things will happen?
function printLink(link) { if (link.textContent === &amp;#39;MOBI&amp;#39;){ console.log(link.href); } } var allLinks = document.links; for (var i=0; i&amp;lt;allLinks.length; i++) { printLink(allLinks[i]); } </description>
    </item>
    
    <item>
      <title>My Experience with Chef, Redux</title>
      <link>https://brooksgarrett.com/blog/my-experience-with-chef-redux/</link>
      <pubDate>Thu, 08 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/my-experience-with-chef-redux/</guid>
      <description>[Chef] (http://opscode.com &amp;ldquo;Chef&amp;rdquo;) isn&amp;rsquo;t SO horrible. Here is the running list of things I&amp;rsquo;ve done to get it working from a client perspective.
Installing Gems If you use the omnibus installer (from the opscode site as opposed to apt/yum) you can&amp;rsquo;t just use Gem to install things. There seems to be a disconnect between the ruby runtime the knife command uses and the gems repository your system normally uses. Instead, you need to use the embedded gem command as follows (this example demonstrates installing the knife-ec2 gem):</description>
    </item>
    
    <item>
      <title>My Experience with Chef</title>
      <link>https://brooksgarrett.com/blog/my-experience-with-chef/</link>
      <pubDate>Tue, 06 Aug 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/my-experience-with-chef/</guid>
      <description>[Chef] (http://opscode.com &amp;ldquo;Chef&amp;rdquo;) is an automation platform that is supposed to make your life easier. Well if you can get it to install. Oh, and run. And don&amp;rsquo;t forget to learn its special syntax which is based on Ruby. So maybe learn some Ruby. AND do try to remember that while Windows is supported, it&amp;rsquo;s still pretty much just an interface into PowerShell.
I&amp;rsquo;ve spent weeks fighting with Chef. First trying to install it.</description>
    </item>
    
    <item>
      <title>Practice Safe Hex, people...</title>
      <link>https://brooksgarrett.com/blog/safe-hex/</link>
      <pubDate>Mon, 22 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/safe-hex/</guid>
      <description>A good friend of mine Daniel Miessler hit on an interesting phrase, &amp;ldquo;Safe Hex.&amp;rdquo; Variations on this phrase have been floating around and I decided to have some fun with DefCon rapidly approaching.
This is your Public Service Announcement:
Avoid Unauthorized Penetration, Secure Your App by Practicing Safe Hex.</description>
    </item>
    
    <item>
      <title>When I Spend 4 hours on a problem...</title>
      <link>https://brooksgarrett.com/blog/me-after-troubleshooting/</link>
      <pubDate>Sun, 21 Jul 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/me-after-troubleshooting/</guid>
      <description>I came across this image after spendig half a day troubleshooting a problem only to realize the local cache was pointing to a non-existent location. Pretty much sums up the day&amp;hellip;</description>
    </item>
    
    <item>
      <title>pushd and popd</title>
      <link>https://brooksgarrett.com/blog/pushd-and-popd/</link>
      <pubDate>Sat, 09 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/pushd-and-popd/</guid>
      <description>I don&amp;rsquo;t know how I&amp;rsquo;ve gone this long without this pair of commands. Use pushd dir to stick a directory on the dirs stack and popd to take the last off. Where is this useful? Imagine working in /var/www/logs and now you need to peek over at /home/user and while there you pop into some other directory. Well now cd - doesn&amp;rsquo;t work and you&amp;rsquo;re left typing the full path back to the logs you were reviewing.</description>
    </item>
    
    <item>
      <title>Renaming Volume Groups in Linux</title>
      <link>https://brooksgarrett.com/blog/renaming-volume-groups-in-linux/</link>
      <pubDate>Sat, 09 Mar 2013 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/renaming-volume-groups-in-linux/</guid>
      <description>What is that you say? Cloned a Linux machine and decided to rename that misnamed volume group using vgrename /dev/vg_RAWRStupidName /dev/vg_NiceName? Oh and now your rebooted without first changing your /etc/fstaband /etc/grub.confand get a good old fashioned Kernel Panic? Well lucky you I remembered to write this down:
 When booting go into the Edit mode for Grub (Generally ESC during boot). Change the kernel boot parameters to reference your new VG name.</description>
    </item>
    
    <item>
      <title>About Brooks Garrett</title>
      <link>https://brooksgarrett.com/about/</link>
      <pubDate>Fri, 24 Feb 2012 15:41:48 -0500</pubDate>
      
      <guid>https://brooksgarrett.com/about/</guid>
      <description>I&amp;rsquo;m currently based out of Valdosta, GA and have a wonderful family. I&amp;rsquo;m infatuated with technology and can&amp;rsquo;t wait to get my hands on the newest tools, techniques, and shiny objects so I can tear them apart and make cool things. That sounds really awesome but speaking thruthfully it really means I stare at a linux console. A LOT.
I Fight Fires No, seriously. Like pyrolysis. I spent 3 years as a volunteer firefighter in Bulloch county, Georgia while attending school.</description>
    </item>
    
    <item>
      <title>HTML5 Input Validation Is Not Sanitization</title>
      <link>https://brooksgarrett.com/blog/html5-input-validation-is-not-sanitization/</link>
      <pubDate>Fri, 07 Oct 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/html5-input-validation-is-not-sanitization/</guid>
      <description>One of the hyped features of HTML5 is the ability to specify the input &amp;ldquo;type&amp;rdquo; of an input on a form as one of several new options:
 color date datetime datetime-local month week time email number range search tel url  The implementation of this new feature couldn&amp;rsquo;t be easier, simply specify the &amp;ldquo;type&amp;rdquo; attribute of your input field and let the browser handle the rest. For example, by specifying an input type of &amp;ldquo;email&amp;rdquo;, Chrome will validate the input to ensure it is a validly formed email address.</description>
    </item>
    
    <item>
      <title>Amazing Poem About Legacy</title>
      <link>https://brooksgarrett.com/blog/amazing-poem-about-legacy/</link>
      <pubDate>Mon, 25 Apr 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/amazing-poem-about-legacy/</guid>
      <description>The Bridge Builder
An old man, going a lone highway, Came, at the evening, cold and gray, To a chasm, vast, and deep, and wide, Through which was flowing a sullen tide. The old man crossed in the twilight dim; The sullen stream had no fear for him; But he turned, when safe on the other side, And built a bridge to span the tide. &amp;#34;Old man,&amp;#34; said a fellow pilgrim, near, &amp;#34;You are wasting strength with building here; Your journey will end with the ending day; You never again will pass this way; You’ve crossed the chasm, deep and wide- Why build you this bridge at the evening tide?</description>
    </item>
    
    <item>
      <title>WTF time? Give me options!</title>
      <link>https://brooksgarrett.com/blog/wtf-time-give-me-options/</link>
      <pubDate>Tue, 08 Feb 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/wtf-time-give-me-options/</guid>
      <description>I&amp;rsquo;m looking at the computational cost of computing various hashes. Naturally, I want to collect run time statistics on each hash command and collect this metric several thousand times.
The natural choice is to go with time, but I need to use time&amp;rsquo;s format option to output a CSV output. Sounds easy:
brooks@saosin:~$ time -f %e,%S,%U md5sum .viminfo bash: -f: command not found real 0m0.002s user 0m0.000s sys 0m0.002s WTF? -f is an option, not a command!</description>
    </item>
    
    <item>
      <title>Split(ing) Hairs</title>
      <link>https://brooksgarrett.com/blog/splitting-hairs/</link>
      <pubDate>Fri, 07 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/splitting-hairs/</guid>
      <description>The super timeline often exceeds 65,000 rows and is extremely slow in Excel. To fix this, split the file into manageable chunks.
wc -l filename.csv gives the number of lines in a file.
split -l 65000 -d supertimeline.csv supertimeline will generate multiple files named supertimeline.00 (01, 02, etc) with 65000 lines each. -l is the line count and -d tells split to use digits for the prefix instead of letters (00 instead of AA).</description>
    </item>
    
    <item>
      <title>Getting disk_stat Working in SIFT</title>
      <link>https://brooksgarrett.com/blog/getting-disk_stat-working-in-sift/</link>
      <pubDate>Tue, 04 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/getting-disk_stat-working-in-sift/</guid>
      <description>SANS publishes the SIFT (SANS Investigative Forensic Toolkit) Workstation as a VMWare appliance. The environment is impeccable for rolling out a mobile forensics workstation and is preloaded with a wealth of tools. The workstation was created by Rob Lee.
All that being said, nothing is absolutely perfect. A huge drawback to the SIFT workstation is getting disk_stat working so an investigator can detect HPA&amp;rsquo;s on a suspect drive. Acquiring a disk with an HPA requires additional steps and missing the HPA can mean missing evidence.</description>
    </item>
    
    <item>
      <title>Mounting Filesystems</title>
      <link>https://brooksgarrett.com/blog/mounting-filesystems/</link>
      <pubDate>Sun, 02 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/mounting-filesystems/</guid>
      <description>When mounting an image of a journaled filesystem, a couple of shortcuts repeatedly save me time and energy. First, VFAT and NTFS disks reserve (generally) the first 63 sectors for the partition table and meta info. Considering 512 is a very common size for sectors, 32256 becomes a very good number to remember.
 32256 is the number of bytes you generally need to offset when mounting a volume.
 This offset is done in mount as follows:</description>
    </item>
    
    <item>
      <title>Sorting out Sorter</title>
      <link>https://brooksgarrett.com/blog/sorting-out-sorter/</link>
      <pubDate>Sun, 02 Jan 2011 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/sorting-out-sorter/</guid>
      <description>Brian Carrier has provided the forensics community with tools that are absolutely vital to open source forensics. One tool I tend to under utilize is sorter. Sorter is used to &amp;lsquo;sort&amp;rsquo; files in an image into categories using file headers as the primary resource. Thus the output is a set of text files (&amp;ldquo;images.txt&amp;rdquo;, &amp;ldquo;&amp;ldquo;archive.txt&amp;rdquo;, etc.) which details what the files are. This can greatly reduce investigation time if you know what you are looking for (Images?</description>
    </item>
    
    <item>
      <title>Who is using Google Domain Apps?</title>
      <link>https://brooksgarrett.com/blog/who-is-using-google-domain-apps/</link>
      <pubDate>Thu, 30 Dec 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/who-is-using-google-domain-apps/</guid>
      <description>This could be completely useless, or some interesting information. I guess it depends on you&amp;hellip;
Google for inurl:googlehostedservice.html
This shows which domains are most likely using Google Domain Apps (or at least trying to). You could just check MX records too, but MX records aren&amp;rsquo;t indexed by Google now are they?</description>
    </item>
    
    <item>
      <title>Why I firmly oppose the burning of the Koran and strongly support the NYC Mosque</title>
      <link>https://brooksgarrett.com/blog/why-i-firmly-oppose-the-burning-of-the-koran/</link>
      <pubDate>Thu, 09 Sep 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/why-i-firmly-oppose-the-burning-of-the-koran/</guid>
      <description>My thoughts on why burning the Koran is bad, and allowing the Muslim community in NYC to build their Community Center/Mosque/Whatever. These are my thoughts, please feel free to form your own and argue with me. If, however, you begin quoting a major news outlet without your own critical analysis, I will most likely unfriend you instantly.
One is opening a community center. The group opening a center was not affiliated with the people who attacked our nation 9 years ago.</description>
    </item>
    
    <item>
      <title>Next Web Service</title>
      <link>https://brooksgarrett.com/blog/next-web-service/</link>
      <pubDate>Thu, 12 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/next-web-service/</guid>
      <description>So after publishing the NRSL webservice http://brooksgarrett.com:81/json/SHA1_HASH (No longer functional), I&amp;rsquo;m looking for a new project. I&amp;rsquo;m thinking of munging and exposing the Microsoft Update list as a XML feed for powering internal patch management tools. I&amp;rsquo;ll post more when I get it implemented.</description>
    </item>
    
    <item>
      <title>Universal USB Installer – Easy as 1 2 3</title>
      <link>https://brooksgarrett.com/blog/universal-usb-installer-easy-as-1-2-3/</link>
      <pubDate>Thu, 12 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/universal-usb-installer-easy-as-1-2-3/</guid>
      <description>Universal USB Installer – Easy as 1 2 3 | USB Pen Drive Linux.
This site is a great reference for installing Linux onto a bootable flash drive. I highly recommend using the Multiboot ISO Loader. I use it to have an Ubuntu installer and DSL on the same jump drive.</description>
    </item>
    
    <item>
      <title>Neat SIM Tools Worth Looking At</title>
      <link>https://brooksgarrett.com/blog/neat-sim-tools-worth-looking-at/</link>
      <pubDate>Wed, 11 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/neat-sim-tools-worth-looking-at/</guid>
      <description>This is a list of tools I&amp;rsquo;m coming across which warrant looking in to but don&amp;rsquo;t suit my current need. I&amp;rsquo;ll update as I research.
 samhain prelude ossim ossec-HIDS libsafe prewikka osiris sec (Simple Event Correlator) cep  </description>
    </item>
    
    <item>
      <title>MySQL and Efficient Data Encoding</title>
      <link>https://brooksgarrett.com/blog/mysql-and-efficient-data-encoding/</link>
      <pubDate>Sun, 08 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/mysql-and-efficient-data-encoding/</guid>
      <description>As I&amp;rsquo;ve been working to expose the National Software Reference List via a new webservice, I&amp;rsquo;ve had to find ways to store data efficiently to avoid nuking my server. One of the biggest issues was the shear size of the database.
Each file record has 2 hashes, a SHA-1 and a MD5 hex-encoded value. Currently, there are 58,272,836 files hashed as part of the NSRL effort. This means 58,272,836 rows of data and 116,545,672 hash values.</description>
    </item>
    
    <item>
      <title>MySQL - Loading Data from CSV</title>
      <link>https://brooksgarrett.com/blog/mysql-loading-data-from-csv/</link>
      <pubDate>Tue, 03 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/mysql-loading-data-from-csv/</guid>
      <description>I have a 1.86 GB CSV file which I want to put into a table in MySQL. Originally I started by using VIM to modify the source data to add &amp;ldquo;INSERT INTO &amp;hellip;&amp;rdquo; statements in front of each line. This approach quickly turned kludgy and took a painfully long time to complete.
Solution? MySQL includes built in support for doing this exact thing. Here is what I did, tailor to your needs:</description>
    </item>
    
    <item>
      <title>MySQL and Indexes</title>
      <link>https://brooksgarrett.com/blog/mysql-and-indexes/</link>
      <pubDate>Tue, 03 Aug 2010 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/mysql-and-indexes/</guid>
      <description>So what happens when you have over 1 million rows in a table and you try to do a lookup?
mysql&amp;gt; describe file; +-------------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------+------+-----+---------+-------+ | sha1 | binary(20) | NO | | NULL | | | md5 | binary(16) | NO | | NULL | | | crc | binary(4) | NO | | NULL | | | filename | varchar(150) | YES | | NULL | | | filesize | int(11) | YES | | NULL | | | ProductCode | smallint(5) unsigned | YES | | NULL | | | oscode | varchar(15) | YES | | NULL | | | specialcode | varchar(15) | YES | | NULL | | +-------------+----------------------+------+-----+---------+-------+ 8 rows in set (0.</description>
    </item>
    
    <item>
      <title>404 Pages in WordPress</title>
      <link>https://brooksgarrett.com/blog/404-pages-in-wordpress/</link>
      <pubDate>Fri, 04 Dec 2009 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/404-pages-in-wordpress/</guid>
      <description>If you are receiving a 404 in WordPress, there are 2 possible causes:
 .htaccess This file is located in your web root directory. Change the permissions to 666 then modify your PermaLink settings and save them. This will rewrite your .htaccess for you. Be sure to change it back to 440 when done. apached.conf In the apache config for your web site, make sure AllowOverides is set to All.  </description>
    </item>
    
    <item>
      <title>Create a Git archive in non empty folder</title>
      <link>https://brooksgarrett.com/blog/create-a-git-archive-in-non-empty-folder/</link>
      <pubDate>Fri, 04 Dec 2009 00:00:00 +0000</pubDate>
      
      <guid>https://brooksgarrett.com/blog/create-a-git-archive-in-non-empty-folder/</guid>
      <description>git init git remote add origin remote_machine:~brentg/my_setup.git git fetch git branch master origin/master git checkout master </description>
    </item>
    
  </channel>
</rss>
