diff --git a/blog.json b/blog.json index a0bdeef..401522e 100644 --- a/blog.json +++ b/blog.json @@ -426,10 +426,10 @@ "keywords": "gnu programming code optimisation performance assembly c bash sh posix linux tips tutorial guide list simplicity ease abstraction low-level speed fast slow" }, "comparison-between-the-oh-my-bash-and-baz-plugin-managers-for-gnu-bash": { - "title": "Q29tcGFyaXNvbiBiZXR3ZWVuIHRoZSBvaC1teS1iYXNoIGFuZCBiYXogcGx1Z2luIG1hbmFnZXJzIGZvciBHTlUgQkFTSA==", - "content": "VG9kYXkgSSdsbCBiZSBjb21wYXJpbmcgdHdvIHBsdWdpbiBtYW5hZ2VycyBmb3IgR05VIEJBU0g6CgotICAgW09oLW15LWJhc2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9vaG15YmFzaC9vaC1teS1iYXNoKQotICAgW0Jhel0oaHR0cHM6Ly9hcmktd2ViLnh5ei9naC9iYXopCgojIyBUZXN0aW5nIGVudmlyb25tZW50CgpGcmVzaCBpbnN0YWxsYXRpb24gb2YgW1ZvaWQgTGludXhdKGh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8pLCBHTGliQyBlZGl0aW9uCgotICAgUUVNVQogICAgLSAgIEtWTQotICAgMjA0OCBNQiBvZiBSQU0KLSAgIDIgQ1BVIGNvcmVzCiAgICAtICAgSG9zdCBDUFU6IEludGVsIGkzIDh0aCBnZW5lcmF0aW9uCi0gICAzMiBNQiBvZiBWUkFNCi0gICAzMCBHQiBRQ09XMiBzdG9yYWdlCiAgICAtICAgNTAwIE1CIEJvb3QgKHZmYXQpCiAgICAtICAgMiBHQiBTd2FwIChzd2FwKQogICAgLSAgIDI3LjUgR0IgUm9vdCAoZXh0NCkKLSAgIEJBU0ggdmVyc2lvbjogYDUuMS4xNmAKICAgIC0gICBCYXogdmVyc2lvbjogYHY1LjMuMGAKICAgIC0gICBPbWIgdmVyc2lvbjogPGh0dHBzOi8vZ2l0aHViLmNvbS9vaG15YmFzaC9vaC1teS1iYXNoL2NvbW1pdC8xYzdmNmQ2N2NlZDQyYjVhYTRlNmFiODRiZGJhMDk4MGYzYWQ2ODhhPgoKIyMgQ29sbGVjdGlvbiBvZiBkYXRhCgpJIGp1c3QgcnVuIHRoaXMgY29tbWFuZDoKCiAgICBmb3IgXyBpbiAkKHNlcSAxMDAwKTsgZG8geyAvdXNyL2Jpbi90aW1lIC1mICclZScgYmFzaCAtaWMgZXhpdCAyPiYxIHwgdGFpbCAtbiAxOyB9OyBkb25lID5vdXQuZGF0CgpUaGlzIGNvbGxlY3RzIHJ1biB0aW1lIGZvciAxMDAwIHJ1bnMKCiMjIERhdGEKCkkgaGF2ZSBiZWVuIGFibGUgdG8gY29sbGVjdCA0IGZpbGVzOgoKLSAgIGBiYXotYWdub3N0ZXIuZGF0YAotICAgYGJhei1zdGFydHVwLmRhdGAKLSAgIGBvbWItYWdub3N0ZXIuZGF0YAotICAgYG9tYi1zdGFydHVwLmRhdGAKCkFuZCB5b3UgY2FuIHByb2JhYmx5IHRlbGwgd2hhdCBpcyB3aGF0IGxvbCBgKi1hZ25vc3RlcmAgaXMgJ2xvYWRlZCB3aXRoIGFnbm9zdGVyIHBsdWdpbicKKG9uZSBvZiB0aGUgbW9yZSBiZWVmeSBiYXNoIHRoZW1lcykgYW5kICdzdGFydHVwJyBpcyB2YW5pbGxhIGxvYWRpbmcgdGltZSwgbm8gcGx1Z2lucywgbm90aGluZwoKIyMgU3RhdGlzdGljcwoKICAgIFBhcnNpbmcgZGF0YQogICAgUGFyc2VkIGFsbCBkYXRhCgogICAgU3RhdGlzdGljcyBmb3IgJ2JheicKICAgICAgYWdub3N0ZXI6CiAgICAgICAgQXZlcmFnZTogMC4wMjEgcwogICAgICAgIE1lZGlhbjogIDAuMDIwIHMKICAgICAgICBTdW06ICAgICAyMC45NjAgcyAvIDEwMDAgcnVucwogICAgICAgIEdyYXBoOiAgICdncmFwaHMvYmF6LWFnbm9zdGVyLWdyYXBoLnBuZycKICAgICAgc3RhcnR1cDoKICAgICAgICBBdmVyYWdlOiAwLjAxMSBzCiAgICAgICAgTWVkaWFuOiAgMC4wMTAgcwogICAgICAgIFN1bTogICAgIDExLjMzMCBzIC8gMTAwMCBydW5zCiAgICAgICAgR3JhcGg6ICAgJ2dyYXBocy9iYXotc3RhcnR1cC1ncmFwaC5wbmcnCgogICAgU3RhdGlzdGljcyBmb3IgJ29tYicKICAgICAgYWdub3N0ZXI6CiAgICAgICAgQXZlcmFnZTogMC4wODMgcwogICAgICAgIE1lZGlhbjogIDAuMDcwIHMKICAgICAgICBTdW06ICAgICA4My4xOTAgcyAvIDEwMDAgcnVucwogICAgICAgIEdyYXBoOiAgICdncmFwaHMvb21iLWFnbm9zdGVyLWdyYXBoLnBuZycKICAgICAgc3RhcnR1cDoKICAgICAgICBBdmVyYWdlOiAwLjExOCBzCiAgICAgICAgTWVkaWFuOiAgMC4xMTAgcwogICAgICAgIFN1bTogICAgIDExOC4zMDAgcyAvIDEwMDAgcnVucwogICAgICAgIEdyYXBoOiAgICdncmFwaHMvb21iLXN0YXJ0dXAtZ3JhcGgucG5nJwoKICAgIEluIGNvbnRleHQgb2YgJ2Fnbm9zdGVyJyBhdmVyYWdlIGJheiBsb2FkIHRpbWUgaXMgMC4wNiBzIGZhc3RlciB0aGFuIG9tYiwgMC4wNSBzIHBlciBtZWRpYW4sIGluIGJhdGNoZXMgdGhpcyBtYWtlcyBhIDYyLjIzIHMgZGlmZmVyZW5jZQogICAgSW4gY29udGV4dCBvZiAnc3RhcnR1cCcgYXZlcmFnZSBiYXogbG9hZCB0aW1lIGlzIDAuMTEgcyBmYXN0ZXIgdGhhbiBvbWIsIDAuMTAgcyBwZXIgbWVkaWFuLCBpbiBiYXRjaGVzIHRoaXMgbWFrZXMgYSAxMDYuOTcgcyBkaWZmZXJlbmNlCgpJIGp1c3QgbWFkZSBhIHZlcnkgc2hpdHR5IHB5dGhvbiBzY3JpcHQgYXMgSSB3b24ndCBwdWJsaXNoIGl0IHJsbHksIGJ1dCBpZgp5b3Ugd2FudCBpdCBzZWUgPCM6TGlua3M+LCBncmFwaHMgYXJlIHRoZXJlIHRvbwoKIyMgR2VuZXJhbCB1c2FnZQoKPiBJIGZlZWwgbGlrZSBvaC1teS1iYXNoIGlzIG11Y2ggc2xvd2VyIHRvIGV2ZW4gc3RhcnQgdXAgYXMgdmFuaWxsYSBmb3IgdXNhZ2UsCj4gaXQgZmVlbHMgc2xvdywgaXQgaXMgc2xvdyAhIFBsdXMgaXQncyBsZXNzIGZsZXhpYmxlIHRoYW4gYGJhemAgd2l0aCBwbHVnaW4sCj4gY3JlYXRpb24gc28gYXQgbGVhc3QgZm9yIG1lIHBlcnNvbmFsbHksIGBiYXpgIGlzIGEgbXV1dWNjY2hoIGJldHRlciBvcHRpb24KPiBwbHVzIEkgZG9uJ3QgaGF2ZSB0byB3YWl0IGEgbG90IG9mIHRpbWUgZm9yIG15IHBsdWdpbnMgdG8gbG9hZCwgZm9yIGV4YW1wbGUKPiBvbiBteSBob3N0IGl0IG9ubHkgdGFrZXMgNjAtODAgbXMgdG8gbG9hZCAxNCBwbHVnaW5zIEkgaGF2ZSBpbnN0YWxsZWQKCiMjIFdoaWNoIGlzIHRoZSBiZXR0ZXIgb3B0aW9uCgpJJ2Qgc2F5IGBiYXpgLCB0aGlzIGlzIHdoeToKCi0gICBGYXN0ZXIKLSAgIEVhc2llciB0byBtYWtlIHBsdWdpbnMgZm9yCi0gICBTaW1wbGVyCi0gICBNb3JlIGZsZXhpYmxlIGZvciBkZXZlbG9wZXJzCi0gICBNb3JlIG1vZHVsYXIsIG1lYW5pbmcgbm8gbmVlZCB0byBkbyB3ZWlyZCBgZ2l0YCBzdHVmZiBhbmQgb3ZlcndyaXRlIHlvdXIgYmFzaHJjCi0gICBBY3RpdmVseSBkZXZlbG9wZWQgYW5kIG9wdGltaXNlZAotICAgR1BMIExpY2Vuc2luZyBpZiB5b3UgY2FyZQoKIyMgTGlua3MKCi0gICA8aHR0cHM6Ly9maWxlcy5hcmktd2ViLnh5ei9maWxlcy9vaC1teS1iYXNoLWFuZC1iYXotc3RhdHMudGFyLnh6Pgo=", + "title": "Q29tcGFyaXNvbiBiZXR3ZWVuIGJheiwgc2hlbGRvbiBhbmQgb2gtbXktYmFzaCBwbHVnaW4gbWFuYWdlcnMgZm9yIEdOVSBCQVNI", + "content": "XyggdGhpcyBwb3N0IHVzZWQgdG8gY292ZXIgb25seSBiYXogYW5kIG9tYiApXwoKdG9kYXkgaWxsIGJlIGNvbXBhcmluZyB0aGVzZSBwbHVnaW4gbWFuYWdlcnMgZm9yIEdOVSBCQVNIIDoKCi0gICBbYmF6XShodHRwczovL2FyaS13ZWIueHl6L2doL2JheikgcGx1Z2luIG1hbmFnZXIgZm9yIEdOVSBCQVNICi0gICBbc2hlbGRvbl0oaHR0cHM6Ly9naXRodWIuY29tL3Jvc3NtYWNhcnRodXIvc2hlbGRvbikgcGx1Z2luIG1hbmFnZXIgZm9yIEdOVSBCQVNIIGFuZCBaU0gKLSAgIFtvaC1teS1iYXNoXShodHRwczovL2dpdGh1Yi5jb20vb2hteWJhc2gvb2gtbXktYmFzaCkgcGx1Z2luIG1hbmFnZXIgZm9yIEdOVSBCQVNICgojIyB0ZXN0aW5nIGVudmlyb25tZW50CgpmcmVzaCBpbnN0YWxsYXRpb24gb2YgW3ZvaWQgbGludXhdKGh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8pLCBHTGliQyBlZGl0aW9uCgotICAgUUVNVQogICAgLSAgIEtWTQotICAgMjA0OCBNQiBvZiBSQU0KLSAgIDIgQ1BVIGNvcmVzCiAgICAtICAgaG9zdCBDUFUgOiBJbnRlbCBpMyA4IHRoIGdlbmVyYXRpb24KLSAgIDEyOCBNQiBvZiBWUkFNCi0gICAzMCBHQiBRQ09XMiBzdG9yYWdlCiAgICAtICAgMzAwIE1CIGJvb3QgKCB2ZmF0ICkKICAgIC0gICA0IEdCIHN3YXAgKCBzd2FwICkKICAgIC0gICAyNS43IEdCIHJvb3QgKCBleHQ0ICkKLSAgIEJBU0ggdmVyc2lvbiA6IGA1LjEuMTZgCiAgICAtICAgYmF6IHZlcnNpb24gOiBgdjUuOC4yYAogICAgLSAgIHNoZWxkb24gdmVyc2lvbiA6IGAwLjcuMWAKICAgIC0gICBvbWIgdmVyc2lvbiA6IDxodHRwczovL2dpdGh1Yi5jb20vb2hteWJhc2gvb2gtbXktYmFzaC9jb21taXQvNWQzY2QzNTZjY2JkYzI0M2M2N2I4NGUyNjc1ZDhiMGExMjI5YmVhOT4KCiMjIGNvbGxlY3Rpb24gb2YgZGF0YQoKaSBqdXN0IHJ1biB0aGlzIGNvbW1hbmQgOgoKICAgIGZvciBfIGluICQoc2VxIDEwMDApOyBkbyB7IC91c3IvYmluL3RpbWUgLWYgJyVlJyBiYXNoIC1pYyBleGl0IDI+JjEgfCB0YWlsIC1uIDE7IH07IGRvbmUgPm91dC5kYXQKCnRoaXMgY29sbGVjdHMgcnVuIHRpbWUgZm9yIDEwMDAgcnVucwoKYnV0IHBsZWFzZSByZW1lbWJlciB0byBleGl0IHRoZSBzaGVsbCBhdCBsZWFzdCBvbmNlIGFuZCByZWVudGVyIGl0IHRvIHJlbG9hZCB0aGUgcGx1Z2lucyBmdWxseSwKYW5kIGluIGZvciBleGFtcGxlIHNoZWxkb24gcGx1Z2luIG1hbmFnZXIgY2FzZSAtLSB0byBsb2NrIHRoZSBsb2NrZmlsZSBhbmQgaW5zdGFsbCBuZXcgcGx1Z2lucwoKIyMgZGF0YQoKaSBoYXZlIGJlZW4gYWJsZSB0byBjb2xsZWN0IDYgZGF0YSBzZXRzIDoKCi0gICBgYmF6LWJlZWZ5LmRhdGAKLSAgIGBiYXotc3RhcnR1cC5kYXRgCi0gICBgb21iLWJlZWZ5LmRhdGAKLSAgIGBvbWItc3RhcnR1cC5kYXRgCi0gICBgc2hlbGRvbi1iZWVmeS5kYXRgCi0gICBgc2hlbGRvbi1zdGFydHVwLmRhdGAKCmAtc3RhcnR1cGAgaXMganVzdCBub3JtYWwgc3RhcnR1cCB0aW1lIHBlciBhdmVyYWdlLCBpIG1hZGUgc3VyZSB0byBlbnRlciB0aGUgY2hhbmdlZCBlbnYgYXQgbGVhc3Qgb25jZSwKbm8gcGx1Z2lucyBvciBhbnl0aGluZyBvZiBzb3J0LCBmb3Igb21iIGl0cyB3aXRoIGFsbCBvZiBpdHMgZGVmYXVsdCBwbHVnaW5zLCBhbGlhc2VzIGFuZCBldGMgZGlzYWJsZWQKCmAtYmVlZnlgIGZvciBiYXogYW5kIG9tYiBpcyB0aGUgYWdub3N0ZXIgcGx1Z2luLCBhbmQgZm9yIHNoZWxkb24sIGFuIGVxdWl2YWxlbnQgYmVlZnkgcGx1Z2luIC0tIGBiYXNlMTYtc2hlbGxgCmFzIHRoZXJlcyBubyBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBtYWtlIGEgcGx1Z2luIGZvciBzaGVsZG9uIG5vciBpcyB0aGVyZSBhbiBhZ25vc3RlciBwbHVnaW4gZm9yIGl0CgojIyBzdGF0aXN0aWNzCgppIHF1aWNrbHkgd3JvdGUgYSBzaGl0dHkgcHl0aG9uIHNjcmlwdCB0byB0YWtlIGNhcmUgb2YgdGhlIGRhdGEsIGlmIHlvdSB3YW50IGl0LCBncmFiIGl0IGFsb25nCndpdGggYWxsIGRhdGEgaSBjb2xsZWN0ZWQgaW4gPCM6bGlua3M+LCBpdHMgYW4geHogY29tcHJlc3NlZCB0YXJiYWxsCgogICAgcGFyc2luZyAnYmF6LWJlZWZ5LmRhdCcKICAgIHBhcnNpbmcgJ29tYi1iZWVmeS5kYXQnCiAgICBwYXJzaW5nICdzaGVsZG9uLXN0YXJ0dXAuZGF0JwogICAgcGFyc2luZyAnYmF6LXN0YXJ0dXAuZGF0JwogICAgcGFyc2luZyAnc2hlbGRvbi1iZWVmeS5kYXQnCiAgICBwYXJzaW5nICdvbWItc3RhcnR1cC5kYXQnCgogICAgc3RhdGlzdGljcyBmb3IgJ2JheicKICAgICAgY2F0ZWdvcnkgJ2JlZWZ5JyA6CiAgICAgICAgYXZlcmFnZSA6IDAuMDMKICAgICAgICBtZWRpYW4gOiAwLjAyCiAgICAgICAgdG90YWwgOiAyNS40NQogICAgICBjYXRlZ29yeSAnc3RhcnR1cCcgOgogICAgICAgIGF2ZXJhZ2UgOiAwLjAxCiAgICAgICAgbWVkaWFuIDogMC4wMQogICAgICAgIHRvdGFsIDogMTAuMjAKCiAgICBzdGF0aXN0aWNzIGZvciAnb21iJwogICAgICBjYXRlZ29yeSAnYmVlZnknIDoKICAgICAgICBhdmVyYWdlIDogMC4xMQogICAgICAgIG1lZGlhbiA6IDAuMTEKICAgICAgICB0b3RhbCA6IDExNC42NwogICAgICBjYXRlZ29yeSAnc3RhcnR1cCcgOgogICAgICAgIGF2ZXJhZ2UgOiAwLjEzCiAgICAgICAgbWVkaWFuIDogMC4xMgogICAgICAgIHRvdGFsIDogMTI4Ljg3CgogICAgc3RhdGlzdGljcyBmb3IgJ3NoZWxkb24nCiAgICAgIGNhdGVnb3J5ICdiZWVmeScgOgogICAgICAgIGF2ZXJhZ2UgOiAwLjI2CiAgICAgICAgbWVkaWFuIDogMC4yNgogICAgICAgIHRvdGFsIDogMjYyLjA3CiAgICAgIGNhdGVnb3J5ICdzdGFydHVwJyA6CiAgICAgICAgYXZlcmFnZSA6IDAuMDIKICAgICAgICBtZWRpYW4gOiAwLjAxCiAgICAgICAgdG90YWwgOiAxNS40NgoKICAgID09PSBsZWFkZXJib2FyZCA9PT0KCiAgICBpbiBjYXRlZ29yeSAnYmVlZnknCiAgICAgICMxIGJhegogICAgICAjMiBvbWIKICAgICAgIzMgc2hlbGRvbgoKICAgIGluIGNhdGVnb3J5ICdzdGFydHVwJwogICAgICAjMSBiYXoKICAgICAgIzIgc2hlbGRvbgogICAgICAjMyBvbWIKCiAgICBpbiB0b3RhbAogICAgICAjMSBiYXoKICAgICAgIzIgb21iCiAgICAgICMzIHNoZWxkb24KCmFzIHdlIGNhbiBzZWUsIGBiYXpgIGlzIHRoZSB3aW5uZXIKCiMjIHBsdWdpbnMgdXNlZAoKLSAgIGZvciBiYXogOiA8aHR0cHM6Ly9hcmktd2ViLnh5ei9naC9hZ25vc3Rlci10aGVtZS1iYXotcGx1Z2luPgotICAgZm9yIHNoZWxsZG9uIDogPGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc2tlbXBzb24vYmFzZTE2LXNoZWxsPgotICAgZm9yIG9tYiA6IDxodHRwczovL2dpdGh1Yi5jb20vb2hteWJhc2gvb2gtbXktYmFzaC90cmVlL21hc3Rlci90aGVtZXMvYWdub3N0ZXI+CgojIyBvcGluaW9ucwoKd2VsbCwgaSB3YXMgYmlhc2VkIGJlZm9yZSBhbmQgbm93IGkgYWxzbyBnb3Qgc3RhdGlzdGljcyB0byBwcm92ZSBteSBiaWFzLAppIGxvdmUgYmF6IGFuZCBpIHRoaW5rIGl0cyBhIG11Y2ggYmV0dGVyIGFsdGVybmF0aXZlIHRvIG1vc3Qgb3RoZXIgcGx1Z2luIG1hbmFnZXJzCmZvciBiYXNoLCByZWFzb25zIHRvIGxpa2UgaXQgYXJlIHRoYXQgaXRzIHZlcnkgZWFzeSB0byBtYWtlIHBsdWdpbnMgZm9yLCB2ZXJ5CmVhc3kgdG8gdXNlIGFuZCBtYWludGFpbiwgaXRzIHJlbGF0aXZlbHkgc21hbGwsIGl0cyBmdWxseSBvcGVuIHNvdXJjZSBhbmQKdW5kZXIgdGhlIGdwbDMgbGljZW5zZSwgaXRzIGZhc3QsIHdyaXR0ZW4gaW4gcHVyZSBiYXNoLCBvcHRpbWlzZWQsIGV0Yy4KCndoZW4gaSBmb3VuZCBzaGVsZG9uIGkgZXhwZWN0ZWQgbW9yZSBmcm9tIGl0IGJlY2F1c2UgaXRzIHdyaXR0ZW4gaW4gYSBjb21waWxlZCBsYW5ndWFnZSwKYXBwYXJlbnRseSBpdCBjYW4gYmUgd29yc2UgdGhhbiBvbWIgZXZlbiwgb2ggd2VsbCwgaSB0aGluayB0aGUgaHlwZSBpcyBhbGwgYmVjYXVzZSBvZiBydXN0LApob3BlIHRoaXMgcG9zdCBjb250cmlidXRlcyBzb21ldGhpbmcgdG8gZGV2ZWxvcG1lbnQgb2YgYm90aCBvbWIgYW5kIHNoZWxkb24KCmFsc28sIGlmIHlvdSB3YW50IG1lIHRvIGZhaXJseSB0ZXN0IGFsbCBvZiB0aGVtICggdXNpbmcgb25lIHNpbmdsZSBwbHVnaW4gKSBwbGVhc2UKbm90aWZ5IG1lIGFuZCBsaW5rIG1lIHRoZSBwbHVnaW5zLCBpIHdpbGwgaW1tZWRpYXRlbHkgZ2V0IHRvIHdvcmsgdXBkYXRpbmcgdGhpcyBibG9nCmFuZCBpZiBiYXogdW5kZXJwZXJmb3JtcyAtLSBpIHdpbGwgb3B0aW1pc2UgaXQgbW9yZSwgYWx0aG91Z2ggYXQgdGhpcyBwb2ludCBpIGRvbnQKdGhpbmsgdGhlcmUgaXMgbXVjaCByb29tIHRvIG9wdGltaXNlLCBhbHRob3VnaCBpIHRoaW5rIHRoZSBgYmFzZTE2YCBwbHVnaW4gaXMgYXMgYmVlZnkKYXMgdGhlIGFnbm9zdGVyIG9uZQoKIyMgbGlua3MKCi0gICA8aHR0cHM6Ly9maWxlcy5hcmktd2ViLnh5ei9maWxlcy9vaC1teS1iYXNoLWFuZC1iYXotc3RhdHMudGFyLnh6Pgo=", "time": 1668730459.803783, - "keywords": "qemu benchmark statistics baz baz-plugin github git developer bash gnu gpl licensing foss open-source foss minimalism speed optimisation python oh-my-bash ease gpl3 linux flexibility productivity plugin" + "keywords": "qemu benchmark statistics baz baz-plugin github git developer bash gnu gpl licensing foss open-source foss minimalism speed optimisation python oh-my-bash ease gpl3 linux flexibility productivity plugin sheldon rust rustlang python python3" }, "advent-of-code-2022": { "title": "QWR2ZW50IG9mIGNvZGUgMjAyMg==",