diff --git a/blog.json b/blog.json index 18a0bde..7240481 100644 --- a/blog.json +++ b/blog.json @@ -481,7 +481,7 @@ }, "gnu-bash-script-and-general-code-optimisation-tips": { "title": "R05VIEJBU0ggc2NyaXB0IGFuZCBnZW5lcmFsIGNvZGUgb3B0aW1pc2F0aW9uIHRpcHM=", - "content": "T3ZlciB0aGUgeWVhcnMgdGhhdCBJIGhhdmUgYmVlbiBwcm9ncmFtbWluZyBJIGhhZCBxdWl0ZSBhIGZldwptb21lbnRzIHdoZW4gSSBoYWQgdG8gb3B0aW1pc2UgY29kZSwgc28gdG9kYXkgSSBoYXZlIGRlY2lkZWQgdG8gc2hhcmUKaG93IEkgZG8gaXQsIHlvdSBtaWdodCBmaW5kIHRoaXMgdXNlZnVsCgojIyBCQVNIIHNjcmlwdCBvcHRpbWlzYXRpb24KCj4gTm90ZTogQSBsb3Qgb2YgdGhlc2UgcG9pbnRzIGNhbiBiZSBhbHNvIGFwcGxpZWQgdG8gdGhlIG5leHQKPiBzZWN0aW9uCgotICAgQXZvaWQgZm9ya3MgYW5kIHN1Yi1zaGVsbHMsIGl0IG1pZ2h0IG5vdCBsb29rIGxpa2UgbXVjaCBidXQgaXQgKipfUkVBTExZXyoqIGltcGFjdHMKICAgIHlvdXIgcHJvZ3JhbSdzIHBlcmZvcm1hbmNlLCBsaWtlLi4uIEJ5IGEgbG90LCBzbyBhdm9pZCB0aGVtCiAgICAtICAgUHJlZmVyIHVzaW5nIGJ1aWx0LWluIEJBU0ggY29tbWFuZHMgKDwjZXhhbXBsZS0xPikKICAgICAgICByYXRoZXIgdGhhbiBjYWxsaW5nIGV4dGVybmFsIGNvbW1hbmRzCiAgICAtICAgUHJlZmVyIHVzaW5nIHRoZSBgLXZgIHN5bnRheCByYXRoZXIgdGhhbiB1c2luZyBhIHN1Yi1zaGVsbCwgY2FwdHVyaW5nCiAgICAgICAgdGhlIG91dHB1dCBhbmQgc2F2aW5nIGl0LCBieSBgLXZgIHN5bnRheCBJIG1lYW4KICAgICAgICBhIGNvbW1hbmQgd3JpdGluZyBfZGlyZWN0bHlfIHRvIHRoZSB2YXJpYWJsZSAoPCNleGFtcGxlLTI+KQogICAgLSAgIFByZWZlciB1c2luZyBuYXRpdmUgQkFTSCByYXRoZXIgdGhhbiBjYWxsaW5nIGNvbW1hbmRzICg8I2V4YW1wbGUtMz4pCi0gICBBdm9pZCBsb29waW5nLCBhcyBpbiBhbnkgaW50ZXJwcmV0ZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgaXQncyBzbG93IHRvCiAgICBsb29wIGluIEJBU0gKLSAgIEF2b2lkIGNvbXBsZXggY29tbWFuZHMgKDwjZXhhbXBsZS00PikKICAgIC0gICBBdm9pZCBjb21wbGV4aXR5IGluIGdlbmVyYWwgZXZlbiBpZiBpdCBzYWNyaWZpY2VzIGVhc2UgKDwjZXhhbXBsZS01PikKICAgIC0gICBCZSBzbWFydCBhYm91dCB0aGUgY29tbWFuZHMgeW91IGNhbGwsIGNhbGwgc2ltcGxlciBvbmVzICg8I2V4YW1wbGUtNj4pCi0gICBMZXNzIGlzIG1vcmUsIGlmIHlvdSdyZSBub3QgdXNpbmcgQkFTSCBmZWF0dXJlcywgd2h5IG5vdCBzdGljayB0byBgc2hgID8KICAgIEl0J3MgZmFzdGVyLCBvciBldmVuIHVzZSBzb21lIG90aGVyIFBPU0lYIGNvbXBsaWVudCBzaGVsbCwgZm9yIGV4YW1wbGUgREFTSAogICAgb3IgS1NICi0gICBJZiB5b3VyIGNvZGUgaXMgYmVpbmcgYHNvdXJjZWBkIG9yIGluIGdlbmVyYWwsIHdoeSBub3QgaGF2ZSBhIHByZS1wcm9jZXNzaW5nCiAgICBvciBidWlsZCBzdGVwLCBmb3IgZXhhbXBsZSBsZXQncyBzYXkgeW91IGhhdmUgb3B0aW9uYWwgbG9nZ2luZyBlbmFibGVkIGJ5IHNvbWUKICAgIGVudmlyb25tZW50IHZhcmlhYmxlLCB3aHkgbm90IG1ha2UgdGhhdCBidWlsZC10aW1lLCBmb3IgZXhhbXBsZQogICAgPGh0dHBzOi8vYXJpLXdlYi54eXovZ2gvYmF6PiBkb2VzIGl0LCBzdHJpcCBhd2F5IGNvbW1lbnRzIGFuZCBzdHVmZgogICAgLSAgIFdoaWxlIHlvdSdyZSBhdCBpdCwgd2h5IG5vdCBtYW5nbGUgbmFtZXMgYXQgYnVpbGQgdGltZSB0bwogICAgICAgIGJlIHNob3J0ZXIgPyBTaG9ydGVyIHNjcmlwdHMgZnJvbSB3aGF0IEkga25vdyBydW4gX3NsaWdodGx5XyBmYXN0ZXIKICAgICAgICBhcyBCQVNIIGhhcyB0byByZWFkIGxlc3MgYW5kIHBhcnNlIGxlc3MKLSAgIEF2b2lkIGRpc2sgSS9PICg8I2V4YW1wbGUtNz4pCi0gICBTdG9yZSBkYXRhIGluIHZhcmlhYmxlcyByYXRoZXIgdGhhbiBnZW5lcmF0aW5nIGl0IG92ZXIgYW5kIG92ZXIgYWdhaW4KICAgIGZvciBleGFtcGxlIEJBU0ggZXNjYXBlcyBgJCdcbidgLCBpdCBnaXZlcyBhIF92ZXJ5IHNsaWdodF8gcGVyZm9ybWFuY2UKICAgIGJvb3N0ICg8I2V4YW1wbGUtOD4pCi0gICBQcmVmZXIgZG9pbmcgZXZlcnl0aGluZyBpbiBvbmUgcmF0aGVyIHRoYW4gb25lLWJ5LW9uZSAoPCNleGFtcGxlLTk+KQoKIyMgR2VuZXJhbCBjb2RlIG9wdGltaXNhdGlvbgoKLSAgIFByZWZlciBjb21waWxhdGlvbiwgdHJhbnNwaWxhdGlvbiBvciBwcmUtZXZhbHVhdGlvbiBvdmVyCiAgICBwdXJlIGludGVycHJldGF0aW9uCiAgICAtICAgRXZlbiBpZiB0aGUgdHJhbnNwaWxhdGlvbiBpcyBpbnRvIGJ5dGVjb2RlLCBpdCBkb2Vzbid0IG1hdHRlciwKICAgICAgICBpdCdsbCBzdGlsbCBiZSBmYXN0ZXIgdGhhbiBwdXJlIGludGVycHJldGF0aW9uLCBmb3IgZXhhbXBsZQogICAgICAgIHB5dGhvbiBieXRlY29kZSBpcyBmYXN0ZXIgdGhhbiByYXcgcHl0aG9uCi0gICBCdWZmZXJpbmcgaXMgdW5kZXJyYXRlZCwgY2FsbGluZyBtYW55IGBzeXNjYWxsYHMgaXMgZXhwZW5zaXZlLAogICAgaGF2ZSBhIGxhcmdlciBidWZmZXIgaW5zdGVhZCAhICg8I2V4YW1wbGUtMTA+KQotICAgUHJpb3JpdGlzZSBzaW1wbGljaXR5IG92ZXIgZWFzZSwgYWJzdHJhY3Rpb25zIG9mdGVuIGNhdXNlCiAgICBtb3JlIGNvbXBsZXggY29kZQotICAgVXNlIGxvdyBsZXZlbCBjb2RlLCBpdCdzIG11Y2ggZmFzdGVyIHRoYW4gcHVyZSBhYnN0cmFjdGlvbnMKICAgIC0gICBMb3cgbGV2ZWwgY29kZSBnaXZlcyB5b3UgbW9yZSBjb250cm9sIGFuZCBpcyBjbG9zZXIKICAgICAgICB0byBoYXJkd2FyZSBtZWFuaW5nIGlzIG11Y2ggZmFzdGVyIHRoYW4gbWFjaGluZS1nZW5lcmF0ZWQKICAgICAgICBhc3NlbWJseSB3aXRoIHByZXBhcmF0aW9uIHN0ZXBzIGFuZCB0aGluZ3MsIHlvdSBjYW4gZG8KICAgICAgICBqdXN0IHdoYXQgeW91IHdhbnQgd2l0aCBsb3cgbGV2ZWwgY29kZSwgYWx0aG91Z2ggaXQncyBub3QKICAgICAgICBlYXNpZXIsIHNpbXBsZSwgYnV0IG5vdCBlYXN5Ci0gICBQcmVmZXIgc21hbGxlciBzaXplLCBzbWFsbGVyIGFzc2VtYmx5IGluc3RydWN0aW9ucyBhbmQgcmVnaXN0ZXJzCi0gICBGaW5kIGZhc3RlciB3YXlzIHRvIGRvIHRoaW5ncywgdGhlcmUgYWx3YXlzIGlzIGF0IGxlYXN0IG9uZQogICAgKDxodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTM1Njc5L2RvZXMtdXNpbmcteG9yLXJlZy1yZWctZ2l2ZS1hZHZhbnRhZ2Utb3Zlci1tb3YtcmVnLTA+KQotICAgUHJlZmVyIGRvaW5nIGxlc3MgZm9yIGEgc2ltaWxhciByZXN1bHQgKDwjZXhhbXBsZS0xMT4pCgojIyBFeGFtcGxlcwoKIyMjIEV4YW1wbGUgMQoKICAgIHg9IiQoY2F0IC0tIC9ldGMvcGFzc3dkKSIKCkZhc3RlcjoKCiAgICB4PSIkKDwvZXRjL3Bhc3N3ZCkiCgojIyMgRXhhbXBsZSAyCgogICAgZ3JlZXQoKSB7IGVjaG8gIkhlbGxvLCAkMSI7IH0KCiAgICB4PSIkKGdyZWV0ICdhcmknKSIKICAgIGVjaG8gIiR4IgoKRmFzdGVyOgoKICAgIGdyZWV0KCkgewogICAgICAgIGxvY2FsIC1uIF9yPSIkMSIKICAgICAgICBzaGlmdCAxCgogICAgICAgIHByaW50ZiAtdiBfciAiSGVsbG8sICVzIiAiJDEiCiAgICB9CgogICAgZ3JlZXQgeCAnYXJpJwogICAgZWNobyAiJHgiCgojIyMgRXhhbXBsZSAzCgogICAgeD0iSGVsIG8iCiAgICBlY2hvICIkeCIgfCBzZWQgJ3MvIC9sLycKCkZhc3RlcjoKCiAgICB4PSJIZWwgbyIKICAgIGVjaG8gIiR7eC8gL2x9IgoKIyMjIEV4YW1wbGUgNAoKICAgIHByaW50ZiAnJXNcbicgJ2hleScKCkZhc3RlcjoKCiAgICBlY2hvICdoZXknCgojIyMgRXhhbXBsZSA1CgogICAgeD0oKQoKICAgIHdoaWxlIHJlYWQgLXIgbGluZTsgZG8KICAgICAgICB4Kz0oIiRsaW5lIikKICAgIGRvbmUgPGZpbGUKCkZhc3RlcjoKCiAgICBtYXBmaWxlIC10IHggPGZpbGUKCiMjIyBFeGFtcGxlIDYKCiAgICBzZWQgJzEhZCcgZmlsZQoKRmFzdGVyOgoKICAgIGhlYWQgLW4xIGZpbGUKCiMjIyBFeGFtcGxlIDcKCiAgICBpZCA+L3RtcC94CiAgICBlY2hvICJJbmZvOiAkKDwvdG1wL3gpIgogICAgcm0gLWYgL3RtcC94CgpGYXN0ZXI6CgogICAgZWNobyAiSW5mbzogJChpZCkiCgojIyMgRXhhbXBsZSA4CgogICAgZm9yIF8gaW4gJChzZXEgMTAwMDApOyBkbwogICAgICAgIGVjaG8gIkhlbGxvIiQnXG4nIndvcmxkIgogICAgZG9uZQoKRmFzdGVyOgoKICAgIG5sPSQnXG4nCgogICAgZm9yIF8gaW4gJChzZXEgMTAwMDApOyBkbwogICAgICAgIGVjaG8gIkhlbGxvJHtubH13b3JsZCIKICAgIGRvbmUKCiMjIyBFeGFtcGxlIDkKCiAgICB3aGlsZSByZWFkIC1yIGxpbmU7IGRvCiAgICAgICAgZWNobyAiJGxpbmUiCiAgICBkb25lIDxmaWxlCgpGYXN0ZXI6CgogICAgZWNobyAiJCg8ZmlsZSkiCgojIyMgRXhhbXBsZSAxMAoKICAgIGZvcm1hdCBFTEY2NCBleGVjdXRhYmxlIDMKICAgIHNlZ21lbnQgcmVhZGFibGUgZXhlY3V0YWJsZQoKICAgIF9zdGFydDoKICAgICAgICA7OyAyIHN5c2NhbGxzIHBlciBjaGFyCgogICAgICAgIG1vdiBlYXgsIDAKICAgICAgICBtb3YgZWRpLCAwCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgbW92IGVkeCwgMQogICAgICAgIHN5c2NhbGwKCiAgICAgICAgdGVzdCBlYXgsIGVheAogICAgICAgIGp6IC5leGl0CgogICAgICAgIG1vdiBlYXgsIDEKICAgICAgICBtb3YgZWRpLCAxCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgbW92IGVkeCwgMQogICAgICAgIHN5c2NhbGwKCiAgICAgICAgam1wIF9zdGFydAoKICAgIC5leGl0OgogICAgICAgIG1vdiByYXgsIDYwCiAgICAgICAgbW92IHJkaSwgMAogICAgICAgIHN5c2NhbGwKCiAgICBzZWdtZW50IHJlYWRhYmxlIHdyaXRhYmxlCiAgICAgICAgYnVmOiByYiAxCgpGYXN0ZXI6CgogICAgZm9ybWF0IEVMRjY0IGV4ZWN1dGFibGUgMwogICAgc2VnbWVudCByZWFkYWJsZSBleGVjdXRhYmxlCgogICAgX3N0YXJ0OgogICAgICAgIDs7IDIgc3lzY2FsbHMgcGVyIDEwMjQgY2hhcnMKCiAgICAgICAgbW92IGVheCwgMAogICAgICAgIG1vdiBlZGksIDAKICAgICAgICBtb3YgZXNpLCBidWYKICAgICAgICBtb3YgZWR4LCAxMDI0CiAgICAgICAgc3lzY2FsbAoKICAgICAgICB0ZXN0IGVheCwgZWF4CiAgICAgICAganogLmV4aXQKCiAgICAgICAgbW92IGVkeCwgZWF4CgogICAgICAgIG1vdiBlYXgsIDEKICAgICAgICBtb3YgZWRpLCAxCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgc3lzY2FsbAoKICAgICAgICBqbXAgX3N0YXJ0CgogICAgLmV4aXQ6CiAgICAgICAgbW92IHJheCwgNjAKICAgICAgICBtb3YgcmRpLCAwCiAgICAgICAgc3lzY2FsbAoKICAgIHNlZ21lbnQgcmVhZGFibGUgd3JpdGFibGUKICAgICAgICBidWY6IHJiIDEwMjQKCiMgRXhhbXBsZSAxMQoKICAgIGludCB4ID0gMDsKICAgIHggPSAwOwogICAgeCA9IDE7CiAgICB4LS07CiAgICB4Kys7CgpGYXN0ZXI6CgogICAgaW50IHggPSAxOwo=", + "content": "T3ZlciB0aGUgeWVhcnMgdGhhdCBJIGhhdmUgYmVlbiBwcm9ncmFtbWluZyBJIGhhZCBxdWl0ZSBhIGZldwptb21lbnRzIHdoZW4gSSBoYWQgdG8gb3B0aW1pc2UgY29kZSwgc28gdG9kYXkgSSBoYXZlIGRlY2lkZWQgdG8gc2hhcmUKaG93IEkgZG8gaXQsIHlvdSBtaWdodCBmaW5kIHRoaXMgdXNlZnVsCgojIyBCQVNIIHNjcmlwdCBvcHRpbWlzYXRpb24KCj4gTm90ZTogQSBsb3Qgb2YgdGhlc2UgcG9pbnRzIGNhbiBiZSBhbHNvIGFwcGxpZWQgdG8gdGhlIG5leHQKPiBzZWN0aW9uCgotICAgQXZvaWQgZm9ya3MgYW5kIHN1Yi1zaGVsbHMsIGl0IG1pZ2h0IG5vdCBsb29rIGxpa2UgbXVjaCBidXQgaXQgKipfUkVBTExZXyoqIGltcGFjdHMKICAgIHlvdXIgcHJvZ3JhbSdzIHBlcmZvcm1hbmNlLCBsaWtlLi4uIEJ5IGEgbG90LCBzbyBhdm9pZCB0aGVtCiAgICAtICAgUHJlZmVyIHVzaW5nIGJ1aWx0LWluIEJBU0ggY29tbWFuZHMgKDwjZXhhbXBsZS0xPikKICAgICAgICByYXRoZXIgdGhhbiBjYWxsaW5nIGV4dGVybmFsIGNvbW1hbmRzCiAgICAtICAgUHJlZmVyIHVzaW5nIHRoZSBgLXZgIHN5bnRheCByYXRoZXIgdGhhbiB1c2luZyBhIHN1Yi1zaGVsbCwgY2FwdHVyaW5nCiAgICAgICAgdGhlIG91dHB1dCBhbmQgc2F2aW5nIGl0LCBieSBgLXZgIHN5bnRheCBJIG1lYW4KICAgICAgICBhIGNvbW1hbmQgd3JpdGluZyBfZGlyZWN0bHlfIHRvIHRoZSB2YXJpYWJsZSAoPCNleGFtcGxlLTI+KQogICAgLSAgIFByZWZlciB1c2luZyBuYXRpdmUgQkFTSCByYXRoZXIgdGhhbiBjYWxsaW5nIGNvbW1hbmRzICg8I2V4YW1wbGUtMz4pCi0gICBBdm9pZCBsb29waW5nLCBhcyBpbiBhbnkgaW50ZXJwcmV0ZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgaXQncyBzbG93IHRvCiAgICBsb29wIGluIEJBU0gKLSAgIEF2b2lkIGNvbXBsZXggY29tbWFuZHMgKDwjZXhhbXBsZS00PikKICAgIC0gICBBdm9pZCBjb21wbGV4aXR5IGluIGdlbmVyYWwgZXZlbiBpZiBpdCBzYWNyaWZpY2VzIGVhc2UgKDwjZXhhbXBsZS01PikKICAgIC0gICBCZSBzbWFydCBhYm91dCB0aGUgY29tbWFuZHMgeW91IGNhbGwsIGNhbGwgc2ltcGxlciBvbmVzICg8I2V4YW1wbGUtNj4pCi0gICBMZXNzIGlzIG1vcmUsIGlmIHlvdSdyZSBub3QgdXNpbmcgQkFTSCBmZWF0dXJlcywgd2h5IG5vdCBzdGljayB0byBgc2hgID8KICAgIEl0J3MgZmFzdGVyLCBvciBldmVuIHVzZSBzb21lIG90aGVyIFBPU0lYIGNvbXBsaWVudCBzaGVsbCwgZm9yIGV4YW1wbGUgREFTSAogICAgb3IgS1NICi0gICBJZiB5b3VyIGNvZGUgaXMgYmVpbmcgYHNvdXJjZWBkIG9yIGluIGdlbmVyYWwsIHdoeSBub3QgaGF2ZSBhIHByZS1wcm9jZXNzaW5nCiAgICBvciBidWlsZCBzdGVwLCBmb3IgZXhhbXBsZSBsZXQncyBzYXkgeW91IGhhdmUgb3B0aW9uYWwgbG9nZ2luZyBlbmFibGVkIGJ5IHNvbWUKICAgIGVudmlyb25tZW50IHZhcmlhYmxlLCB3aHkgbm90IG1ha2UgdGhhdCBidWlsZC10aW1lLCBmb3IgZXhhbXBsZQogICAgPGh0dHBzOi8vYXJpLXdlYi54eXovZ2gvYmF6PiBkb2VzIGl0LCBzdHJpcCBhd2F5IGNvbW1lbnRzIGFuZCBzdHVmZgogICAgLSAgIFdoaWxlIHlvdSdyZSBhdCBpdCwgd2h5IG5vdCBtYW5nbGUgbmFtZXMgYXQgYnVpbGQgdGltZSB0bwogICAgICAgIGJlIHNob3J0ZXIgPyBTaG9ydGVyIHNjcmlwdHMgZnJvbSB3aGF0IEkga25vdyBydW4gX3NsaWdodGx5XyBmYXN0ZXIKICAgICAgICBhcyBCQVNIIGhhcyB0byByZWFkIGxlc3MgYW5kIHBhcnNlIGxlc3MKLSAgIEF2b2lkIGRpc2sgSS9PICg8I2V4YW1wbGUtNz4pCi0gICBTdG9yZSBkYXRhIGluIHZhcmlhYmxlcyByYXRoZXIgdGhhbiBnZW5lcmF0aW5nIGl0IG92ZXIgYW5kIG92ZXIgYWdhaW4KICAgIGZvciBleGFtcGxlIEJBU0ggZXNjYXBlcyBgJCdcbidgLCBpdCBnaXZlcyBhIF92ZXJ5IHNsaWdodF8gcGVyZm9ybWFuY2UKICAgIGJvb3N0ICg8I2V4YW1wbGUtOD4pCi0gICBQcmVmZXIgZG9pbmcgZXZlcnl0aGluZyBpbiBvbmUgcmF0aGVyIHRoYW4gb25lLWJ5LW9uZSAoPCNleGFtcGxlLTk+KQoKIyMgR2VuZXJhbCBjb2RlIG9wdGltaXNhdGlvbgoKLSAgIFByZWZlciBjb21waWxhdGlvbiwgdHJhbnNwaWxhdGlvbiBvciBwcmUtZXZhbHVhdGlvbiBvdmVyCiAgICBwdXJlIGludGVycHJldGF0aW9uCiAgICAtICAgRXZlbiBpZiB0aGUgdHJhbnNwaWxhdGlvbiBpcyBpbnRvIGJ5dGVjb2RlLCBpdCBkb2Vzbid0IG1hdHRlciwKICAgICAgICBpdCdsbCBzdGlsbCBiZSBmYXN0ZXIgdGhhbiBwdXJlIGludGVycHJldGF0aW9uLCBmb3IgZXhhbXBsZQogICAgICAgIHB5dGhvbiBieXRlY29kZSBpcyBmYXN0ZXIgdGhhbiByYXcgcHl0aG9uCi0gICBCdWZmZXJpbmcgaXMgdW5kZXJyYXRlZCwgY2FsbGluZyBtYW55IGBzeXNjYWxsYHMgaXMgZXhwZW5zaXZlLAogICAgaGF2ZSBhIGxhcmdlciBidWZmZXIgaW5zdGVhZCAhICg8I2V4YW1wbGUtMTA+KQotICAgUHJpb3JpdGlzZSBzaW1wbGljaXR5IG92ZXIgZWFzZSwgYWJzdHJhY3Rpb25zIG9mdGVuIGNhdXNlCiAgICBtb3JlIGNvbXBsZXggY29kZQotICAgVXNlIGxvdyBsZXZlbCBjb2RlLCBpdCdzIG11Y2ggZmFzdGVyIHRoYW4gcHVyZSBhYnN0cmFjdGlvbnMKICAgIC0gICBMb3cgbGV2ZWwgY29kZSBnaXZlcyB5b3UgbW9yZSBjb250cm9sIGFuZCBpcyBjbG9zZXIKICAgICAgICB0byBoYXJkd2FyZSBtZWFuaW5nIGlzIG11Y2ggZmFzdGVyIHRoYW4gbWFjaGluZS1nZW5lcmF0ZWQKICAgICAgICBhc3NlbWJseSB3aXRoIHByZXBhcmF0aW9uIHN0ZXBzIGFuZCB0aGluZ3MsIHlvdSBjYW4gZG8KICAgICAgICBqdXN0IHdoYXQgeW91IHdhbnQgd2l0aCBsb3cgbGV2ZWwgY29kZSwgYWx0aG91Z2ggaXQncyBub3QKICAgICAgICBlYXNpZXIsIHNpbXBsZSwgYnV0IG5vdCBlYXN5Ci0gICBQcmVmZXIgc21hbGxlciBzaXplLCBzbWFsbGVyIGFzc2VtYmx5IGluc3RydWN0aW9ucyBhbmQgcmVnaXN0ZXJzCi0gICBGaW5kIGZhc3RlciB3YXlzIHRvIGRvIHRoaW5ncywgdGhlcmUgYWx3YXlzIGlzIGF0IGxlYXN0IG9uZQogICAgKDxodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTM1Njc5L2RvZXMtdXNpbmcteG9yLXJlZy1yZWctZ2l2ZS1hZHZhbnRhZ2Utb3Zlci1tb3YtcmVnLTA+KQotICAgUHJlZmVyIGRvaW5nIGxlc3MgZm9yIGEgc2ltaWxhciByZXN1bHQgKDwjZXhhbXBsZS0xMT4pCgojIyBFeGFtcGxlcwoKIyMjIEV4YW1wbGUgMQoKICAgIHg9IiQoY2F0IC0tIC9ldGMvcGFzc3dkKSIKCkZhc3RlcjoKCiAgICB4PSIkKDwvZXRjL3Bhc3N3ZCkiCgojIyMgRXhhbXBsZSAyCgogICAgZ3JlZXQoKSB7IGVjaG8gIkhlbGxvLCAkMSI7IH0KCiAgICB4PSIkKGdyZWV0ICdhcmknKSIKICAgIGVjaG8gIiR4IgoKRmFzdGVyOgoKICAgIGdyZWV0KCkgewogICAgICAgIGxvY2FsIC1uIF9yPSIkMSIKICAgICAgICBzaGlmdCAxCgogICAgICAgIHByaW50ZiAtdiBfciAiSGVsbG8sICVzIiAiJDEiCiAgICB9CgogICAgZ3JlZXQgeCAnYXJpJwogICAgZWNobyAiJHgiCgojIyMgRXhhbXBsZSAzCgogICAgeD0iSGVsIG8iCiAgICBlY2hvICIkeCIgfCBzZWQgJ3MvIC9sLycKCkZhc3RlcjoKCiAgICB4PSJIZWwgbyIKICAgIGVjaG8gIiR7eC8gL2x9IgoKIyMjIEV4YW1wbGUgNAoKICAgIHByaW50ZiAnJXNcbicgJ2hleScKCkZhc3RlcjoKCiAgICBlY2hvICdoZXknCgojIyMgRXhhbXBsZSA1CgogICAgeD0oKQoKICAgIHdoaWxlIHJlYWQgLXIgbGluZTsgZG8KICAgICAgICB4Kz0oIiRsaW5lIikKICAgIGRvbmUgPGZpbGUKCkZhc3RlcjoKCiAgICBtYXBmaWxlIC10IHggPGZpbGUKCiMjIyBFeGFtcGxlIDYKCiAgICBzZWQgJzEhZCcgZmlsZQoKRmFzdGVyOgoKICAgIGhlYWQgLW4xIGZpbGUKCiMjIyBFeGFtcGxlIDcKCiAgICBpZCA+L3RtcC94CiAgICBlY2hvICJJbmZvOiAkKDwvdG1wL3gpIgogICAgcm0gLWYgL3RtcC94CgpGYXN0ZXI6CgogICAgZWNobyAiSW5mbzogJChpZCkiCgojIyMgRXhhbXBsZSA4CgogICAgZm9yIF8gaW4gJChzZXEgMTAwMDApOyBkbwogICAgICAgIGVjaG8gIkhlbGxvIiQnXG4nIndvcmxkIgogICAgZG9uZQoKRmFzdGVyOgoKICAgIG5sPSQnXG4nCgogICAgZm9yIF8gaW4gJChzZXEgMTAwMDApOyBkbwogICAgICAgIGVjaG8gIkhlbGxvJHtubH13b3JsZCIKICAgIGRvbmUKCiMjIyBFeGFtcGxlIDkKCiAgICB3aGlsZSByZWFkIC1yIGxpbmU7IGRvCiAgICAgICAgZWNobyAiJGxpbmUiCiAgICBkb25lIDxmaWxlCgpGYXN0ZXI6CgogICAgZWNobyAiJCg8ZmlsZSkiCgojIyMgRXhhbXBsZSAxMAoKICAgIGZvcm1hdCBFTEY2NCBleGVjdXRhYmxlIDMKICAgIHNlZ21lbnQgcmVhZGFibGUgZXhlY3V0YWJsZQoKICAgIF9zdGFydDoKICAgICAgICA7OyAyIHN5c2NhbGxzIHBlciBjaGFyCgogICAgICAgIG1vdiBlYXgsIDAKICAgICAgICBtb3YgZWRpLCAwCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgbW92IGVkeCwgMQogICAgICAgIHN5c2NhbGwKCiAgICAgICAgdGVzdCBlYXgsIGVheAogICAgICAgIGp6IC5leGl0CgogICAgICAgIG1vdiBlYXgsIDEKICAgICAgICBtb3YgZWRpLCAxCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgbW92IGVkeCwgMQogICAgICAgIHN5c2NhbGwKCiAgICAgICAgam1wIF9zdGFydAoKICAgIC5leGl0OgogICAgICAgIG1vdiByYXgsIDYwCiAgICAgICAgbW92IHJkaSwgMAogICAgICAgIHN5c2NhbGwKCiAgICBzZWdtZW50IHJlYWRhYmxlIHdyaXRhYmxlCiAgICAgICAgYnVmOiByYiAxCgpGYXN0ZXI6CgogICAgZm9ybWF0IEVMRjY0IGV4ZWN1dGFibGUgMwogICAgc2VnbWVudCByZWFkYWJsZSBleGVjdXRhYmxlCgogICAgX3N0YXJ0OgogICAgICAgIDs7IDIgc3lzY2FsbHMgcGVyIDEwMjQgY2hhcnMKCiAgICAgICAgbW92IGVheCwgMAogICAgICAgIG1vdiBlZGksIDAKICAgICAgICBtb3YgZXNpLCBidWYKICAgICAgICBtb3YgZWR4LCAxMDI0CiAgICAgICAgc3lzY2FsbAoKICAgICAgICB0ZXN0IGVheCwgZWF4CiAgICAgICAganogLmV4aXQKCiAgICAgICAgbW92IGVkeCwgZWF4CgogICAgICAgIG1vdiBlYXgsIDEKICAgICAgICBtb3YgZWRpLCAxCiAgICAgICAgbW92IGVzaSwgYnVmCiAgICAgICAgc3lzY2FsbAoKICAgICAgICBqbXAgX3N0YXJ0CgogICAgLmV4aXQ6CiAgICAgICAgbW92IHJheCwgNjAKICAgICAgICBtb3YgcmRpLCAwCiAgICAgICAgc3lzY2FsbAoKICAgIHNlZ21lbnQgcmVhZGFibGUgd3JpdGFibGUKICAgICAgICBidWY6IHJiIDEwMjQKCiMjIyBFeGFtcGxlIDExCgogICAgaW50IHggPSAwOwogICAgeCA9IDA7CiAgICB4ID0gMTsKICAgIHgtLTsKICAgIHgrKzsKCkZhc3RlcjoKCiAgICBpbnQgeCA9IDE7Cg==", "version": 1, "time": 1667265190.408769, "keywords": "gnu programming code optimisation performance assembly c bash sh posix linux tips tutorial guide list simplicity ease abstraction low-level speed fast slow" diff --git a/content/styles.css b/content/styles.css index 331e56b..aff96bb 100644 --- a/content/styles.css +++ b/content/styles.css @@ -183,6 +183,9 @@ blockquote * { *[data-pl] { padding-top: 0.06em; padding-bottom: 0.06em; + + margin-top: 0.5em; + margin-bottom: 0.5em; } *[data-pl] * {