The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Generate a rotation matix to rotate [ 1 1 1 ] to [ 0 1 0 ]
Vectors are normalised and rotation is by the minimal amount.

Axis of Rotation (n) = [ -0.707107 0.000000 0.707107 ]

Matrix to rotate Z axis to n => Q
[  5.773502691896E-01  5.773502691896E-01  5.773502691896E-01 ]
[ -4.082482904639E-01  8.164965809277E-01 -4.082482904639E-01 ]
[ -7.071067811865E-01  0.000000000000E+00  7.071067811865E-01 ]

Rotate around Z axis => T
[  5.773502691896E-01  8.164965809277E-01  0.000000000000E+00 ]
[ -8.164965809277E-01  5.773502691896E-01  0.000000000000E+00 ]
[  0.000000000000E+00  0.000000000000E+00  1.000000000000E+00 ]

Resultant Rotation Matrix => R = transpose(Q) * T * Q
[  7.886751345948E-01  5.773502691896E-01 -2.113248654052E-01 ]
[ -5.773502691896E-01  5.773502691896E-01 -5.773502691896E-01 ]
[ -2.113248654052E-01  5.773502691896E-01  7.886751345948E-01 ]

Rotate some vectors with matrix =>  v' =  v * R
v -> [ 0.000000 1.732051 0.000000 ]
x -> [ 0.788675 0.577350 -0.211325 ]
y -> [ -0.577350 0.577350 -0.577350 ]
z -> [ -0.211325 0.577350 0.788675 ]

Check orthogonaly is preserved
'x x 'y -> [ -0.211325 0.577350 0.788675 ] = 'z
'y x 'z -> [ 0.788675 0.577350 -0.211325 ] = 'x
'z x 'x -> [ -0.577350 0.577350 -0.577350 ] = 'y