You are here


Acquia's Access Log File Format

I needed to parse some logs and I wanted to know what Acquia's Log file format was. Here it is:

LogFormat "%{X-AH-Client-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" <br/>
\"%{User-agent}i\" vhost=%v host=%{Host}i hosting_site=<siteid> pid=%P <br/> request_time=%D forwarded_for=\"%{X-Forwarded-For}i\" <br/> request_id=\"%{X-Request-Id}i\" "`

Building Kick SaaS Installation Profiles

So back in April of this year, I gave a talk at Texas Camp entitled Building Kick SaaS Installation Profiles.

The slides are over there, but I'm uploading a local copy of them here—just in case!

Note: no audio is available, but the slides might be pretty handy!


How to monitor any text file import

So as I was sitting here just now waiting for an 80+ MB import to process over an SSH connection, I began wondering to myself if there was some way to monitor the progress of an import. Percentage—or even throughput—of the file being sent over the pipe.

Turns out that there is a way!

Enter the command pv.


Taking a look at output buffering in PHP

Output buffering in PHP isn't new. It was introduced in PHP 4 and for the most part, it's one of those things that unless you're not using a CMS or a framework, you'll never really need to mess with it much.

However, today I was playing around with doing client-side redirections in JavaScript and wanted to see first-hand how they worked. Modern browsers begin parsing the HTML before it is completely delivered and once the <script> tag is parsed, it is executed immediately.


Initial impression of the Hamshield

Background and Intro

The Hamshield was a Kickstarter that ended sometime last summer. The original expected delivery date was October of 2015, but due to issues with manufacturing and a problem with their amplification circuits, it was delayed. I won't go into the details here, but you can read it on their Kickstarter page:

Importing a price in Drupal 8 for Drupal Commerce 2.x

Just a quick note that if you're importing a Commerce price:

  • you must set the currency_code.
  • what was commerce_price in DC 1.x / Drupal 7 is now just price.
  • the amount can be a decimal now.

    'price/amount': SomeFieldName 'price/currency_code': plugin: default_value default_value: 'USD'

Note that you can also set up a constant in the migration definition and use the constant value:

You can chain callbacks in a Drupal 8 migration

If you're wanting to do some advanced processing (e.g. lowercasing a word and then capitalizing the first letter) you can chain the two callbacks to get the desired effect:

Quickly importing new config entities from the command line using Drush

Drush's cset command is a bit picky, but with a few command line options, we can get it to import a yaml file into our site's config:

drush -y --format=yaml cset config.entity.string '' - < config_file.yml

This will put the entirety of config_file.yml into the configuration entity config.entity.string.

Field Tools as a replacement for Features

One of my new favorite modules recently has been Field Tools. What I love about it is that it presents you with the ability to export all of the fields on a particular bundle (or even just a single field).

Then, you can just use field_create_field or field_create_instance in a little loop.

Take for example (in a module's .install file):