Coining the phrase "homeops"
What is HomeOps?
I'ved used the tag a few times already, but realized I haven't explained the term. In the software world, DevOps is about the operations of software devleopment. These days, software and services are not just useful for business, but can help streamline our home life.
While there does exist the term "homelab", this term is often used to describe describe the hardware used in the home to run software. While the term can encompass both, there is usually an implicit understanding that this is about software that is owned and operated at home (or "on premesis" to use industry lingo).
When I refer to "home operations" or HomeOps, I'm referring to the digital needs of the home, regardless of the implementation. This can be locally operated software, or software services owned and operated by 3rd party cloud providers. The focus is more about the functions need in the digital home. How to meet those needs is part of the discussion, but not limited to being run on your own servers.
Bragging Writes
In an experiment aimd at preserving my bragging rights to the term, I'm going to digitally assert my use of the phrase using a Time Stamp Authority following the Time-Stamp Protocol. Unfortunately the timestamp is about 5 years after my initial use, so I may never be able to prove I originated this phrase back in 2018 (unless perhaps the Internet Archive managed to capture my website.
In any case, here is my claim:
I, Danny Sung, first started using the phrase "HomeOps" publicly on July 29, 2018.
The sha256 hash of this file is: 25ea07eba265a70a34e2ca1081a299591c09d4a38127d92b5abde6dbc0ba908b
The base64 encoded TSQ (timestamp request) of this is:
MFkCAQEwUTANBglghkgBZQMEAgMFAARAqkgb6Yx5MzUnlHmGWTHm22OeCmOVt79z8eRo3VqWl8OFU/U8
Pu+C7ZNLItxeE0SVBTkj0fZX4RXK5IT3XipFmQEB/w==
The base64 encoded TSR (timestamp response) of this is:
MIIVcTADAgEAMIIVaAYJKoZIhvcNAQcCoIIVWTCCFVUCAQMxDzANBglghkgBZQMEAgMFADCCAaMGCyqG
SIb3DQEJEAEEoIIBkgSCAY4wggGKAgEBBgQqAwQBMFEwDQYJYIZIAWUDBAIDBQAEQKpIG+mMeTM1J5R5
hlkx5ttjngpjlbe/c/HkaN1alpfDhVP1PD7vgu2TSyLcXhNElQU5I9H2V+EVyuSE914qRZkCA0hxvxgP
MjAyMzA4MjkwNDU5MThaAQH/oIIBEaSCAQ0wggEJMREwDwYDVQQKEwhGcmVlIFRTQTEMMAoGA1UECxMD
VFNBMXYwdAYDVQQNE21UaGlzIGNlcnRpZmljYXRlIGRpZ2l0YWxseSBzaWducyBkb2N1bWVudHMgYW5k
IHRpbWUgc3RhbXAgcmVxdWVzdHMgbWFkZSB1c2luZyB0aGUgZnJlZXRzYS5vcmcgb25saW5lIHNlcnZp
Y2VzMRgwFgYDVQQDEw93d3cuZnJlZXRzYS5vcmcxIjAgBgkqhkiG9w0BCQEWE2J1c2lsZXphc0BnbWFp
bC5jb20xEjAQBgNVBAcTCVd1ZXJ6YnVyZzELMAkGA1UEBhMCREUxDzANBgNVBAgTBkJheWVybqCCEAgw
gggBMIIF6aADAgECAgkAwemGFg2o6YIwDQYJKoZIhvcNAQENBQAwgZUxETAPBgNVBAoTCEZyZWUgVFNB
MRAwDgYDVQQLEwdSb290IENBMRgwFgYDVQQDEw93d3cuZnJlZXRzYS5vcmcxIjAgBgkqhkiG9w0BCQEW
E2J1c2lsZXphc0BnbWFpbC5jb20xEjAQBgNVBAcTCVd1ZXJ6YnVyZzEPMA0GA1UECBMGQmF5ZXJuMQsw
CQYDVQQGEwJERTAeFw0xNjAzMTMwMTU3MzlaFw0yNjAzMTEwMTU3MzlaMIIBCTERMA8GA1UEChMIRnJl
ZSBUU0ExDDAKBgNVBAsTA1RTQTF2MHQGA1UEDRNtVGhpcyBjZXJ0aWZpY2F0ZSBkaWdpdGFsbHkgc2ln
bnMgZG9jdW1lbnRzIGFuZCB0aW1lIHN0YW1wIHJlcXVlc3RzIG1hZGUgdXNpbmcgdGhlIGZyZWV0c2Eu
b3JnIG9ubGluZSBzZXJ2aWNlczEYMBYGA1UEAxMPd3d3LmZyZWV0c2Eub3JnMSIwIAYJKoZIhvcNAQkB
FhNidXNpbGV6YXNAZ21haWwuY29tMRIwEAYDVQQHEwlXdWVyemJ1cmcxCzAJBgNVBAYTAkRFMQ8wDQYD
VQQIEwZCYXllcm4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC1kQSMTkhvNOncCGJ/wjdR
YiNphLgssTC+/1F8/Dj4S85cZah02rJiGuC85+M1Y+Dt6TT9X4gjFZ8HhIgIInRgwe2IJhcG9CgTNDWd
+7gb0TU/wXlhCvGoyMhl3ADqI7Oom+a9A7qFqeyCfWBWWQXiLWpYTtE4CuFQKAzuOX6YoBLzgEZAB4Yk
Q7wHfLlfQhrzFxLZaDzbbf+688i6W6VmrlI9RZ1hdzRtTYQOJ4hrfAHFuJDXii4nu6jdL5ooEuFX1i+S
HGWWJUgGnc230G3hgd4OlXDWb4ciDOKLYoq1WQbz7gwhD3BR6PSFivi5qS0J5Gry2culv8+tFozfYESR
pLBmA7EUyvcDHwZefu76U8V180kMBZ0uMt3HasTUxMcQaDuX/RvlkbxhBVGG2I+aA5GzB7b5HtlU2qNv
ms1qHhSqLkrfF0ZLVNsY27b/4wCAJGVHNwQ2zk53uuXeb+Dz+dbn/760YeeU6S+wlR+KrmGkEszpshB0
Y1yL4yeuGg9rSmRusPhGO8Y7+EVTBDXRnoAlEeyfZsNJaVLYvstpsKpNTEH2BRX+fcu4kxnN2lm6aupL
486ucY5vy2zNfbn8ULsVsS82ZbCqMHKJwubdSxEc5Iui2e/bWmuaUGBpM0+zT2/HrjMPCzQgiqyA3zJm
/dkEZYdrosuJjZUFMVtuewIDAQABo4IB2zCCAdcwCQYDVR0TBAIwADAdBgNVHQ4EFgQUbnYLe05PnOFg
ym0s6SeiopSzdzcwHwYDVR0jBBgwFoAU+lUNjDRmUUNM9+ezp2yVr3rmpJcwCwYDVR0PBAQDAgbAMBYG
A1UdJQEB/wQMMAoGCCsGAQUFBwMIMGMGCCsGAQUFBwEBBFcwVTAqBggrBgEFBQcwAoYeaHR0cDovL3d3
dy5mcmVldHNhLm9yZy90c2EuY3J0MCcGCCsGAQUFBzABhhtodHRwOi8vd3d3LmZyZWV0c2Eub3JnOjI1
NjAwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL3d3dy5mcmVldHNhLm9yZy9jcmwvcm9vdF9jYS5jcmww
gcYGA1UdIASBvjCBuzCBuAYBADCBsjAzBggrBgEFBQcCARYnaHR0cDovL3d3dy5mcmVldHNhLm9yZy9m
cmVldHNhX2Nwcy5odG1sMDIGCCsGAQUFBwIBFiZodHRwOi8vd3d3LmZyZWV0c2Eub3JnL2ZyZWV0c2Ff
Y3BzLnBkZjBHBggrBgEFBQcCAjA7GjlGcmVlVFNBIHRydXN0ZWQgdGltZXN0YW1waW5nIFNvZnR3YXJl
IGFzIGEgU2VydmljZSAoU2FhUykwDQYJKoZIhvcNAQENBQADggIBAKXJROLG+sChTZMKf9CgsXK0H8FI
PD6VfGiivNm5dk8alQFh/XJHLUGl7tJ3eGIDtUIiQPs6Js3hdgh7b7EBHfTMGeJXGqSgURCWZelMRvUL
0q3uasQTfiUbJaOdq9pFFRXY/54HIJ6Owgt4dPfhoO3nwAk3/oSjNPizJlztLY7Z32E5ZYNnf+s4LB7j
sj5upfBd8w3nufiQBdJSZvYS85yLT22rpte/usGWMrkGNzKfUqbwZqEOQ+qoH4SabF/j/oteojJ19ofy
BS5QLqbDB2KmaMzgeHHdjpfjFbupKeJViZd6CjEs6WxRBrFDfHefKzYbGCiI8+6KI0N0+gY+lWGSYn98
QxBzll0SYJKOugCegDQprjJM+W8EI1Tze8pa/dx595NGqziL/HnwHcmGElTqbMEplBB2uD0gVW875RMm
g38odveDOzcOfD1BBSOCfU9TQAxyIY11Ip/xDG+Ik6mjocDEK7TImME99Bx/ZXO0/FZRWXGmEKew0oV8
giWp+yBOrOyi6Jcaoa+HiGoq48cv4KCq6EKYCne+8WuSEVRYCQ2YK1lGYDdk51oK09EUVLmYb2eLmrav
6ElwM646v9TrQ7e8ne5ogVlJ5kgVgqgueFJ38ighB+/jkCAOBQisuOqC6iUFJ288naKj07StOLv4hCva
NvwkSCkfVY3ALdHgMIIH/zCCBeegAwIBAgIJAMHphhYNqOmAMA0GCSqGSIb3DQEBDQUAMIGVMREwDwYD
VQQKEwhGcmVlIFRTQTEQMA4GA1UECxMHUm9vdCBDQTEYMBYGA1UEAxMPd3d3LmZyZWV0c2Eub3JnMSIw
IAYJKoZIhvcNAQkBFhNidXNpbGV6YXNAZ21haWwuY29tMRIwEAYDVQQHEwlXdWVyemJ1cmcxDzANBgNV
BAgTBkJheWVybjELMAkGA1UEBhMCREUwHhcNMTYwMzEzMDE1MjEzWhcNNDEwMzA3MDE1MjEzWjCBlTER
MA8GA1UEChMIRnJlZSBUU0ExEDAOBgNVBAsTB1Jvb3QgQ0ExGDAWBgNVBAMTD3d3dy5mcmVldHNhLm9y
ZzEiMCAGCSqGSIb3DQEJARYTYnVzaWxlemFzQGdtYWlsLmNvbTESMBAGA1UEBxMJV3VlcnpidXJnMQ8w
DQYDVQQIEwZCYXllcm4xCzAJBgNVBAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
tgKODjAy8REQ2WTNqUudAnjhlCrpE6qlmQfNppeTmVvZrH4zutn+NwTaHAGpjSGv4/WRpZ1wZ3BRZ5mP
UBZyLgq0YrIfQ5Fx0s/MRZPzc1r3lKWrMR9sAQx4mN4z11xFEO529L0dFJjPF9MD8Gpd2feWzGyptlel
b+PqT+++fOa2oY0+NaMM7l/xcNHPOaMz0/2olk0i22hbKeVhvokPCqhFhzsuhKsmq4Of/o+t6dI7sx5h
0nPMm4gGSRhfq+z6BTRgCrqQG2FOLoVFgt6iIm/BnNffUr7VDYd3zZmIwFOj/H3DKHoGik/xK3E82YA2
ZulVOFRW/zj4ApjPa5OFbpIkd0pmzxzdEcL479hSA9dFiyVmSxPtY5ze1P+BE9bMU1PScpRzw8MHFXxy
KqW13Qv7LWw4sbk3SciB7GACbQiVGzgkvXG6y85HOuvWNvC5GLSiyP9GlPB0V68tbxz4JVTRdw/Xn/XT
FNzRBM3cq8lBOAVt/PAX5+uFcv1S9wFE8YjaBfWCP1jdBil+c4e+0tdywT2oJmYBBF/kEt1wmGwMmHun
NEuQNzh1FtJY54hbUfiWi38mASE7xMtMhfj/C4SvapiDN837gYaPfs8x3KZxbX7C3YAsFnJinlwAUss1
fdKar8Q/YVs7H/nU4c4Ixxxz4f67fcVqM2ITKentbCMCAwEAAaOCAk4wggJKMAwGA1UdEwQFMAMBAf8w
DgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBT6VQ2MNGZRQ0z357OnbJWveuaklzCBygYDVR0jBIHCMIG/
gBT6VQ2MNGZRQ0z357OnbJWveuakl6GBm6SBmDCBlTERMA8GA1UEChMIRnJlZSBUU0ExEDAOBgNVBAsT
B1Jvb3QgQ0ExGDAWBgNVBAMTD3d3dy5mcmVldHNhLm9yZzEiMCAGCSqGSIb3DQEJARYTYnVzaWxlemFz
QGdtYWlsLmNvbTESMBAGA1UEBxMJV3VlcnpidXJnMQ8wDQYDVQQIEwZCYXllcm4xCzAJBgNVBAYTAkRF
ggkAwemGFg2o6YAwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL3d3dy5mcmVldHNhLm9yZy9yb290X2Nh
LmNybDCBzwYDVR0gBIHHMIHEMIHBBgorBgEEAYHyJAEBMIGyMDMGCCsGAQUFBwIBFidodHRwOi8vd3d3
LmZyZWV0c2Eub3JnL2ZyZWV0c2FfY3BzLmh0bWwwMgYIKwYBBQUHAgEWJmh0dHA6Ly93d3cuZnJlZXRz
YS5vcmcvZnJlZXRzYV9jcHMucGRmMEcGCCsGAQUFBwICMDsaOUZyZWVUU0EgdHJ1c3RlZCB0aW1lc3Rh
bXBpbmcgU29mdHdhcmUgYXMgYSBTZXJ2aWNlIChTYWFTKTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUH
MAGGG2h0dHA6Ly93d3cuZnJlZXRzYS5vcmc6MjU2MDANBgkqhkiG9w0BAQ0FAAOCAgEAaK9+v5OFYu9M
6ztYC+L69sw1omdyli89lZAfpWMMh9CRmJhM6KBqM/ipwoLtnxyxGsbCPhcQjuTvzm+ylN6VwTMmIlVy
VSLKYZcdSjt/eCUN+41K7sD7GVmxZBAFILnBDmTGJmLkrU0KuuIpj8lI/E6Z6NnmuP2+RAQSHsfBQi6s
ssnXMo4HOW5gtPO7gDrUpVXID++1P4XndkoKn7Svw5n0zS9fv1hxBcYIHPPQUze2u30bAQt0n0iIyRLz
aWuhtpAtd7ffwEbASgzB7E+NGF4tpV37e8KiA2xiGSRqT5ndu28fgpOY87gD3ArZDctZvvTCfHdAS5kE
O3gnGGeZEVLDmfEsv8TGJa3AljVa5E40IQDsUXpQLi8G+UC41DWZu8EVT4rnYaCw1VX7ShOR1PNCCvjb
8S8tfdudd9zhU3gEB0rxdeTy1tVbNLXW99y90xcwr1ZIDUwM/xQ/noO8FRhm0LoPC73Ef+J4ZBdrvWwa
uF3zJe33d4ibxEcb8/pz5WzFkeixYM2nsHhqHsBKw7JPouKNXRnl5IAE1eFmqDyC7G/VT7OF669xM6hb
Ut5G21JE4cNK6NNucS+fzg1JPX0+3VhsYZjj7D5uljRvQXrJ8iHgr/M6j2oLHvTAI2MLdq2qjZFDOCXs
xBxJpbmLGBx9ow6ZerlUxzws2AWv2pkxggOKMIIDhgIBATCBozCBlTERMA8GA1UEChMIRnJlZSBUU0Ex
EDAOBgNVBAsTB1Jvb3QgQ0ExGDAWBgNVBAMTD3d3dy5mcmVldHNhLm9yZzEiMCAGCSqGSIb3DQEJARYT
YnVzaWxlemFzQGdtYWlsLmNvbTESMBAGA1UEBxMJV3VlcnpidXJnMQ8wDQYDVQQIEwZCYXllcm4xCzAJ
BgNVBAYTAkRFAgkAwemGFg2o6YIwDQYJYIZIAWUDBAIDBQCggbgwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3
DQEJEAEEMBwGCSqGSIb3DQEJBTEPFw0yMzA4MjkwNDU5MThaMCsGCyqGSIb3DQEJEAIMMRwwGjAYMBYE
FJFto9hg7MqC40vFnReT5+loh18UME8GCSqGSIb3DQEJBDFCBEC0sQuRVLt2o2MnQo27E/iMe44zIk6+
ZymPv+63mt99ocKX0C4LZp24BT6dSi9j3RqAmlP0CM07N6mDCaYNc4ljMA0GCSqGSIb3DQEBAQUABIIC
AI2j5xGpWFO/bHX3kNhQe4QjC6KvW6Wr/2B9khC9eo4zxJ8MfGRVbtQS7+GobGlBe8AoW8u9IIC6JPPD
FCU8qmjrie8qW2nIVUlo3dAd/YCxCgoGdwvIxTJift3OwY2fMkWFjN2vkG/vAKTlmu5YzM289cuFV3Jq
L2kw/db2W3FM6ZOHtcyrNaTKG2xhyOBDb4sgGNXoSkXep447VhDSYrbf0jAtTANDer/MM7lJ/dhpLrQJ
B4vpjdiIskrZyUtK4gwZD1Yb60KrTSF/dfuMXmfy4M0Xdd7c41Mtq4FV6nzw5CZqgGTLcYy/57yWrzzu
HhT6r8OtqOjzr4TBVDxv8FLtdlLKCPENyrpePAgIgVx+00ch1uN54AE1v5zICAy2lRjmmgdZ9IOk+eMH
qgOsDsRMyHf1pPGA7RTVRS8btOWqz/RFDU4l42pUFBVgr0XQcj+OVlCmtlWrIrLVNg9/D8NS4K8D5vYW
cpOwrm3t+ZsnAdzehJAjzVg+6q3t0GV8uV/tKeZI2dDmy6AoN+bXQAcD3pNeLRToBkhl+2bQbzc5VYAr
z6REBulGQ2fagwmIQwEf2HaNxk/rrAKEAirxIqy3o6q4A8FZFq+I7a5TG5NvV193oCbIyC6IBFfkbA7i
MeEkNmqgLqKE8Z8JBkgzhFWhUKSXsHC42myJh+zImU/b
There's a number of ways this can be verified. This simplest will be to base64 decode these two files, then use the verify feature on https://freetsa.org/. Or you can use openssl with a command like:
openssl ts -verify -in "${TSRESPONSE}" -queryfile "${TSREQUEST}" -CAfile cacert.pem
openssl should then respond with:
Verification: OK
Script to make your own
You can create your own timestamp request/response files using the following script:
#!/bin/sh
INFILE="$1"
BASENAME=$(basename "${INFILE}")
TMPFILE="/tmp/${BASENAME}"
TSREQUEST="${TMPFILE}.tsq"
TSRESPONSE="${TMPFILE}.tsr"
CAFILE="${HOME}/.freetsa/freetsa/cacert.pem" # Need to download this from https://freetsa.org
if [ ! -f "${INFILE}" ]; then
cat << EOF
$0 <file>
Creates a out.tsr file.
EOF
exit 1
echo "$0 <file>"
fi
echo "* Generating timestamp request"
openssl ts -query -data "${INFILE}" -no_nonce -sha512 -cert -out "${TSREQUEST}"
echo "* Generating timestamp response"
curl -H "Content-Type: application/timestamp-query" --data-binary "@${TSREQUEST}" https://freetsa.org/tsr > "${TSRESPONSE}"
echo "* Inspecting the timestamp response"
openssl ts -reply -in "${TSRESPONSE}" -text
echo "* Verify using the timestamp response (TSR) using the timestamp request (TSQ)"
openssl ts -verify -in "${TSRESPONSE}" -queryfile "${TSREQUEST}" -CAfile "${CAFILE}"
echo "* Verify timestamp response (TSR) using the original data"
openssl ts -verify -in "${TSRESPONSE}" -data "${INFILE}" -CAfile "${CAFILE}"