Crawfish Recipe

Here I’ve transcribed my father’s crawfish recipe. The original link still exists (Dad’s Crawfish Recipe), but he hasn’t updated the site in almost a decade. This page will be my copy of it.

Boiled Crawfish

Tools

  • Rapid gas (propane) burner
  • 60+ quart boiling pot with matching lid
  • strainer/colander, fits inside the pot (pot and strainer usually bought as a single kit)
  • 3-4ft. wooden cooking or boat paddle

Ingredients

Seasoning Mix

  • Dad usually buys the dry seafood boil mix from a commercial supplier. Some local seafood shops also prepare their own. The alternative is the cloth bags of dried spices to which you add salt. As a last resort, you can buy the liquid spices, but this usually results in a rather bland boil, unless you really spice it up a with more cayenne and salt. I have recently been using the dry spice mix (includes the salt) from Louisiana Fish Fry Products in Baton Rouge, LA (1.800.356.2905). Zatarain’s makes good stuff too.
  • 2020 Update:  This Spring, due to COVID-19 quarantining/social distancing, April and I decided to make several (8 total) small 4lbs batches of crawfish in our kitchen on a weekend in March.  We tested several types of seafood boil mixes, including Old Bay seasoning, Zatarain’s Crab & Crawfish Boil dry mix, Louisiana Fish Fry Crawfish Boil dry mix, Zatarain’s cloth crab boil spice bags, and Zatarain’s liquid boil.  The clear winner was Louisiana Fish Fry dry mix, it had the perfect balance of flavor, and it tasted the most Cajun of all the spices we tried.  Old Bay was the worst, followed by the Zatarain’s cloth bags.  Both of these were pretty bland, and required more salt and cayenne.  They also made the crawfish look dirty with all the spices clumping on them.  The Zatarain’s liquid boil was the surprise, it was pretty spicy (though lacked any other flavor to speak of).  If you’re preparing the crawfish for a mixed crowd (where some folks can’t handle spicy), Zatarain’s standard Crab & Crawfish dry mix wasn’t as spicy as the Louisiana brand, but that may have been because the Zatarain’s was expired (the label on the plastic jar said it expired in 2018).  We did not try the Zatarain’s liquid Pro Boil.  Maybe next year!

The rest of the Stuff!

 

This is for one sack (30-40lbs) of live crawfish

  • 12 medium sized lemons, halved and squeezed into the pot.  You may substitute 2 cups white vinegar if you don’t have lemons.
  • 6 whole onions, halved
  • 4-6 whole large garlic heads, halved to release flavor
  • 2 bags of small red potatoes
  • 8-10 ears of sweet corn, shucked and halved
  • additional cayenne pepper
  • 1 cup whole cloves

Optional items:

  • andouille (smoked sausage)
  • whole artichokes (the whole flower, not the canned hearts!)
  • whole mushrooms
  • Brussels sprouts (trust me, this is the one of the BEST ways to eat these!)
  • pineapple slices or chunks, if you’re feeling adventurous!

Crawfish Preparation

Obtain a sack of live crawfish and keep cool and wet until ready for the boil. Prior to boiling, empty the sack into a large container (washtub). Rinse thoroughly and drain. Do not leave the crawfish in water as they will die because of lack of oxygen. Some people add salt to the water to “purge” the crawfish. This is fine but do not leave them for an extended period in salt water and be sure to boil them immediately after purging since crawfish are freshwater animals. (Dad says he read of an LSU study [citation?] which says that purging crawfish is no longer necessary because they are now largely farm-raised, and hence aren’t full of mud like wild ones would be).

Set up for Boiling

Set up a large (60qt or greater) pot with strainer/colander well away from the house outside on a rapid gas burner. This is done because of heat, gas flame, and mostly the pungent aroma of the cayenne-spice mix. Fill 2/3rds with fresh water and start burner on medium to high heat. Add spice mix (and salt if necessary) and lemons. Additional cayenne pepper and cloves may be added at this time. Bring to full rolling boil. Add potatoes, garlic, corn, and other vegetables, stir. Return to a full rolling boil. Let corn and potatoes cook for about 5-10 minutes (depending on potato size).

Boiling the Bugs

When the pot reaches a rolling boil, put half the sack of crawfish (15-20lbs, if your pot is 60-80qt), or the whole sack (30-40lbs, if your pot is 120qt) . Stir gently (Dad uses a wooden boat paddle, I use one specifically designed for cooking like this). The crawfish will sink at first. Put the heat on high, cover, and return to a rolling boil. Cook the crawfish for about five minutes. Be careful not to overcook! The way Dad tells is that when the crawfish are cooked they will begin to float and sometimes cause the pot to overflow (Dad sez,”Dat’s another reason why dem crawfish are cooked outside, yeah.”). When most of the crawfish are floating, it’s time to turn off the heat. Do not remove them from the pot just yet, because now comes the most important part: let the crawfish soak up the spices. After turning off the heat, leave the crawfish to cool in the pot, soaking up the spices. Dad leaves them in the pot for up to 30 minutes or until they start to sink again. When they sink again, they are ready to spread on the table to finish cooling.

 

