Get node's parent element with Capybara

To get parent of Capybara's node do the following:

node = page.find '#selector'
parent = node.find(:xpath, '..')
parent_of_parent = node.find(:xpath, '../..')

How to create Nokogiri node if node name collide with Nokogiri::XML::Builder methods

Suppose you want to create node with name text, but this method already present in Nokogiri::XML::Builder. The solution is to add underscore after node name:

Nokogiri::XML::Builder.new do |xml|
  xml.text_ 'something' # this should create node with name 'text'
end

Run rake tasks from ruby script

require 'rake'

rake = Rake.application
rake.init
# you can import addition *.rake files
# app.add_import 'some/other/file.rake'
rake.load_rakefile
rake['db:test:prepare'].invoke()

Extract contents of pfx bundle with Openssl

This card is the copycat from this awesome article, all thanks to Zsolt Agoston.

# Extract the private key
openssl pkcs12 -in wild.pfx -nocerts -nodes -out priv.cer
 
# Extract the public key
openssl pkcs12 -in wild.pfx -clcerts -nokeys -out pub.cer
 
# Extract the CA cert chain
openssl pkcs12 -in wild.pfx -cacerts -nokeys -chain -out ca.cer

Arch linux system upgrade

sudo pacman-mirrors -f5 # to update mirror list
sudo pacman -Syyu # system upgrade

Or oneliner

sudo pacman-mirrors -f5 && sudo pacman -Syyu

Reset RabbitMQ (Manjaro linux)

To reset RabbitMQ Mnesia database ensure that RabbitMQ process is running on your system. Then stop the running application:

sudo rabbitmqctl stop_app

After that run the command:

sudo rabbitmqctl reset

And then start the app:

sudo rabbitmq start_app

Ubuntu 14.04 locales reconfiguration.

If you getting messages like this: perl: warning: Setting locale failed. in your console, then you must configure your locales. First run:

locale

You will see something like this:

LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

Then generate the missing locale and reconfigure locales...