I come from a more distant future ;-) and this is how I decompose affine matrices:

$H = \begin{bmatrix}
1 & 0 & 1 & 0 \\
1 & 1 & 1 & 0 \\
1 & 1 & 0 & 1 \\
0 & 0 & 0 & 1
\end{bmatrix}$

### Translation

Extract translation from last column:

$T = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 1 \\
0 & 0 & 0 & 1
\end{bmatrix}, L = \begin{bmatrix}
1 & 0 & 1 & 0 \\
1 & 1 & 1 & 0 \\
1 & 1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}$

$H = T L$

### Rotation

Calculate the polar decomposition of $L$ to obtain rotation $R$ and stretch $S$ matrices:

$L = R S$

$H = T R S$

$R = \begin{bmatrix}
0.707 & -0.5 & 0.5 & 0 \\
0 & 0.707 & 0.707 & 0 \\
0.707 & 0.5 & -0.5 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}, S = \begin{bmatrix}
1.414 & 0.707 & 0.707 & 0 \\
0.707 & 1.207 & 0.207 & 0 \\
0.707 & 0.207 & 1.207 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}$

When the determinant of $R$ is negative (as in this case) it is necessary to change the sign of the linear part:

$R = \begin{bmatrix}
-0.707 & 0.5 & -0.5 & 0 \\
0 & -0.707 & -0.707 & 0 \\
-0.707 & -0.5 & 0.5 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}, S = \begin{bmatrix}
-1.414 & -0.707 & -0.707 & 0 \\
-0.707 & -1.207 & -0.207 & 0 \\
-0.707 & -0.207 & -1.207 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}$

### Scale

The stretch matrix $S$ can be further analyzed to obtain up to three scale matrices.

$S = S_1 S_2 S_3$

$H = T R S_1 S_2 S_3$

Each eigenvalue of $S$ represents a scale factor $f_i$ and its corresponding eigenvector $x_i$ represents the scaling axis. Each pair can be used to construct a scale matrix:

$S_i = I + x_i x_i^T (f_i-1)$

$f_1 = -2.414$,
$x_1 = \begin{bmatrix} 0.707 \\ 0.5 \\ 0.5 \\ 0 \\ \end{bmatrix}$,
$S_1 = \begin{bmatrix}
-0.707 & -1.207 & -1.207 & 0 \\
-1.207 & 0.146 & -0.854 & 0 \\
-1.207 & -0.854 & 0.146 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}$

$f_2 = -1$,
$x_2 = \begin{bmatrix} 0 \\ -0.707 \\ 0.707 \\ 0 \\ \end{bmatrix}$,
$S_1 = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}$

$f_1 = -0.414$,
$x_1 = \begin{bmatrix} 0.707 \\ -0.5 \\ -0.5 \\ 0 \\ \end{bmatrix}$,
$S_1 = \begin{bmatrix}
0.293 & 0.5 & 0.5 & 0 \\
0.5 & 0.646 & -0.354 & 0 \\
0.5 & -0.354 & 0.646 & 0 \\
0 & 0 & 0 & 1 \\
\end{bmatrix}$

In the future we all use Jupyter Notebooks like this one that implements the method in Python. You can copy and test it.