I fell–I know–for a commercial not too long ago that claimed off the shelf Gevalia house blend tasted better than Starbucks off the shelf house blend and I decided that I should try it with my new AeroPress so that I wasn’t missing out on anything. I’m not sure how much of a difference this makes, but I chose the espresso roast because I wanted to make something espresso like.
On the first press, I shot for the stars and tried to make a strong double espresso.
- 30g of tamped cofee in an upright AeroPress
- Water 30 seconds off the boil to just above the 2 mark.
- Wait 10 seconds then press.
It required a bunch of pressure to push through, so I thought I had done well in getting a high-bar press going and that I’d be close to espresso. Unfortunately, while it looked good, the coffee tasted really strange. There was some kind of sour-y acid tasted that lingers around after every sip. It’s not due to the strength of the coffee, because I love strong coffee, but I’m not entirely sure.
The second batch, I used Stumptown’s inverted method with just one scoop. This turned out much weaker than the first, as expected, but that weird taste is still hanging out in the background somewhere. I can’t describe it as sour, but it’s something strange.
Ok, so now I’m completely wired because I tried to figure this all out in the span of 30 minutes.
The third batch is what I’m going to have to stick with for Gevalia. This time I used Stumptown’s inverted method with 30g of coffee with about 95g of water. It didn’t taste great, so I diluted it a bit by adding some more water. This became drinkable and while the weird taste is still back there somewhere, it definitely doesn’t bug me each time I take a sip.
Now to go run around the house a few times because my hands are shaking.
Our move to Pullman brought us a second kitchen and a nice little cellar room that make for a perfect brewing location. I had been wanting to try brewing for a while, and in August I finally went all in and got setup. The results of my first brew are listed below. It was based on a Brewcraft USA kit rather than an original recipe so that I could get used to the process.
Overall the beer was a success. I was happy to overlook a few taste quirks because it was my first beer, and we’re already down to the last 2 bottles. I wouldn’t be as happy if this was my 4th brew, but I’ll take it as a first shot.
- Fermentables: 6lbs Briess CBW Pilsen Light Dry Malt Extract, 1lb Brewers Crystals, 1lb Crystal Malt 40L
- Bittering hops: 1oz Columbus pellets, 1oz Nugget pellets
- Aroma hops: 1oz Nugget pellets, 1oz Chinook pellets, 1oz Centennial pellets
- Yeast: Safale US-05 Dry Ale
- Brew to bottle: 20 days [Aug. 25th, 2013 - Sep. 14th, 2013]
- Original Gravity: 1.060
- Final Gravity: 1.015 (?)
- ABV: 5.9%
- IBU: ???
- Yield: 5 gallons
I didn’t actually record the final gravity on paper, mostly because I had no idea what to pay attention to at the time. My recollection is that it is 1.015, so that’s what I listed above and hence what the ABV is based on. The kit anticipated an OG of 1.069 and a FG of 1.014, so I was a bit off on both sides.
Similarly, I completely missed on the IBU as I had no idea I could properly calculate the quantity and timing of hops into a useable number. The kit says it anticipates an IBU of 90, but I can’t imagine I followed proper procedure enough for it to turn out that high. That kind of bitterness definitely doesn’t come through.
The “Cold Break”, a major lesson learned
I was not prepared for wort chilling.
— Jeremy Felt (@jeremyfelt) August 26, 2013
New brewers make new brewer mistakes, right? I hadn’t really realized ahead of time how important wort cooling was to the process of making beer. My batch took forever to cool down–several hours–because I wasn’t prepared. I even made an ice run to the convenience store in the pouring rain to try and speed up the process a bit.
This may actually be the most important tip for a first time homebrewer. The longer it takes to cool the wort down to fermentation temperatures, the longer it sits exposed to the elements of your brewing room before you can add yeast and seal things up. There is a good chance that some not perfect bacteria made its way into the wort at this point and affected the taste somewhat.
Ever since this batch, I’ve made a focused effort on achieving a quick cold break. Not only will it help the brew, but it shortens the amount of time it takes too!
Bitters, Aromas, IBU: Hops and timing
I didn’t understand the purpose and timing of bittering hops and aroma hops yet, so I don’t think I did to well for an IPA on the first round. I kind of guessed with what I had and with what the kit provided me. Thanks to readings on the Internet and more thorough reading of an amazing book, I now have a greater understanding of this part of the process and that has lead to more focused efforts in my own recipes. I should now do a much better job of determining the IBU of the brew as well as its expected flavor during the brewing process.
I still have a draft post titled ‘2011, a year for the epic books‘ hanging out, waiting to never be published. That was an amazing year.
I don’t have a draft saved for 2012. I’m very good at thinking about all the things I would put in a round up post, but then putting it all off until weeks after and then ditching it entirely.
This year has been a very good year. It likely goes alongside 2011 as a year for the epic books, so it should get a write up. I’ll forget less then.
Work: 10up and Washington State University
I started off the year as a happy director of web engineering for 10up with a fantastic team. In April we put together our first developer summit and had a great time over a few days in Portland expanding on workflows and knowledge. I’m so grateful for the time I had, the people I met, and the friends I made while working with #team10up. The entire experience of my 1.5 years with 10up took so much to the next level.
In July, I started a new position with Washington State University. As senior WordPress engineer there, I’m leading the charge to build out a central publishing platform built around WordPress at WSU. Our efforts have been very well accepted so far and I’m looking forward to an extremely exciting and productive 2014.
Vagrant, WordCamps, and WordPress
At the end of 2012, I unleashed the fun that is Varying Vagrant Vagrants in the hopes of breaking up with MAMP. It was a success and not only provided for a MAMP free 2013 for me, but lead to talks at meetups in Seattle and Portland, an unconference session at WordCamp Portland, and talks at WordCamps Chicago and Vancouver. Throughout the year we’ve spread the word of VVV. We pushed version 1.0 just a few weeks ago and Vagrant has grown in general as part of the WordPress development workflow.
In October, I attended the first WordCamp Europe in October. That experience was amazing. Not only did I get to spend a full week walking around and learning about the beautiful town of Leiden, I met so many people in the WordPress community that I hadn’t yet had the chance to meet and made several new friends. The week was full of great conversation and made a great impact on my view of the overall WordPress community and what we’re working toward.
Due to my new position at WSU, I was able to spend a ton of time consumed with WordPress core for August and September. I’m now more familiar with the multisite portions of WordPress than ever and was recognized as a Recent Rockstar for the 3.7 release, my favorite thus far. I’m looking forward to a very productive 2014 in the world of WordPress.
The year was almost a 50/50 split. We made the 352.3 mile move from Portland, OR to Pullman, WA half way through July. While I miss quite a bit about Portland–mostly people, Pullman has been welcoming and all around great so far. We’ve settled in well and are enjoying it enough to start thinking of Pullman as a home for many years to come.
This year was a pretty big year for beer. Not only did I expand my knowledge (probably a bit far) on the various styles of beer in the world, I became a home brewer a few months ago. I’ve brewed a pretty weak IPA, a nice stout, and a yet to be determined porter. In 2014, I’m looking forward to making some really nice IPAs and exploring the world of Belgian Ale’s thanks to a new book Michelle got me for Christmas.
Homebrewing aside, the highlight of the beer year was a trip to the De Molen brewery in Bodegraven with Konstantin while in the area for WordCamp Europe. We had many wonderful beers, among them the Hel & Verdoemenis, considered the best brew in the Netherlands. On the way out of the brewery, I was able to grab a couple of the best beers in the world, the Westvleteren 12. Even though I drank that in a hotel room after carving away at the wax with inefficient tools, it was great.
My goal for beer in 2014 is to be more focused in consumption and more crafty in creation. Any visitor to Pullman, WA will be guaranteed a good brew.
Miscellaneous notes for 2014
For Christmas I got two amazing things. An Aeropress and a guitar.
As a mass consumer of coffee, the Aeropress has already changed my life. I’m looking forward to drinking smaller servings of more quality coffee throughout the year and cutting the habit of drinking coffee because it’s always there.
And the guitar! In 2011, that epic year, I sold 3 guitars, a mandolin, and a couple amps. My love of music had dwindled a bit, mostly because I hadn’t made time. Michelle came through this Christmas with an acoustic guitar that has lit the fire again. I’m looking forward to a 2014 full of music.
And last, but not least. You all rock. Happy New Years!
A year ago yesterday, I decided I wanted to break up with MAMP.
A year ago today, the Varying Vagrant Vagrants repository was created after an exciting couple nights pounding away at a server config that allowed me to troubleshoot WordPress in Nginx on a local virtual machine.
Since then, VVV has had almost 750 commits from 36 contributors (!!!) on 121 pull requests. The project has been forked 135 times, has 61 watchers and 440 stars.
What a pretty cool year it has been.
Did I mention 36 contributors? On an average of about once every 10 days, somebody decides that VVV is interesting enough to stop what they are doing and submit a pull request containing an improvement.
This blows my mind. Thank you all.
Auto Site Setup
Auto Site Setup allows for projects to be picked up automatically by VVV with custom web structures, host names, Nginx configurations, and provisioning scripts. If you dig into the wiki page explaining how to get started, you’ll get an idea of how powerful it can be.
Vagrant Up Just Works
For quite a while, if you ran
vagrant up on a machine that had been halted, you would also have to run
vagrant provision in order for all of the services to start up properly.
Version 1.0 is so much happier.
At this point
vagrant up just works and your workflow can start to match exactly what is expected of a machine that is powered off rather than actually destroyed.
As a side effect of this change, we now copy our config files to the virtual machine from mapped drives on the local machine rather than symlinking them. This may cause some confusion at first if you’re used to changing the configs and having them immediately reflected, but it makes a lot more sense from a provisioning and state management standpoint. This is where
vagrant provision can be used liberally to reapply any changed config. Commit 1fbf329 contains a more detailed description of the decision and the implementation.
- Begin implementing best practices from Google’s shell style guide in our provisioning scripts.
- Databases can now be dropped in phpMyAdmin. Pro-tip,
drop database wordpress_developin phpMyAdmin followed by
vagrant provisionclears your src.wordpress-develop.dev for reinstall.
- Allow for
dashboard-custom.phpto override the default dashboard provided by VVV
We’re still moving forward. Check out the 1.1 milestone report on GitHub to see what’s in store for the next version and feel free to jump in with pull requests or questions. As part of a greater community of Vagrant users in WordPress, there is also a newer WordPress and Vagrant mailing list that has had some activity. Feel free to stop by and ask any questions there as well.
Vagrant Error in OSX: There was an error while executing `VBoxManage`, a CLI used by Vagrant for Controlling VirtualBox
I got the following error earlier in OSX when launching my powered off VVV instance with
There was an error while executing
VBoxManage, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["hostonlyif", "create"] Stderr: 0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Failed to create the host-only adapter VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterface, interface IHostNetworkInterface VBoxManage: error: Context: "int handleCreate(HandlerArg*, int, int*)" at line 66 of file VBoxManageHostonly.cpp
I was able to fix this by running the following:
cd /Library/Application\ Support/VirtualBox/LaunchDaemons/ sudo ./VirtualBoxStartup.sh restart
This reset the services used by Virtualbox and allowed Vagrant to talk correctly to the virtual interfaces again. My guess is that this would help solve related errors as well, not just the one that I received.
I’ve been doing quite a bit of work this week in provisioning a development environment using CentOS, Salt, and Vagrant. There are few things I ran into along the way that were interesting enough to remember for a later time.
Disappearing Guest Additions
By default, Salt calls
yum -y update during the process of installing itself. This, depending on your yum configuration, updates every package with an update available–including the kernel.
When the kernel is updated, it seems that the Guest Additions required by Virtualbox for proper communication between the virtual machine and your local machine get lost in the shuffle. Once they do, the box will not fire up again properly until after a
To get around this, I created a custom yum.conf file that excludes kernel updates by default. This file is synced over to the virtual machine through shell provisioning before Salt is initiated. As you can imagine, this significantly reduces the time spent provisioning the box as well.
In the future I’ll have to figure out if we can find or package a CentOS box that has a newer version of the kernel already installed.
Disappearing Salt Installation Script
Salt has a great installation process available where you can feed bootstrap.salt.org directly into a shell script. This URL currently redirects you to the shell script’s location inside a GitHub repository. When the script runs, it automatically detects what packages are required on your machine and determines how they should be installed.
Unfortunately, GitHub returns a 404 every so often when calling the URL repeatedly via Vagrant’s use of Curl. This means that when first building out your configuration and doing a lot of
vagrant up, things fail quite often when Salt can’t install itself on the box.
Luckily, you can specify a custom bootstrap script to run in Vagrant. I copied the version verbatim from Salt’s GitHub account and now include it locally with the WSUWP Environment.
As a bonus, this allowed me to do one extra thing. The process of installing Salt through Vagrant uses the current stable version of Salt for your Linux distribution. I was able to force the use of ‘testing’ packages in the bootstrap script so that my CentOS box would have Salt 0.17.1, rather than the stable RPM for 0.16.4.
As an Ubuntu user, the common–well, to me at least–default use of iptables in CentOS always confuses me. Account for this when provisioning and provide some default rules. Things like incoming HTTP requests are blocked by default. This can be annoying if you aren’t expecting it and start troubleshooting problems that you think are with Nginx.
Picking a CentOS Vagrant Box
I first used the nrel.gov minimal box from vagrantbox.es, but MySQL 5.1.69 was preinstalled and at the time it seemed like I had to uninstall all of those packages before reinstalling with the 5.5 packages. It’s possible that the repositories I settled on (see next point) would have made it easier to upgrade, but I got the impression that the box had other preinstalled stuff and I decided to switch. The Puppet Labs box, even though I’m using Salt, has been exactly what I’ve needed thus far.
Better Server Software Repositories
The default repositories for CentOS 6.4 are still on PHP 5.3 and MySQL 5.1, which is a little lame. Thanks to the recommendation of Zach Brown, I went with the Remi repositories for installing PHP, MySQL, and Memcached. For Nginx, we’re able to use a repository maintained by Nginx directly. Both of these repositories have been great so far.
And it has one heck of a changelog.
Go get it!
It took us 105 or so days, we added about 200 commits, went through somewhere around 10 Vagrant releases, and things are looking sweet. The last few months have been great preparation toward a couple bigger features that are slated to be part of version 1.0 in the coming months.
What’s the best part?
We crossed 30 contributors and 100 forks. The community around VVV has been fantastic to work with.
So yeah, here’s the awfully long changelog of great things that made it into the v0.9 release. Keep your eyes open for v1.0!
- Possible Annoying: Use
precise32for the Vagrant box name for better cross project box caching.
- Note: This will probably cause a new Vagrant box to download. Use
vagrant box remove std-precise32after a
vagrant destroyto remove the old one and start with this.
- Note: This will probably cause a new Vagrant box to download. Use
- Possible Breaking: Change VM hostname to
- Note: If you had anything setup to rely on the hostname of precise32-dev, this may break.
- Possible Breaking: Change MySQL root password to
- Note: If anything is setup to rely on the previous password of
blank, this may break.
- You can also now access
mysql -u rootwithout a password.
- Note: If anything is setup to rely on the previous password of
- Introduce support for the WordPress develop.svn
- This was added pretty much the day it was available. Such a pleasure to work with!
- Allowed us to remove the old
wordpress-unit-testsin favor of the new
- Introduce support for the Vagrant hostsupdater plugin
vagrant plugin install vagrant-hostsupdaterto install.
- Very, very much recommended for an easier and happier life.
- Introduce Postfix with a default config. Mail works! (But check your spam)
- Introduce the WordPress i18n Tools, including
- Introduce PHP_CodeSniffer, WordPress-Coding-Standards, and Webgrind
- Remove entire well intended but not so useful flags system
- Rather than include PHPMemcachedadmin in the VVV repository, download it on initial provision
- Verify support for Vagrant 1.3.5 (as well as 1.2.x) and Virtualbox 4.3 (as well as 4.2.x)
xdebug_offcontrols to executable files in
Vagrantfilefor accessing relative file locations
- Add a basic network connectivity check by pinging Google DNS servers
- Update stable version of WordPress automatically on provision
- General cleanup to screen output during provisioning
- Many updates to the default nginx configuration
- Remove poor, unused implementation of Watchr
- Provide default certs for SSL in Nginx
#23907 Scandinavian ligatures transcribed wrong in remove_accents() is a good read on Scandinavian letters and ligatures as well as some of the differences between Swedish, Norwegian, Danish, and Finish alphabets.
#7875 consolidate plugin/theme/core upgrade/install functions is a great read on the birth of modern WordPress upgrade code that occurred 4.5 years ago in .