Enjoy dem mudbugs, spicy corn, potatoes, and other veggies!

Colorizing messages in mutt (stab 2)

mutt-score-colors-example-scaledThis image shows the different scores (“[1000]” scores red background, “[800]” magenta text, etc.). At work I use a slightly different set.

I think I got it, at least in the index (for some reason it doesn’t work from the pager, maybe it’s the source command there)! I’m able to tag a message with a score, and have that score translate into a different color. Here’s the relevant part of my .muttrc:

# Star scoring 
source ~/.mutt/stars
bind index,pager s noop # I use 'y' to archive messages, no need for 's' to be bound to <save-message>.  This frees it up so I can use it below.

set my_red_star = 1000
set my_magenta_question = 800
set my_yellow_bang = 600
set my_green_star = 400
set my_green_check = 200
set my_blue_info = 100
set my_del_star = 0

macro index,pager sr "<pipe-entry>~/bin/stars $my_red_star<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with RED"
macro index,pager sm "<pipe-entry>~/bin/stars $my_magenta_question<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with MAGENTA"
macro index,pager sy "<pipe-entry>~/bin/stars $my_yellow_bang<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with YELLOW"
macro index,pager sc "<pipe-entry>~/bin/stars $my_green_check<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with GREEN"
macro index,pager si "<pipe-entry>~/bin/stars $my_blue_info<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with BLUE"
macro index,pager sg "<pipe-entry>~/bin/stars $my_green_check<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with GREEN"
macro index,pager sd "<pipe-entry>~/bin/stars $my_del_star<enter><pipe-entry>~/bin/del_stars<enter><enter-command>source ~/.muttrc<enter><sync-mailbox>" "Remove color marking from the current message"

color index default brightred '~n 1000-1100'  # Mark the message with red!
color index magenta default '~n 800-999'  # Mark the message with magenta!
color index black brightyellow '~n 600-799'  # Mark the message with yellow!
color index default green '~n 400-599'  # Mark the message with green!
color index green default '~n 200-399'  # Mark the message with green (check)!
color index brightblue default '~n 100-199'  # Mark the message with blue!

Not much different than I had before. The problems I had were the .mutt/stars, bin/stars, bin/del_stars. It mostly worked once I got it set up, except for messages that had special regular-expression reserved characters in the message ID. Here’s the bin/stars file I have:

#!/bin/bash
SCORE=$1                                
msgid=$(sed '/^Message-I[Dd]:[[:space:]]*/!d; s///; s/[<>]//g; s/[][$|]/\\&/g; q')
echo "score \"~i '$msgid'\" $SCORE" >> ~/.mutt/stars 

The key was the single quotes around the actual message ID. And the del_stars file:

#!/bin/bash

msgid=$(grep -m 1 '^Message-I[Dd]' | awk '{print $2}' | sed 's/[<>]//g; s/[^^]/[&]/g; s/\^/\\^/g')
sed -i "/$msgid/d" ~/.mutt/stars

After some further testing, it still doesn’t work. I have one company that sends me a bill summary, and the Message-Id has square-brackets around an RFC1918 address. Rather than fight with mutt trying to get it to read and score the message properly, I just added the company’s bill email address to my .mutt/stars file, with the following line:

score "~f CompanyEmail@company.com" 600

Also, to get the del_star script to work most times I have to close mutt completely before the score is removed. But otherwise it works!

Colorizing messages in mutt index

I’d heard a long time that if I’m a self-respecting Linux or UNIX geek I should use a terminal-based email client. My options are Alpine and mutt, and it seemed that while mutt was the hardest to get up and running, it was also the most flexible and powerful. I have drunk the Google Kool-Aid, so I had been loath to switch from Gmail, my workflow habits (in both personal and work Gmail) depending on certain features.

The first feature of Gmail (available in the “Labs” section) that I used very heavily was the multi-colored stars feature. At home, I use six different stars (green-check, yellow-bang, red-star, blue-info, purple-question, and green-star, in this order). At work I use eight (these and yellow-star, and blue-star). One thing I always hated about Gmail, is that I had to repeatedly click on the empty star icon in Gmail to cycle to the star I wanted. For seldom-used stars, this meant that I might not remember where it is in the list, so I’d accidentally cycle past it, sometimes multiple times until I got the star I wanted. Another problem with these stars is that they don’t translate to any other mail client. It would be really nice if Google would add something like “X-Gmail-red-star” or something to the email headers, but that isn’t what happens now (not sure if that would violate an RFC).

The other feature I use is the priority inbox, which separates the inbox into “Important and Unread,” “Starred,” and “Everything else.” I use this especially at work to help me triage email. I get a lot of stuff which isn’t junk, but that isn’t addressed (To: or Cc:) to me, so I don’t read it. All messages To or Cc’d to me get an automatic star (Gmail only has the capability to add yellow-star to messages automatically, something I hope to rectify with mutt. One day….).

The only thing I’ve figured out how to do in mutt thus far is at least a first stab at achieving the multi-colored stars feature. This time, it’s all tied to key macros, so no having to cycle through until I find the color I want. The way it works is through mutt’s scoring feature. At least for now, each score range (100-199, 200-299, 300-399, etc.) gets set to whatever color that score range gets. Whenever I run the macro to color a message, I pipe it (<pipe-entry>) into a bash script I wrote which greps for the Message-ID, filters out the Message-ID’s angle brackets (‘<' or '>‘), adds the relevant score, and then writes a score configuration command to a separate rc file (~/.mutt/stars). Then, I have mutt reload it’s configuration (thankfully score isn’t something that requires a complete restart).

First, the section of .muttrc I have for stars:

# Star scoring 
source ~/.mutt/stars

set my_red_star = 1000
set my_magenta_question = 800
set my_yellow_bang = 600
#set my_green_star = 400
set my_green_check = 200
set my_blue_info = 100
set my_del_star = 0

macro index,pager sr "<pipe-entry>~/bin/stars $my_red_star<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with RED"
macro index,pager sm "<pipe-entry>~/bin/stars $my_magenta_question<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with MAGENTA"
macro index,pager sy "<pipe-entry>~/bin/stars $my_yellow_bang<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with YELLOW"
macro index,pager sc "<pipe-entry>~/bin/stars $my_green_check<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with GREEN"
macro index,pager si "<pipe-entry>~/bin/stars $my_blue_info<enter><enter-command>source ~/.muttrc<enter>" "Mark the current message with BLUE"
macro index,pager sd "<pipe-entry>~/bin/stars $my_del_star<enter><enter-command>source ~/.muttrc<enter>\
<pipe-entry>~/bin/del_stars<enter>\
<enter-command>source ~/.muttrc<enter>" "Remove color marking from the current message"

color index default brightred '~n 1000-1100'  # Mark the message with red!
color index magenta default '~n 800-999'  # Mark the message with magenta!
color index black brightyellow '~n 600-799'  # Mark the message with yellow!
#color index default green '~n 400-599'  # Mark the message with green!
color index green default '~n 200-399'  # Mark the message with green (check)!
color index brightblue default '~n 100-199'  # Mark the message with blue!

And my stars script:

#!/bin/bash                                          
                                                     
msgid=$(grep -m 1 '^Message-I[Dd]' | awk '{print $2}' 
                                   | sed 's/[<>]//g')                                                                                                                                                                                        
echo "score \"~i $msgid\" $1" >> ~/.mutt/stars       

My delete stars (del_stars) script (which doesn’t work all the time, but I haven’t been able to investigate why):

#!/bin/bash

msgid=$(grep -m 1 '^Message-I[Dd]' | awk '{print $2}' | sed 's/[<>]//g')
sed -i "/$msgid/d" ~/.mutt/stars

Now the stars script doesn’t always work, either. I think I’ve tracked it down to Message-IDs which use nonalphanumeric symbols in them (like pipe ‘|’ and dollar-sign ‘$’). I might not be quoting the “~i $msgid” correctly (single-quotes, maybe?). Not terrible for a first stab at this. I wonder if any old mutt hands will have a fit if they see this, but I’m too tired to investigate further. It works well enough for my purposes right now. Also, I don’t know the performance ramifications of an ever growing ~/.mutt/stars file. We’ll have to see how that goes.

Backup WordPress Files and Database

I’ve been meaning to create a backup of my WordPress files and databases on my VPS (ChunkHost). After a minimal amount of digging (on WordPress’s Codex site), I wrote this script:

#!/bin/bash

WPBAK=/var/backups/wordpress
tar -cvJf $WPBAK/$(date +%F)_files.tar.xz /var/www || exit 1
mysqldump --all-databases --verbose | xz -c > $WPBAK/$(date +%F)_databases.sql.xz || exit 2

Just change the “$WPBAK” variable to where on the server you want to store the backups. Also, you’ll need to create the ~/.my.cnf file (I did it for the root user):

[mysqldump]
user=root
password=secret

You’ll need to change user to the appropriate MySQL user, and the password accordingly. Be sure to set .my.cnf to have the permissions 600 (“chmod 600 ~/.my.cnf”), that way the script doesn’t need to contain the MySQL user password in order to make the dump.

I put all of this in /etc/cron.daily/wordpress, and made it executable (“chmod +x /etc/cron.daily/wordpress”). This way my system will back up automatically on a daily basis.

The next step is to update my rsnapshot configuration so it will store the backup on my Network Attached Storage (NAS). First, I had to copy the SSH public key for my NAS admin user to my VPS, and add it to the user doing the work. Then, I added a single line (port number changed to protect the innocent):

backup  root@eldon.me:/var/backups/wordpress    eldon.me/       ssh_args=-p 4321

I’m waiting for another rsnapshot backup process to start naturally, rather than kicking off a manual run. I’m curious to see if this works as well as I thought.

The next step is to write a cron job that will remove old backups. This is simple enough (put in /etc/cron.daily/wordpress_backup-cleanup, and make executable, as above):

#!/bin/bash
find /var/backups/wordpress/ -mtime +7 -exec rm {} \;

This will delete backup files greater than seven days old. This will hopefully keep my li’l VPS’s disk from filling up. And that’s it!