diff --git a/AI/assets/build-a-system-prompt-0.png b/AI/assets/build-a-system-prompt-0.png deleted file mode 100644 index 6b9c68dea..000000000 Binary files a/AI/assets/build-a-system-prompt-0.png and /dev/null differ diff --git a/AI/assets/build-a-system-prompt-1.png b/AI/assets/build-a-system-prompt-1.png deleted file mode 100644 index 391bd348c..000000000 Binary files a/AI/assets/build-a-system-prompt-1.png and /dev/null differ diff --git a/AI/assets/build-a-system-prompt-2.gif b/AI/assets/build-a-system-prompt-2.gif deleted file mode 100644 index 71e665487..000000000 Binary files a/AI/assets/build-a-system-prompt-2.gif and /dev/null differ diff --git a/AI/assets/build-a-system-prompt-3.gif b/AI/assets/build-a-system-prompt-3.gif deleted file mode 100644 index 4e1cada33..000000000 Binary files a/AI/assets/build-a-system-prompt-3.gif and /dev/null differ diff --git a/AI/assets/coding-agent-team-0.png b/AI/assets/coding-agent-team-0.png deleted file mode 100644 index a5ae503ce..000000000 Binary files a/AI/assets/coding-agent-team-0.png and /dev/null differ diff --git a/AI/assets/coding-agent-team-1.png b/AI/assets/coding-agent-team-1.png deleted file mode 100644 index 46148f89f..000000000 Binary files a/AI/assets/coding-agent-team-1.png and /dev/null differ diff --git a/AI/assets/coding-agent-team-2.png b/AI/assets/coding-agent-team-2.png deleted file mode 100644 index 38a911fc4..000000000 Binary files a/AI/assets/coding-agent-team-2.png and /dev/null differ diff --git a/_scripts/sh.js b/_scripts/sh.js deleted file mode 100644 index 4e0991f63..000000000 --- a/_scripts/sh.js +++ /dev/null @@ -1,7 +0,0 @@ -async function sh(cmd) { - const { promisify } = require('util'); - const exec = promisify(require('child_process').exec); - const result = await exec(cmd); - return {out: result.stdout.trim(), err: result.stderr.trim()}; -} -module.exports = sh; diff --git a/assets/A perfect binary search tree.png b/assets/A perfect binary search tree.png deleted file mode 100644 index 263ae1557..000000000 Binary files a/assets/A perfect binary search tree.png and /dev/null differ diff --git a/assets/DB_image_1_cropped.png b/assets/DB_image_1_cropped.png deleted file mode 100644 index b558ada32..000000000 Binary files a/assets/DB_image_1_cropped.png and /dev/null differ diff --git a/assets/Draft-choosing.webp b/assets/Draft-choosing.webp deleted file mode 100644 index 227175d1b..000000000 Binary files a/assets/Draft-choosing.webp and /dev/null differ diff --git a/assets/From_2PC_To_Saga.png b/assets/From_2PC_To_Saga.png deleted file mode 100644 index 210f88487..000000000 Binary files a/assets/From_2PC_To_Saga.png and /dev/null differ diff --git a/assets/How to push content on note.d.foundation-20240304213547278.webp b/assets/How to push content on note.d.foundation-20240304213547278.webp deleted file mode 100644 index 3645ae41f..000000000 Binary files a/assets/How to push content on note.d.foundation-20240304213547278.webp and /dev/null differ diff --git a/assets/How to push content on note.d.foundation-20240304213659347.webp b/assets/How to push content on note.d.foundation-20240304213659347.webp deleted file mode 100644 index 4bef95658..000000000 Binary files a/assets/How to push content on note.d.foundation-20240304213659347.webp and /dev/null differ diff --git a/assets/Pasted image 20210810210730.png b/assets/Pasted image 20210810210730.png deleted file mode 100644 index 1985d1c6f..000000000 Binary files a/assets/Pasted image 20210810210730.png and /dev/null differ diff --git a/assets/Pasted image 20210823171027.png b/assets/Pasted image 20210823171027.png deleted file mode 100644 index 52c7534e0..000000000 Binary files a/assets/Pasted image 20210823171027.png and /dev/null differ diff --git a/assets/Pasted image 20220720173320.png b/assets/Pasted image 20220720173320.png deleted file mode 100644 index 2689d156d..000000000 Binary files a/assets/Pasted image 20220720173320.png and /dev/null differ diff --git a/assets/Pattern_Throttling.png b/assets/Pattern_Throttling.png deleted file mode 100644 index f7186a2ec..000000000 Binary files a/assets/Pattern_Throttling.png and /dev/null differ diff --git a/assets/_index__base-20231130183110925.webp b/assets/_index__base-20231130183110925.webp deleted file mode 100644 index adbfd9a59..000000000 Binary files a/assets/_index__base-20231130183110925.webp and /dev/null differ diff --git a/assets/agile-how-to-create-clickup-tickets_0a0e01fd89063d645b741fc4020c6a5b_md5.webp b/assets/agile-how-to-create-clickup-tickets_0a0e01fd89063d645b741fc4020c6a5b_md5.webp deleted file mode 100644 index 1ab5febf8..000000000 Binary files a/assets/agile-how-to-create-clickup-tickets_0a0e01fd89063d645b741fc4020c6a5b_md5.webp and /dev/null differ diff --git a/assets/agile-using-clickup-as-agile-management-tool_3c9972095d36b20c00564bbedce679cf_md5.webp b/assets/agile-using-clickup-as-agile-management-tool_3c9972095d36b20c00564bbedce679cf_md5.webp deleted file mode 100644 index 0f923f4a0..000000000 Binary files a/assets/agile-using-clickup-as-agile-management-tool_3c9972095d36b20c00564bbedce679cf_md5.webp and /dev/null differ diff --git a/assets/agile-using-clickup-as-agile-management-tool_d8e39beb699cc7ddaee213574dc787d7_md5.webp b/assets/agile-using-clickup-as-agile-management-tool_d8e39beb699cc7ddaee213574dc787d7_md5.webp deleted file mode 100644 index 89a38dafc..000000000 Binary files a/assets/agile-using-clickup-as-agile-management-tool_d8e39beb699cc7ddaee213574dc787d7_md5.webp and /dev/null differ diff --git a/assets/agile-using-clickup-as-agile-management-tool_e0d2a879c286008152df56ddf41b28a0_md5.webp b/assets/agile-using-clickup-as-agile-management-tool_e0d2a879c286008152df56ddf41b28a0_md5.webp deleted file mode 100644 index eb69e6f1a..000000000 Binary files a/assets/agile-using-clickup-as-agile-management-tool_e0d2a879c286008152df56ddf41b28a0_md5.webp and /dev/null differ diff --git a/assets/august-forward-engineering_(1).mp4 b/assets/august-forward-engineering_(1).mp4 deleted file mode 100644 index d58ef2e23..000000000 Binary files a/assets/august-forward-engineering_(1).mp4 and /dev/null differ diff --git a/assets/background-tool.png b/assets/background-tool.png deleted file mode 100644 index e9dc7a287..000000000 Binary files a/assets/background-tool.png and /dev/null differ diff --git a/assets/brainery-discord-gomock.webp b/assets/brainery-discord-gomock.webp deleted file mode 100644 index 81cbe1c4e..000000000 Binary files a/assets/brainery-discord-gomock.webp and /dev/null differ diff --git a/assets/brainery-tags-august.webp b/assets/brainery-tags-august.webp deleted file mode 100644 index 04f2f8d0c..000000000 Binary files a/assets/brainery-tags-august.webp and /dev/null differ diff --git a/assets/clean-shot.png b/assets/clean-shot.png deleted file mode 100644 index fa2ccf661..000000000 Binary files a/assets/clean-shot.png and /dev/null differ diff --git a/assets/component-atomic-design.png b/assets/component-atomic-design.png deleted file mode 100644 index 8a3d2af5f..000000000 Binary files a/assets/component-atomic-design.png and /dev/null differ diff --git a/assets/console.dir()_example.jpg b/assets/console.dir()_example.jpg deleted file mode 100644 index 353c9bb30..000000000 Binary files a/assets/console.dir()_example.jpg and /dev/null differ diff --git a/assets/cost-of-react-native_076bec90671c2f71c0fdb93849498a01_md5.webp b/assets/cost-of-react-native_076bec90671c2f71c0fdb93849498a01_md5.webp deleted file mode 100644 index be1710abb..000000000 Binary files a/assets/cost-of-react-native_076bec90671c2f71c0fdb93849498a01_md5.webp and /dev/null differ diff --git a/assets/cost-of-react-native_69b49ec589ff19151408b8959ace27bd_md5.webp b/assets/cost-of-react-native_69b49ec589ff19151408b8959ace27bd_md5.webp deleted file mode 100644 index b4f6851be..000000000 Binary files a/assets/cost-of-react-native_69b49ec589ff19151408b8959ace27bd_md5.webp and /dev/null differ diff --git a/assets/cost-of-react-native_cb4a01ca2ab93832ae3ffec401441e07_md5.webp b/assets/cost-of-react-native_cb4a01ca2ab93832ae3ffec401441e07_md5.webp deleted file mode 100644 index f405fd9a9..000000000 Binary files a/assets/cost-of-react-native_cb4a01ca2ab93832ae3ffec401441e07_md5.webp and /dev/null differ diff --git a/assets/distributed-access-platform.webp b/assets/distributed-access-platform.webp deleted file mode 100644 index 8ac51e4ac..000000000 Binary files a/assets/distributed-access-platform.webp and /dev/null differ diff --git a/assets/droppii-dwarves-case-study-20240103153144822.webp b/assets/droppii-dwarves-case-study-20240103153144822.webp deleted file mode 100644 index e14e54290..000000000 Binary files a/assets/droppii-dwarves-case-study-20240103153144822.webp and /dev/null differ diff --git a/assets/droppii-dwarves-case-study-20240103153210322.webp b/assets/droppii-dwarves-case-study-20240103153210322.webp deleted file mode 100644 index 557206f43..000000000 Binary files a/assets/droppii-dwarves-case-study-20240103153210322.webp and /dev/null differ diff --git a/assets/droppii-dwarves-case-study-20240103153226614.webp b/assets/droppii-dwarves-case-study-20240103153226614.webp deleted file mode 100644 index 388169b29..000000000 Binary files a/assets/droppii-dwarves-case-study-20240103153226614.webp and /dev/null differ diff --git a/assets/dwarves-community-20231215165531369.webp b/assets/dwarves-community-20231215165531369.webp deleted file mode 100644 index 8f5eadd61..000000000 Binary files a/assets/dwarves-community-20231215165531369.webp and /dev/null differ diff --git a/assets/dwarves-community-20240304213917412.webp b/assets/dwarves-community-20240304213917412.webp deleted file mode 100644 index b8761ba7b..000000000 Binary files a/assets/dwarves-community-20240304213917412.webp and /dev/null differ diff --git a/assets/dwarves-rewind.webp b/assets/dwarves-rewind.webp deleted file mode 100644 index 8502312b5..000000000 Binary files a/assets/dwarves-rewind.webp and /dev/null differ diff --git a/assets/erd-ai-generated.webp b/assets/erd-ai-generated.webp deleted file mode 100644 index 0c5d56d6f..000000000 Binary files a/assets/erd-ai-generated.webp and /dev/null differ diff --git a/assets/evo-db.pdf b/assets/evo-db.pdf deleted file mode 100644 index e7d85aa81..000000000 Binary files a/assets/evo-db.pdf and /dev/null differ diff --git a/assets/example-build-vercel.png b/assets/example-build-vercel.png deleted file mode 100644 index ae109b061..000000000 Binary files a/assets/example-build-vercel.png and /dev/null differ diff --git a/assets/finite-state-machine_93ba1268646d3675466aa8887079d580_md5.webp b/assets/finite-state-machine_93ba1268646d3675466aa8887079d580_md5.webp deleted file mode 100644 index 79bc5535f..000000000 Binary files a/assets/finite-state-machine_93ba1268646d3675466aa8887079d580_md5.webp and /dev/null differ diff --git a/assets/finite-state-machine_b5d7d35ae8b3b4cbd6c0c9d8589d4dae_md5.webp b/assets/finite-state-machine_b5d7d35ae8b3b4cbd6c0c9d8589d4dae_md5.webp deleted file mode 100644 index 44c3e5291..000000000 Binary files a/assets/finite-state-machine_b5d7d35ae8b3b4cbd6c0c9d8589d4dae_md5.webp and /dev/null differ diff --git a/assets/finite-state-machine_db5600646453d67b0df29dfa3c9dc5b0_md5.webp b/assets/finite-state-machine_db5600646453d67b0df29dfa3c9dc5b0_md5.webp deleted file mode 100644 index ce15cd9e3..000000000 Binary files a/assets/finite-state-machine_db5600646453d67b0df29dfa3c9dc5b0_md5.webp and /dev/null differ diff --git a/assets/fwd-engineering-columns.png b/assets/fwd-engineering-columns.png deleted file mode 100644 index c43b8d6eb..000000000 Binary files a/assets/fwd-engineering-columns.png and /dev/null differ diff --git a/assets/fwd-engineering-flow.png b/assets/fwd-engineering-flow.png deleted file mode 100644 index 1427e5a99..000000000 Binary files a/assets/fwd-engineering-flow.png and /dev/null differ diff --git a/assets/fwd-engineering-subscribe.png b/assets/fwd-engineering-subscribe.png deleted file mode 100644 index fa3625639..000000000 Binary files a/assets/fwd-engineering-subscribe.png and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg-2.webp b/assets/how-to-earn-reward-from-staking-dfg-2.webp deleted file mode 100644 index 1b2d7b8da..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg-2.webp and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg-3.png.png b/assets/how-to-earn-reward-from-staking-dfg-3.png.png deleted file mode 100644 index 8a41387cb..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg-3.png.png and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg-4.png.png b/assets/how-to-earn-reward-from-staking-dfg-4.png.png deleted file mode 100644 index bedb806ff..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg-4.png.png and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg.webp b/assets/how-to-earn-reward-from-staking-dfg.webp deleted file mode 100644 index 0504b6a59..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg.webp and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-35-22-2x.webp b/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-35-22-2x.webp deleted file mode 100644 index 6a897e354..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-35-22-2x.webp and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-37-11-2x.webp b/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-37-11-2x.webp deleted file mode 100644 index 33fd57058..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-37-11-2x.webp and /dev/null differ diff --git a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-39-16-2x.webp b/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-39-16-2x.webp deleted file mode 100644 index 5d4893e41..000000000 Binary files a/assets/how-to-earn-reward-from-staking-dfg_clean-shot-2024-05-13-at-16-39-16-2x.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-1 2.webp b/assets/how-to-withdraw-icy-1 2.webp deleted file mode 100644 index 22824cf18..000000000 Binary files a/assets/how-to-withdraw-icy-1 2.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-2 2.webp b/assets/how-to-withdraw-icy-2 2.webp deleted file mode 100644 index e3df317a0..000000000 Binary files a/assets/how-to-withdraw-icy-2 2.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313132819285.webp b/assets/how-to-withdraw-icy-20240313132819285.webp deleted file mode 100644 index a8dcecc34..000000000 Binary files a/assets/how-to-withdraw-icy-20240313132819285.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313132855655.webp b/assets/how-to-withdraw-icy-20240313132855655.webp deleted file mode 100644 index e36cd9546..000000000 Binary files a/assets/how-to-withdraw-icy-20240313132855655.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313143503939.webp b/assets/how-to-withdraw-icy-20240313143503939.webp deleted file mode 100644 index 08f316873..000000000 Binary files a/assets/how-to-withdraw-icy-20240313143503939.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313143524973.webp b/assets/how-to-withdraw-icy-20240313143524973.webp deleted file mode 100644 index 9b8566102..000000000 Binary files a/assets/how-to-withdraw-icy-20240313143524973.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313143710295.webp b/assets/how-to-withdraw-icy-20240313143710295.webp deleted file mode 100644 index cc2457cd5..000000000 Binary files a/assets/how-to-withdraw-icy-20240313143710295.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313143732060.webp b/assets/how-to-withdraw-icy-20240313143732060.webp deleted file mode 100644 index aac28ac73..000000000 Binary files a/assets/how-to-withdraw-icy-20240313143732060.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313143849627.webp b/assets/how-to-withdraw-icy-20240313143849627.webp deleted file mode 100644 index bd19ff3f7..000000000 Binary files a/assets/how-to-withdraw-icy-20240313143849627.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144057277.webp b/assets/how-to-withdraw-icy-20240313144057277.webp deleted file mode 100644 index 97b4e078d..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144057277.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144103209.webp b/assets/how-to-withdraw-icy-20240313144103209.webp deleted file mode 100644 index dbd9b1bde..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144103209.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144120524.webp b/assets/how-to-withdraw-icy-20240313144120524.webp deleted file mode 100644 index 6ebcb6518..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144120524.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144142293.webp b/assets/how-to-withdraw-icy-20240313144142293.webp deleted file mode 100644 index 9a1f1ad3c..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144142293.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144212466.webp b/assets/how-to-withdraw-icy-20240313144212466.webp deleted file mode 100644 index 7e6007409..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144212466.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144220528.webp b/assets/how-to-withdraw-icy-20240313144220528.webp deleted file mode 100644 index bc29bb8f8..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144220528.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144251314.webp b/assets/how-to-withdraw-icy-20240313144251314.webp deleted file mode 100644 index 7427d938b..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144251314.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144301936.webp b/assets/how-to-withdraw-icy-20240313144301936.webp deleted file mode 100644 index eed3ed993..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144301936.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144410171.webp b/assets/how-to-withdraw-icy-20240313144410171.webp deleted file mode 100644 index 4202ba912..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144410171.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144425125.webp b/assets/how-to-withdraw-icy-20240313144425125.webp deleted file mode 100644 index abf1c70b4..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144425125.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144450367.webp b/assets/how-to-withdraw-icy-20240313144450367.webp deleted file mode 100644 index 3d2d260d3..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144450367.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144456227.webp b/assets/how-to-withdraw-icy-20240313144456227.webp deleted file mode 100644 index 88887b0ef..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144456227.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144633452.webp b/assets/how-to-withdraw-icy-20240313144633452.webp deleted file mode 100644 index 22c3fcadd..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144633452.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144637789.webp b/assets/how-to-withdraw-icy-20240313144637789.webp deleted file mode 100644 index 867c28dd7..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144637789.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144652671.webp b/assets/how-to-withdraw-icy-20240313144652671.webp deleted file mode 100644 index 6faf38bb2..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144652671.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144732450.webp b/assets/how-to-withdraw-icy-20240313144732450.webp deleted file mode 100644 index 9692fac9e..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144732450.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144815006.webp b/assets/how-to-withdraw-icy-20240313144815006.webp deleted file mode 100644 index 8c893d52b..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144815006.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144835406.webp b/assets/how-to-withdraw-icy-20240313144835406.webp deleted file mode 100644 index 3305c4112..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144835406.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144845614.webp b/assets/how-to-withdraw-icy-20240313144845614.webp deleted file mode 100644 index bc797b9c3..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144845614.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144859473.webp b/assets/how-to-withdraw-icy-20240313144859473.webp deleted file mode 100644 index 89cad7a0c..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144859473.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144911243.webp b/assets/how-to-withdraw-icy-20240313144911243.webp deleted file mode 100644 index 9f45041df..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144911243.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144922569.webp b/assets/how-to-withdraw-icy-20240313144922569.webp deleted file mode 100644 index fe62934ed..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144922569.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144951021.webp b/assets/how-to-withdraw-icy-20240313144951021.webp deleted file mode 100644 index 17bc39930..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144951021.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313144956988.webp b/assets/how-to-withdraw-icy-20240313144956988.webp deleted file mode 100644 index ad32ece2c..000000000 Binary files a/assets/how-to-withdraw-icy-20240313144956988.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313145039356.webp b/assets/how-to-withdraw-icy-20240313145039356.webp deleted file mode 100644 index 3f5b27528..000000000 Binary files a/assets/how-to-withdraw-icy-20240313145039356.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313145048322.webp b/assets/how-to-withdraw-icy-20240313145048322.webp deleted file mode 100644 index d2c610631..000000000 Binary files a/assets/how-to-withdraw-icy-20240313145048322.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy-20240313145055489.webp b/assets/how-to-withdraw-icy-20240313145055489.webp deleted file mode 100644 index 2236d42e6..000000000 Binary files a/assets/how-to-withdraw-icy-20240313145055489.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy_install-1.webp b/assets/how-to-withdraw-icy_install-1.webp deleted file mode 100644 index 65e377f1b..000000000 Binary files a/assets/how-to-withdraw-icy_install-1.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy_install-4.webp b/assets/how-to-withdraw-icy_install-4.webp deleted file mode 100644 index 500e9ccc0..000000000 Binary files a/assets/how-to-withdraw-icy_install-4.webp and /dev/null differ diff --git a/assets/how-to-withdraw-icy_withdraw-3.webp b/assets/how-to-withdraw-icy_withdraw-3.webp deleted file mode 100644 index 813c25f45..000000000 Binary files a/assets/how-to-withdraw-icy_withdraw-3.webp and /dev/null differ diff --git a/assets/icy/salary-advance-amount.jpg b/assets/icy/salary-advance-amount.jpg deleted file mode 100644 index 47d71ef68..000000000 Binary files a/assets/icy/salary-advance-amount.jpg and /dev/null differ diff --git a/assets/labs---new-member-onboarding-20231121174522981.webp b/assets/labs---new-member-onboarding-20231121174522981.webp deleted file mode 100644 index 90819f165..000000000 Binary files a/assets/labs---new-member-onboarding-20231121174522981.webp and /dev/null differ diff --git a/assets/labs---new-member-onboarding-20231205185801920.webp b/assets/labs---new-member-onboarding-20231205185801920.webp deleted file mode 100644 index cb268303b..000000000 Binary files a/assets/labs---new-member-onboarding-20231205185801920.webp and /dev/null differ diff --git a/assets/labs---topic-proposal-&-progress-tracking_basecamp-hill-chart.webp b/assets/labs---topic-proposal-&-progress-tracking_basecamp-hill-chart.webp deleted file mode 100644 index d906c88c1..000000000 Binary files a/assets/labs---topic-proposal-&-progress-tracking_basecamp-hill-chart.webp and /dev/null differ diff --git a/assets/labs---topic-proposal-&-progress-tracking_basecamp-todo.webp b/assets/labs---topic-proposal-&-progress-tracking_basecamp-todo.webp deleted file mode 100644 index cd1167899..000000000 Binary files a/assets/labs---topic-proposal-&-progress-tracking_basecamp-todo.webp and /dev/null differ diff --git a/assets/labs-roadmap-nov-23-update-20231127143515779.webp b/assets/labs-roadmap-nov-23-update-20231127143515779.webp deleted file mode 100644 index 3a2ccc6f5..000000000 Binary files a/assets/labs-roadmap-nov-23-update-20231127143515779.webp and /dev/null differ diff --git a/assets/labs-x-consulting-workflow-20231121174237957.webp b/assets/labs-x-consulting-workflow-20231121174237957.webp deleted file mode 100644 index c54b89ccb..000000000 Binary files a/assets/labs-x-consulting-workflow-20231121174237957.webp and /dev/null differ diff --git a/assets/labs-x-consulting-workflow_labs-topic-timeline-20231121174237957.webp b/assets/labs-x-consulting-workflow_labs-topic-timeline-20231121174237957.webp deleted file mode 100644 index 3510be142..000000000 Binary files a/assets/labs-x-consulting-workflow_labs-topic-timeline-20231121174237957.webp and /dev/null differ diff --git a/assets/llm-story-map.webp b/assets/llm-story-map.webp deleted file mode 100644 index fbc3b4e40..000000000 Binary files a/assets/llm-story-map.webp and /dev/null differ diff --git a/assets/product-engineer-twitter.webp b/assets/product-engineer-twitter.webp deleted file mode 100644 index a283c1614..000000000 Binary files a/assets/product-engineer-twitter.webp and /dev/null differ diff --git a/assets/pubsub.png b/assets/pubsub.png deleted file mode 100644 index 143482e18..000000000 Binary files a/assets/pubsub.png and /dev/null differ diff --git a/assets/push-discord-to-github-bounty_untitled-9.webp b/assets/push-discord-to-github-bounty_untitled-9.webp deleted file mode 100644 index e1765c287..000000000 Binary files a/assets/push-discord-to-github-bounty_untitled-9.webp and /dev/null differ diff --git a/assets/rag-ai.webp b/assets/rag-ai.webp deleted file mode 100644 index 1402b532b..000000000 Binary files a/assets/rag-ai.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_00906c2cfe7b99ad8994125f2dad50e8_md5.webp b/assets/react-native-new-architecture_00906c2cfe7b99ad8994125f2dad50e8_md5.webp deleted file mode 100644 index d334ba400..000000000 Binary files a/assets/react-native-new-architecture_00906c2cfe7b99ad8994125f2dad50e8_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_044af91a93a00b09540b03b991e4e32a_md5.webp b/assets/react-native-new-architecture_044af91a93a00b09540b03b991e4e32a_md5.webp deleted file mode 100644 index 48918733f..000000000 Binary files a/assets/react-native-new-architecture_044af91a93a00b09540b03b991e4e32a_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_08f9602cedbc58744cf72fc3580bf068_md5.webp b/assets/react-native-new-architecture_08f9602cedbc58744cf72fc3580bf068_md5.webp deleted file mode 100644 index ff5bb957a..000000000 Binary files a/assets/react-native-new-architecture_08f9602cedbc58744cf72fc3580bf068_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_1066bb62cbc4d9beda7e03d43006c669_md5.webp b/assets/react-native-new-architecture_1066bb62cbc4d9beda7e03d43006c669_md5.webp deleted file mode 100644 index 73647b421..000000000 Binary files a/assets/react-native-new-architecture_1066bb62cbc4d9beda7e03d43006c669_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_193938237761968661a5f11f23670f3d_md5.webp b/assets/react-native-new-architecture_193938237761968661a5f11f23670f3d_md5.webp deleted file mode 100644 index bd573f4c4..000000000 Binary files a/assets/react-native-new-architecture_193938237761968661a5f11f23670f3d_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_be56fa7f4ae19c9284e37e61706d1133_md5.webp b/assets/react-native-new-architecture_be56fa7f4ae19c9284e37e61706d1133_md5.webp deleted file mode 100644 index 785f8fad5..000000000 Binary files a/assets/react-native-new-architecture_be56fa7f4ae19c9284e37e61706d1133_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_ca02c7ac30b22ad423bf3285f8cdaa16_md5.webp b/assets/react-native-new-architecture_ca02c7ac30b22ad423bf3285f8cdaa16_md5.webp deleted file mode 100644 index 96b8955fc..000000000 Binary files a/assets/react-native-new-architecture_ca02c7ac30b22ad423bf3285f8cdaa16_md5.webp and /dev/null differ diff --git a/assets/react-native-new-architecture_fb23cab260bd0ec3a95ac7d6a69c461a_md5.webp b/assets/react-native-new-architecture_fb23cab260bd0ec3a95ac7d6a69c461a_md5.webp deleted file mode 100644 index 2d76c38a7..000000000 Binary files a/assets/react-native-new-architecture_fb23cab260bd0ec3a95ac7d6a69c461a_md5.webp and /dev/null differ diff --git a/assets/setup-react-project-with-webpack-and-babel_0eb458d1be6d0f37210105e714a1a304_md5.webp b/assets/setup-react-project-with-webpack-and-babel_0eb458d1be6d0f37210105e714a1a304_md5.webp deleted file mode 100644 index c7166f0ce..000000000 Binary files a/assets/setup-react-project-with-webpack-and-babel_0eb458d1be6d0f37210105e714a1a304_md5.webp and /dev/null differ diff --git a/assets/setup-react-project-with-webpack-and-babel_1390995c704e49aab8915f9a87fcd7ce_md5.webp b/assets/setup-react-project-with-webpack-and-babel_1390995c704e49aab8915f9a87fcd7ce_md5.webp deleted file mode 100644 index 4c4835317..000000000 Binary files a/assets/setup-react-project-with-webpack-and-babel_1390995c704e49aab8915f9a87fcd7ce_md5.webp and /dev/null differ diff --git a/assets/strangler.png b/assets/strangler.png deleted file mode 100644 index b39b55a1f..000000000 Binary files a/assets/strangler.png and /dev/null differ diff --git a/assets/update-highest-and-lowest-symbol-prices-in-real-time.png b/assets/update-highest-and-lowest-symbol-prices-in-real-time.png deleted file mode 100644 index 9a4fd45f8..000000000 Binary files a/assets/update-highest-and-lowest-symbol-prices-in-real-time.png and /dev/null differ diff --git a/assets/utilizing-cached-table-for-binance-kline-api-data-processing.png b/assets/utilizing-cached-table-for-binance-kline-api-data-processing.png deleted file mode 100644 index 65e2ddbb2..000000000 Binary files a/assets/utilizing-cached-table-for-binance-kline-api-data-processing.png and /dev/null differ diff --git a/breakdown/assets/ax-framework-cheatsheet.png b/breakdown/assets/ax-framework-cheatsheet.png deleted file mode 100644 index 6b81d495a..000000000 Binary files a/breakdown/assets/ax-framework-cheatsheet.png and /dev/null differ diff --git a/breakdown/assets/ax_optimize.png b/breakdown/assets/ax_optimize.png deleted file mode 100644 index 7c0aeb969..000000000 Binary files a/breakdown/assets/ax_optimize.png and /dev/null differ diff --git a/breakdown/assets/ax_signature.png b/breakdown/assets/ax_signature.png deleted file mode 100644 index 44623e5f1..000000000 Binary files a/breakdown/assets/ax_signature.png and /dev/null differ diff --git a/breakdown/assets/cap-instant-mode.gif b/breakdown/assets/cap-instant-mode.gif deleted file mode 100644 index 1ae11e1ed..000000000 Binary files a/breakdown/assets/cap-instant-mode.gif and /dev/null differ diff --git a/breakdown/assets/cap-muxing.png b/breakdown/assets/cap-muxing.png deleted file mode 100644 index 90a45d739..000000000 Binary files a/breakdown/assets/cap-muxing.png and /dev/null differ diff --git a/breakdown/assets/cline-cheatsheet.png b/breakdown/assets/cline-cheatsheet.png deleted file mode 100644 index 699576efc..000000000 Binary files a/breakdown/assets/cline-cheatsheet.png and /dev/null differ diff --git a/breakdown/assets/cline-container-architect.png b/breakdown/assets/cline-container-architect.png deleted file mode 100644 index 60872c51c..000000000 Binary files a/breakdown/assets/cline-container-architect.png and /dev/null differ diff --git a/breakdown/assets/cline-core-components.png b/breakdown/assets/cline-core-components.png deleted file mode 100644 index c3840454c..000000000 Binary files a/breakdown/assets/cline-core-components.png and /dev/null differ diff --git a/breakdown/assets/cline-illu.gif b/breakdown/assets/cline-illu.gif deleted file mode 100644 index 82953fb7a..000000000 Binary files a/breakdown/assets/cline-illu.gif and /dev/null differ diff --git a/breakdown/assets/cline-system-flows.png b/breakdown/assets/cline-system-flows.png deleted file mode 100644 index 8f86bc32f..000000000 Binary files a/breakdown/assets/cline-system-flows.png and /dev/null differ diff --git a/breakdown/assets/context7-refresh-library.png b/breakdown/assets/context7-refresh-library.png deleted file mode 100644 index 601165eea..000000000 Binary files a/breakdown/assets/context7-refresh-library.png and /dev/null differ diff --git a/breakdown/assets/context7-token-limit.gif b/breakdown/assets/context7-token-limit.gif deleted file mode 100644 index cd41d3bb3..000000000 Binary files a/breakdown/assets/context7-token-limit.gif and /dev/null differ diff --git a/breakdown/assets/crawl4ai-cheatsheet.png b/breakdown/assets/crawl4ai-cheatsheet.png deleted file mode 100644 index 4ea7655bf..000000000 Binary files a/breakdown/assets/crawl4ai-cheatsheet.png and /dev/null differ diff --git a/breakdown/assets/dify-architecture.webp b/breakdown/assets/dify-architecture.webp deleted file mode 100644 index 87ea880af..000000000 Binary files a/breakdown/assets/dify-architecture.webp and /dev/null differ diff --git a/breakdown/assets/dify-load-distribution.webp b/breakdown/assets/dify-load-distribution.webp deleted file mode 100644 index fba6bd840..000000000 Binary files a/breakdown/assets/dify-load-distribution.webp and /dev/null differ diff --git a/breakdown/assets/dify-model-runtime-layer.webp b/breakdown/assets/dify-model-runtime-layer.webp deleted file mode 100644 index 402a0864b..000000000 Binary files a/breakdown/assets/dify-model-runtime-layer.webp and /dev/null differ diff --git a/breakdown/assets/dify-plugin-ecosystem.webp b/breakdown/assets/dify-plugin-ecosystem.webp deleted file mode 100644 index 34904429e..000000000 Binary files a/breakdown/assets/dify-plugin-ecosystem.webp and /dev/null differ diff --git a/breakdown/assets/dify-workflow-execution-engine.webp b/breakdown/assets/dify-workflow-execution-engine.webp deleted file mode 100644 index bfe7da1a6..000000000 Binary files a/breakdown/assets/dify-workflow-execution-engine.webp and /dev/null differ diff --git a/breakdown/assets/dify.gif b/breakdown/assets/dify.gif deleted file mode 100644 index 1e30f5a15..000000000 Binary files a/breakdown/assets/dify.gif and /dev/null differ diff --git a/breakdown/assets/e2b-illustration-01.png b/breakdown/assets/e2b-illustration-01.png deleted file mode 100644 index 5affe846f..000000000 Binary files a/breakdown/assets/e2b-illustration-01.png and /dev/null differ diff --git a/breakdown/assets/e2b-illustration-02.png b/breakdown/assets/e2b-illustration-02.png deleted file mode 100644 index 6822ee26d..000000000 Binary files a/breakdown/assets/e2b-illustration-02.png and /dev/null differ diff --git a/breakdown/assets/maybe-illu.gif b/breakdown/assets/maybe-illu.gif deleted file mode 100644 index 0068bb2b3..000000000 Binary files a/breakdown/assets/maybe-illu.gif and /dev/null differ diff --git a/breakdown/assets/maybe-multi-currency.png b/breakdown/assets/maybe-multi-currency.png deleted file mode 100644 index d1bf9bff5..000000000 Binary files a/breakdown/assets/maybe-multi-currency.png and /dev/null differ diff --git a/breakdown/assets/mem0-benchmarck-latency.png b/breakdown/assets/mem0-benchmarck-latency.png deleted file mode 100644 index 9f100a21b..000000000 Binary files a/breakdown/assets/mem0-benchmarck-latency.png and /dev/null differ diff --git a/breakdown/assets/mem0-graph-architecture.png b/breakdown/assets/mem0-graph-architecture.png deleted file mode 100644 index 7d8b11729..000000000 Binary files a/breakdown/assets/mem0-graph-architecture.png and /dev/null differ diff --git a/breakdown/assets/mem0-vector-architecture.png b/breakdown/assets/mem0-vector-architecture.png deleted file mode 100644 index 077eb9b54..000000000 Binary files a/breakdown/assets/mem0-vector-architecture.png and /dev/null differ diff --git a/breakdown/assets/stagehand.gif b/breakdown/assets/stagehand.gif deleted file mode 100644 index 9b105cb17..000000000 Binary files a/breakdown/assets/stagehand.gif and /dev/null differ diff --git a/breakdown/assets/umami.gif b/breakdown/assets/umami.gif deleted file mode 100644 index ee53d8e43..000000000 Binary files a/breakdown/assets/umami.gif and /dev/null differ diff --git a/breakdown/assets/zen-mcp-cheatsheet.png b/breakdown/assets/zen-mcp-cheatsheet.png deleted file mode 100644 index 2d6a77dfa..000000000 Binary files a/breakdown/assets/zen-mcp-cheatsheet.png and /dev/null differ diff --git a/notes/Acceptance test in Elixir.md b/notes/Acceptance test in Elixir.md deleted file mode 100644 index 734de349a..000000000 --- a/notes/Acceptance test in Elixir.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - elixir - - engineering - - testing -redirect: - - /4VGSXQ ---- - -Acceptance tests help ensure that applications we develop are deployed with minimal bugs. Manual acceptance testing is extremely valuable, but it can also be tedious and time-consuming. At DF, we've applied the automation End2End testing for our development process. In End2End test, we can open the web page, navigate on the web like a real user. In elixir project, we can do the same thing with [Hound](https://github.com/HashNuke/hound) and a WebDriver. - -The WebDriver is an interface to automate browsers. We can use WebDriver implementation to build an automated test suite against a real browser. - -Hound is an Elixir library to write WebDriver. Writing End2End test with Hound is very similar to writing a normal ExUnit test. An advantage to writing automation tests is the same code base. - -### Common web drivers - -https://github.com/HashNuke/hound/wiki/Starting-a-webdriver-server - -[**Selenium**](https://selenium-release.storage.googleapis.com/index.html) - -```shell -$ brew install selenium-server-standalone -``` - -[**ChromeDriver server**](https://chromedriver.chromium.org) - -```shell -$ brew install --cask chromedriver -``` - -Run command: - -```shell -$ chromedriver -``` - -**PhantomJS web driver** - -```shell -$ brew cask install phantomjs -``` - -Run command: - -```shell -$ phantomjs --wd -``` - -### Configure Hound - -Add dependency to `mix.exs`: - -```elixir -{:hound, "~> 1.0"} -``` - -Follow the setup step in https://hexdocs.pm/phoenix_ecto/Phoenix.Ecto.SQL.Sandbox.html: - -- add the plug to `Endpoint` -- update the config/test.exs to run real server when execute test cases -- add the hound config in config/test.exs. We can update the config for other driver and browser config. - -```elixir -config :hound, driver: "chrome_driver", browser: "chrome_headless" -``` - -- Update `test/test_helper.ex`. We must start :hound application before run the unit test. - -```elixir -Application.ensure_all_started(:hound) -``` - -### Make an unit test - -As any unit test we need a module to store the test cases. We implement the `setup` func for Web driver initial `Hound.Helpers` provides the functions to control the browser easier. We can navigate, inspect html element, make the click action via this package. Use `assert` to validate the result - -```elixir -defmodule Acceptance.HomePageTest do - use ExUnit.Case, async: false - use Hound.Helpers - - setup do - Hound.start_session() - :ok - end - - test "the page loads" do - navigate_to("http://localhost:4002") - assert page_title() == "Homepage" - end -end -``` - -### Note - -Before run test we MUST start the web driver first https://hexdocs.pm/hound/Hound.Helpers.Navigation.html diff --git a/notes/Adding aliases and import into mix file under umbrella app.md b/notes/Adding aliases and import into mix file under umbrella app.md deleted file mode 100644 index 8302caee8..000000000 --- a/notes/Adding aliases and import into mix file under umbrella app.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - elixir -redirect: - - /MScKIQ ---- - -Here is the content of my mix file: `.iex.exs` - -```elixir -alias Db.{ Repo, Document } -``` - ---- - -#### Reference - -- https://stackoverflow.com/questions/46842465/how-to-add-aliases-and-imports-into-my-own-mix-under-umbrella-application-in-eli?rq=1 diff --git a/notes/Benefit of Umbrella Application.md b/notes/Benefit of Umbrella Application.md deleted file mode 100644 index 2d37800b1..000000000 --- a/notes/Benefit of Umbrella Application.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - elixir -redirect: - - /fwdKEQ ---- - -An advantage to using the umbrella structure is that the applications are structured as standalone applications. This can help to give clearer boundaries between the applications and to separate application concerns. For example, an application in the umbrella should only call the public apis of another umbrella application. However, this is not enforced and private apis can still be called. - -The individual applications in the umbrella have their own configuration files, tests and separate `mix.exs` files which can be compiled, run and tested as one big application because they are in the umbrella. However, a single application can still be run and tested standalone when working inside the application directory (in `apps/app_name`). - -In my opinion there can also be drawbacks to this. A drawback to the umbrella is that you have `1 + app_count` different config and mix files to manage. Additionally your source files will be nested deeper, e.g. in `apps/app_name/lib/app_name/...` instead of just `lib/app_name`, which makes it harder to navigate the source code. - -In many cases I find that an umbrella app is not necessary for the project I'm working on, because the applications in the umbrella are never going to run standalone anyway. Often I prefer having projects with different namespaces in the `lib/` folder while still treating them as applications with separate responsiblities. - ---- - -#### Reference - -- [Docs for "Dependencies and umbrella projects" at elixir-lang.org](https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html) -- [Benefit of umbrella application](https://stackoverflow.com/questions/59958055/what-are-the-benefits-of-umbrella-applications) diff --git a/notes/Blockchain Oracle.md b/notes/Blockchain Oracle.md deleted file mode 100644 index 8dc6b1337..000000000 --- a/notes/Blockchain Oracle.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: null -description: null -date: null -author: Vy Tran Khac -tags: - - blockchain - - engineering -redirect: - - /Y7zXkg ---- - -## The blockchain oracle problem - -Blockchains have a fundamental limitation: they cannot natively communicate with systems of the outside world. This lack of external connectivity, known as "the oracle problem", prevents smart contracts from verifying external events, trigger actions on existing systems, and providing users the full range of functionality. - -## What is a blockchain oracle? - -A blockchain oracle is a third-party service that connects smart contracts with the outside world, primarily to feed information in about the world around, but the reverse is also true. - - _Blockchain oracles connect blockchains to inputs and outputs of the real world (Image source: [Chainlink](https://chain.link/))_ - -## Types of blockchain oracles - -### Input oracles - -The most widely recognized type of oracle today is known as an “input oracle”, which fetches data from the real-world(off-chain) and delivers it onto a blockchain network for smart contracts consumption. A good example of this are the Chainlink Price Feeds. - -### Output oracles - -The opposite of input oracles are "output oracles", which allow smart contracts to send commands to off-chain systems to trigger and execute certain actions. - -### Cross-chain oracles - -This type of oracle can read and write information between different blockchains. Cross-chain oracles enable interoperability for moving both data and assets between blockchains. - -### Compute-enabled oracles - -This type of oracle provides decentralized services with secure, off-chain computation that would otherwise be impractical to do on the blockchain due to technical, legal, or financial constraints. - -## Notable blockchain oracles - -- Chainlink (LINK) -- Band Protocol (BAND) -- Teller (TRB) -- Decentralized Information Asset (DIA) -- API3 - -#### Reference - -- [Wikipedia - Blockchain oracle](https://en.wikipedia.org/wiki/Blockchain_oracle#:~:text=A%20blockchain%20oracle%20is%20a,that%20decentralised%20knowledge%20is%20obtained.) -- [https://chain.link/education/blockchain-oracles](https://chain.link/education/blockchain-oracles) -- [https://coin98.net/what-is-blockchain-oracle](https://coin98.net/what-is-blockchain-oracle) diff --git a/notes/CICD.md b/notes/CICD.md deleted file mode 100644 index e13a13dbc..000000000 --- a/notes/CICD.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - development -redirect: - - /MPAZ6w ---- - -### CI - -- Avoid merge conflicts -- Auto merge source code from different locals -- Constantly build & test -- Notify when bug arrives -- Only merge if `no errors` - -### CD - -- After code is compiled & merge -- Code is moved to another env for more test -- Passed these tests, code is ready for production -- CD ensures a safety net for production code - - i.e: once code is shipped to production, it can still be tested and notify bugs - -### The CI/CD pipeline - -- Automatic // infinite loop of testing, notifying and building -- Saves times. prevents developers to deal with merge conflicts and bugs -- Provides constant feedback -- The pipeline keeps traverse between production // source code for bug tracking - ---- - -#### Reference - -- https://kylefarmer85.medium.com/what-is-ci-cd-76d71b82898d diff --git a/notes/CRON Job.md b/notes/CRON Job.md deleted file mode 100644 index 82b655170..000000000 --- a/notes/CRON Job.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - development - - practice -redirect: - - /PGAHBg ---- - -### What - -A system daemon to execute task on designed times. - -_daemon_: run in linux system. works underlying in background - -It's a long-running process to execute command at specifice date/time - -### How it works - -Using crontab file. A configed text file, contains a list of command to schedule tasks. This file can be edit/ adjust using crontab command - -_Crontab Command_: List of action you wish to execute - -### Example - -**Format** - -- Minute -- Hour -- Day -- Month -- Day of the week -- Command - -`30 09 ** 08 * / home/ramesh/update-db` - -Task: Auto update database at 09:30AM on every day of August - ---- - -#### Reference - -- https://ostechnix.com/a-beginners-guide-to-cron-jobs/ -- https://www.marksanborn.net/linux/learning-cron-by-example/ -- https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/ diff --git a/notes/Circuit breaker Pattern.md b/notes/Circuit breaker Pattern.md deleted file mode 100644 index cddc28487..000000000 --- a/notes/Circuit breaker Pattern.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - cloud-pattern - - engineering - - microservice -redirect: - - /bNuXhA ---- - -### Context - -- In a distributed environment, there can be situations where faults are due to unanticipated events, and that might take much longer to fix. Result the complete failure of a service. In these situations it might be pointless for an application to continually retry an operation that is unlikely to succeed, and instead the application should quickly accept that the operation has failed and handle this failure accordingly. -- Sometime, failed service could have bad effect to other services about: delay, performance and reduce UX of users - -### Solution - -A circuit breaker acts as a proxy for operations that might fail. The proxy should monitor the number of recent failures that have occurred, and use this information to decide whether to allow the operation to proceed, or simply return an exception immediately. - -The proxy have 3 state: - -- Closed: The request from the application is routed to the operation. Count the number of recent failure, if the failure count more than threshold => Set state to Open. -- Open: The request/msg from the application fails immediately and an exception is returned. Start a timeout, when timer come, => set state to Half-Open -- Half-Open: A limited number of request sent to the service, if those are OK. Seem the service is OK => Set state to Close. - -### Considerations - -When using the circuit breaker, we might need to care about: - -- Exception Handling -- Logging -- Recoverability -- Testing Failed Operations -- Manual Override - -![[circuit-breaker-diagram.png]] - ---- - -#### Reference - -- https://docs.microsoft.com/en-us/azure/architecture/patterns/circuit-breaker -- https://martinfowler.com/bliki/CircuitBreaker.html diff --git a/notes/Command Query Responsibility Segregation (CQRS).md b/notes/Command Query Responsibility Segregation (CQRS).md deleted file mode 100644 index cd0bc300a..000000000 --- a/notes/Command Query Responsibility Segregation (CQRS).md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - cqrs - - engineering - - pattern -redirect: - - /UAbbdA ---- - -### What - -- a pattern that separates read and update operations for a data store - -### Why - problem and context - -- Large, heavy DB load system. In big system, there is a huge number of db access (Read/Write). It could have bad effect to performance and data consistency. -- In traditional architectures, the same data model is used to query and update a database. That's simple and works well for basic CRUD operations. In more complex applications, however, this approach can become unwieldy. -- Read and Write data are often asymmetrical. - -### How - to solve the problem - -- CQRS separates reads and writes into different models, using commands to update data, and queries to read data. - - - Commands should be task-based, rather than data centric. ("Book hotel room", not "set ReservationStatus to Reserved"). - - Commands may be placed on a queue for asynchronous processing, rather than being processed synchronously. - - Queries never modify the database. A query returns a DTO that does not encapsulate any domain knowledge. - -- For greater isolation, you can physically separate the read data from the write data. In that case, the read database can use its own data schema that is optimized for queries. The read store can be a read-only replica of the write store, or the read and write stores can have a different structure altogether. - -### Benefit - -- Independent scaling. CQRS allows the read and write workloads to scale independently, and may result in fewer lock contentions. -- Optimized data schemas. The read side can use a schema that is optimized for queries, while the write side uses a schema that is optimized for updates. -- Security. It's easier to ensure that only the right domain entities are performing writes on the data. -- Separation of concerns. -- Simpler queries - -### Considerations - -- Complexity -- Messaging -- Eventual consistency: Read and Write DB need to be consistent - ---- - -#### Reference - -- https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs -- https://martinfowler.com/bliki/CQRS.html diff --git a/notes/Contract Context in Blockchain.md b/notes/Contract Context in Blockchain.md deleted file mode 100644 index 9160360f1..000000000 --- a/notes/Contract Context in Blockchain.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - blockchain -redirect: - - /ytcbpg ---- - -- When contract is deployed, it will always be immutable (cannot be edited). But in real life, there will always be problems to edit that contract (fix bugs, upgrade). -- Normally when you want to change, the flow will be: deploy new contract -> move the old contract state to the new contract -> beg the end-user to change to the new contract. -- There is another approach, proxy patterns, which is mainly about architecture contracts to achieve the goal of being able to update the contract after it has been deployed to the chain. -- This will basically have 1 contract as Proxy (this contract immutable) config dc 1 target contract (real contract handle logic). The end user will always connect to the proxy contract, the proxy contract will use a technique called `delegatecall` to fwd it to the target contract. -- When I need to change the contract code, I just need to deploy the new contract to the chain, configure the proxy contract call to the new contract. - ---- - -#### Reference - -- https://blog.openzeppelin.com/proxy-patterns/ diff --git a/notes/Convert subfolder into Git submodule.md b/notes/Convert subfolder into Git submodule.md deleted file mode 100644 index 59213d039..000000000 --- a/notes/Convert subfolder into Git submodule.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - git -redirect: - - /cJ6q3g ---- - -Clone new repository - -```shell -$ git clone --no-hardlinks original-repo copied-repo -``` - -Filter out the files you want to keep and remove the others - -```shell -$ cd copied-repo -$ git filter-branch --subdirectory-filter sub/module/path HEAD -- --all -$ git reset --hard -$ git gc --aggressive -$ git prune -$ git remote rm origin -``` - -Push the new repositories to the upstream server - -```shell -$ git remote add origin git@github.com:korya/submodule-repo.git -``` - -Add the new repository as submodules to the original repository - -```shell -$ cd original-repo -$ git rm -r sub/module/path -$ git commit -m "Removing the folders that are now repositories" -$ git submodule add git@github.com:korya/submodule-repo.git sub/module/path -$ git submodule init -$ git submodule update -$ git add .gitmodules sub/module/path -$ git commit -m "Added in submodules for removed folders" -``` - ---- - -#### Reference - -- https://gist.github.com/korya/9047870 diff --git a/notes/Data ERD.md b/notes/Data ERD.md deleted file mode 100644 index d4bd7beaf..000000000 --- a/notes/Data ERD.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - data - - diagram -redirect: - - /C8UYgg ---- - -### What - -ERD stands for Entity Relationship Diagram, a structural diagram that contains symbols nad connectors that visualizes 2 types of information - -- The major Entities -- The Relationship between those entities - -When we talk bout Entities, we are referring to the business objects within the system: people/role, tangile object (product). - -When we talk about Relationship, we are referring how those entities relate with each other. - -### Primary key & foreign key - -- Primary key: Use to uniquely define a record in database table -- Foreign key: a foreign key of a table is used aas a navigation to a primary key of another table - -### When - -ERDs are mostly developed during concept visualization, database design, database debugging, requirement information system. - -### How-to - -- Answer the purpose: What is this ERD for -- Clarify the model scope. This prevents the model from having too many redundant entities. Onyl select the entities that is critical and relevant to the business model. -- Define the models/ major entities -- Define the attribute of that entities (related information) -- Decide the relationship between those entities (which one might affect one another) -- Decide the kind of relationship - - 1:1 - - 1:many - - many:1 - - many:many - ---- - -#### Reference - -- [Explaning the ERD](https://www.visual-paradigm.com/guide/data-modeling/what-is-entity-relationship-diagram/#erd-data-models-conceptual) -- [Difference of the relationship](https://stackoverflow.com/questions/3113885/difference-between-one-to-many-many-to-one-and-many-to-many) -- [Example of ERD](https://www.guru99.com/er-diagram-tutorial-dbms.html) diff --git a/notes/Data Lifecycle.md b/notes/Data Lifecycle.md deleted file mode 100644 index 13a361220..000000000 --- a/notes/Data Lifecycle.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - data -redirect: - - /8J6nCg ---- - -#### Explaining - -Like human, data goes through a circle of life. from the derive until the collapse. - -- capturing: raw data get acquired from multiple sources -- maintaining: edit, format, label > turn raw/ disorganized data into consistent system -- using: extract the benefit from data. generate insight, visulaize results, explain decision. -- publishing: make data visible on different platforms, as a part of business // in-use -- archiving: storing for future use // historical data // reference -- deleting: as simple as it sounds. when data is no longer needed, it gets removed from the system. - -#### Why - -By knowing which stage the data is currently in, we get to decide what's best to act during the phase, how to protect and get the most out of it. - ---- - -#### Reference - -https://www.thinkautomation.com/eli5/the-data-lifecycle-explained/ diff --git a/notes/Database Sharding.md b/notes/Database Sharding.md deleted file mode 100644 index b8d989d23..000000000 --- a/notes/Database Sharding.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - database - - sharding - - engineering -redirect: - - /2RFXmg ---- - -### Why? - -Data-driven app need ability to scale dynamically to against significant growth in the future - -### What? - -- Database architecture -- Horizontal partitioning - separating one table’s rows into multiple different tables (partitions) - -### How? - -- Breaking up one’s data into 2 or more smaller chunks (logical shards) -- Chunks are distributed across separate DB nodes (physical shards) -- Exemplify a shared-nothing architecture - means that they don’t share any of the same data or computing resources -- A table can be replicate to all shared as a ref table -- Can be implement in both BE layer and DB layer (clickhouseDB) - -### Benefit - -- Facilitate horizontal scaling (scaling out) by adding more machines to an existing stack in other to spread out the load and allow for more traffic and faster processing <> scaling up - add more compute power by upgrade hardware -- Ignore limitation of non-distributed database in terms of storage and compute power. -- Increasing speed of query stmt (each shard query itself instead of all rows) -- Avoid the the impact of outages (an outage is likely to affect only a single shard) - -### Limitation - -- Complexity of shared DB architecture implementation -- Manage data across multiple shard locations instead of one point -- Shards eventually become unbalanced -- Difficult to return to its unsharded architecture -- Sharding isn’t natively supported by every database engine - -### Sharding architectures - -- Key Based Sharding: hashing a value from new data to determine which shard the data should go to -- Range Based Sharding: Using range of given value to determine target shard to store data -- Directory Based Sharding: Implement a lookup table for shard system. diff --git a/notes/Deno.md b/notes/Deno.md deleted file mode 100644 index f30cf3083..000000000 --- a/notes/Deno.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: null -description: null -date: null -author: Giang Ngoc Huy -tags: - - engineering - - javascript - - typescript -redirect: - - /yMLPGA ---- - -## What - -- A new JavaScript runtime, written in Rust (JsVM 💃🏻) -- Built to follow the standard Web API -- Take advantage of TypeScript, WASM and ESM module (and support them natively) -- "Node" written weirdly backwards - -## Why - - - -- Deno follows the standard Web API [and is leading the industry in implementing them](https://github.com/denoland/deno/pull/11941) - - This is with the aim to make JS/TS project ideally more universal -- secure by default - - requires `--allow-*` flags to enable specific features like read/write, network access, etc... - - This is so a random project/module can't read your file system unless you **explicitly** allow it to -- no need for `npm install`, pre-bundling (e.g: `tsc`/`webpack`/`package.json`) dances and rituals -- Perfect to deploy on modern platforms like Cloudflare Workers and [Deno deploy](https://deno.com/deploy/docs) - -## Why not? - -- Although native ESM and `script type="module"` is widely supported in modern browsers, some very new APIs like `URLPattern` is not completely supported everywhere -- dependencies on Deno are imported by URL, so it makes it somewhat messy, but [`import map`](https://deno.land/manual/linking_to_external_code/import_maps) can be used to improve readability - - `import lodash from "https://deno.land/x/lodash@4.17.19"` - - `deno` will download available imports online and cache locally before running - -## What about Node.js? - -- Node.js and its ecosystem has grown into a messy place -- History of inconsistent authoring/bundling [formats](https://dev.to/iggredible/what-the-heck-are-cjs-amd-umd-and-esm-ikm) (cjs, amd, umd) -- Node 16 adds ESM support, but before moving to ESM format, 2 things needed to happen: - - the library author has to [break backward compatibility](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#pure-esm-package) - - library users have to [migrate their project to an ESM format](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c#pure-esm-package) - - just imagine the whole Node.js ecosystem going through this 💥 -- Confusion with JavaScript in the browser (e.g: `require` vs `import`) -- Non-standard & incompatible with modern JavaScript - -## Extras - -Deno also removes one most confusing part when developing JavaScript: build tools. - -Webpack/Babel and their bundling process is the most over-engineered (albeit necessary) part of JavaScript development. Just needing to know how bundlers work to effectively leverage them is a crucial part of writing & authoring JavaScript projects/libraries, and has been over the recent decade. - -Node.js developers often need to work with Webpack & Babel just to have the convenience to write their code in modern JavaScript (e.g: `import` vs `require`) or be able to work with TypeScript. - -Deno, on the other hand, strives to move along with the modern JavaScript standard by defaulting to ESM, with native support for all standard APIs and TypeScript/JSX, removing the need to rely on build tools. - -> "Now we can sit down and write actual JavaScript instead of spending half a day initialize new project with Webpack, Babel, JSX and another half to configure Jest to read our `.babelrc` config. _Such. fresh. air._" - -### Deno deploy - -Similar to Cloudflare Workers, Deno deploy is a serverless deployment platform using the Service Worker API to create deployments, currently in (free) public beta. - -What's really cool about Deno deploy is that it only requires a link to your entry file to deploy, and deploy time is super fast. - - - -Interesting projects to follow: - -- https://github.com/exhibitionist-digital/ultra -- https://github.com/lucacasonato/fresh diff --git a/notes/Domain-Driven Design.md b/notes/Domain-Driven Design.md deleted file mode 100644 index 45e10b72a..000000000 --- a/notes/Domain-Driven Design.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - ddd - - design -redirect: - - /To0Zbw ---- - -Why Domain Driven Design: Using the same business term makes it easier for designers, business experts land developers to communicate and stay on the same page during design and development phase. - -DDD helps to remove roadblock between devenand designs, stay consistent in workflow. - ---- - -Source: https://builtin.com/software-engineering-perspectives/domain-driven-design diff --git a/notes/Email in dev's PoV.md b/notes/Email in dev's PoV.md deleted file mode 100644 index 5f05fb7af..000000000 --- a/notes/Email in dev's PoV.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - development - - email -redirect: - - /voI2Mg ---- - -2 types that draws the most focus - -- marketing: newsletter, product launch, feature updates, - -> promotional purpose - -> users won't know when they will receive -- transaction: direct controlled by dev - - generated and sent when a `transaction` happen // trigger by action - - form submission, purchase invoice, password reset - -> users want to receive, actively know when - -A-Z walkthrough for email development - ---- - -Source: https://hackernoon.com/the-a-z-of-email-development-and-sending-d9w33h4 diff --git a/notes/Garbage collector in Elixir.md b/notes/Garbage collector in Elixir.md deleted file mode 100644 index 176997d5e..000000000 --- a/notes/Garbage collector in Elixir.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - elixir - - garbage -redirect: - - /IZ8cmQ ---- - -BEAM process has its own stack and heap for small data binaries(<64bytes) Larger binaries are stored in a shared memory space with a ref-counted pointer(called ProcBin) that lives in a Process's heap. There are many data stacks and heaps in our application, one per process. - -- Generational - minor garbage collection. This method reclaims **heap memory** that is no longer referenced by the process. Idea: most memory is only used for a short period of time. It is **highly performant**, but looks at **recently allocated** - -- Full-sweep - major garbage collection. This method looks at the entire heap of a process, and reclaims as **much memory as possible**. Idea: memory must be clean when the heap is close to being full. It is fast in practice, but it can be slow if executing on a process that is actively holding a lot of data - -### How to collect data manually - -1. From OTP 20 provide a function to reclaims the memory in a process: :erlang.garbage_collect/1. We can use :erlang.garbage_collect/0 to trigger garbage collection for the process that invoked the function -2. Passing the :hibernate_after option for GenServer.start/3 function. The data will be reclaims when the process is idled. Ex: Phoenix Channel use hibernate_after to enter hibernation 15 seconds after processing their last message. -3. Returning :hibernate at the end of the GenServer callbacks - -```elixir -def handle_call(:clear, _from, _state) do - {:reply, :ok, [], :hibernate} -end -``` diff --git a/notes/Graphql.md b/notes/Graphql.md deleted file mode 100644 index 9ea10f0e2..000000000 --- a/notes/Graphql.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - api - - graphql -redirect: - - /N2IcwQ ---- - -A query language to write schema on backend server. Unlike SQL (query language for database), GraphQL follows a stricter format and gets utilized on API, which, usually gets compared to RESTful API. - -For query language for API from backend side. - -#### Pros - -- Retrieve the exact data based on pre-set schema (while REST API retrieves a full result which might contains irrelevant/ redundant data) -- Single request for multiple resources (REST API requires separate API for each table) -- Notify update when data is changed - -#### Cons - -- Rare on adoption -- Hard to pick up -- Inappropriate for constantly fectch data system - ---- - -#### Reference - -https://exarhouleasjohn.medium.com/what-is-graphql-6dcc27a18914 diff --git a/notes/History of Regular Expression.md b/notes/History of Regular Expression.md deleted file mode 100644 index c29c15219..000000000 --- a/notes/History of Regular Expression.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - regex -redirect: - - /gpAS8Q ---- - -_Buzz Andersen (BA) is an interesting builder on the internet (and has been for some time, with stints at Apple, Square, Tumblr, and more) but has also emerged as an important and moral voice in technology’s evolution. He’s an incredible [twitter follow](https://mobile.twitter.com/buzz) and I always feel smarter for having interacted with him. - Colin (CJN)_ - -_**Buzz here.**_ On March 10, 2021, many Russian Internet users suddenly found they were having trouble accessing parts of the web. Kentik, a US-based network analysis company, [reported](https://twitter.com/DougMadory/status/1369648537634545673) that network traffic to Rostelecom, the Russian state telecom, was down as much as 24%, and cybersecurity Twitter was abuzz with speculation about the causes. - -Eventually, a Russian artist and Twitter user named Gregory Khodyrev [realized](https://twitter.com/GregoryKhodyrev/status/1369658173334884360) what was going on: someone at Russia’s state Internet censor, Roscomnadzor, had attempted to block the Internet domain “t.co” (used by Twitter’s URL shortener), but had instead managed to cut off access to _any_ domain containing the text pattern “t.co.” This meant that sites such as “microsoft.com,” “reddit.com,” and even Russia’s own state media outlet “rt.com” were rendered suddenly inaccessible. - -Readers with a modicum of technical knowledge may already have an inkling of what likely happened here: some hapless censor, attempting to [curb Twitter’s political influence](https://www.nytimes.com/2021/03/10/world/europe/russia-twitter.html), installed a URL pattern matching rule on Russia’s [national firewall](https://www.theguardian.com/technology/2019/apr/28/russia-great-firewall-sovereign-internet-bill-keeping-information-in-or-out) that turned out to have been just a tad overzealous. The rule in question was almost certainly expressed using a notoriously abstruse notation called a “regular expression.” - -There is an old programmer joke (generally [attributed](http://regex.info/blog/2006-09-15/247) to Jamie Zawinski) that goes: “Some people, when confronted with a problem, think ‘I know, I'll use regular expressions.’ Now they have two problems.” In accidentally cutting off access to a large part of the Internet for an entire country (and in the process drawing embarrassing attention to Russia’s censorship efforts), our anonymous bureaucrat seems to have proven that old chestnut quite handily. - -**Why is this interesting?** - -A regular expression, or “regex,” is a kind of algebraic shorthand for specifying text patterns. Here, for example, is a regular expression that will match will match the words “sink,” “sank,” or “sunk.” - -> _s[aiu]nk_ - -The brackets indicate that either “a,” “i,” or “u” are acceptable matches for the second character in the series. - -Now, to make things slightly more interesting, we can add an optional element: - -> _st?[aiu]nk_ - -The question mark makes “t” optional in the pattern, and means our expression can now match not only “sink,” “sank,” and “sunk,” but also “stink,” “stank,” and “stunk.” - -Finally, to dramatically expand the number of text “strings” our expression can match, we can add a period (meaning “any character”) followed by an asterisk (meaning “as many as possible”). - -> _s.\*nk_ - -Now our regex can match “stonk,” “slink,” or indeed any other word starting with “s” and ending with “nk.” - -Most regular expression implementations also support a feature called “anchors,” which specify that the match must appear at the start or end of a text string. For example: - -> _^t.co$_ - -The above expression matches the pattern “t.co”—but only if the “t” is the first character in the string and the “o” is the last. Without the “^” and “$,” by contrast, the expression would, as our anonymous Russian censor learned, match the pattern no matter where it appears in the string. - -The concept of a regular expression has a surprisingly interesting history that dates back to the optimistic, mid-20th Century heyday of artificial intelligence research. - -The term itself originated with mathematician [Stephen Kleene](https://en.wikipedia.org/wiki/Stephen_Cole_Kleene). In 1943, neuroscientist Warren McCulloch and logician Walter Pitts had just [described](https://web.csulb.edu/~cwallis/382/readings/482/mccolloch.logical.calculus.ideas.1943.pdf) the first mathematical model of an artificial neuron, and Kleene, who specialized in theories of computation, wanted to investigate what networks of these artificial neurons could, well, theoretically compute. - -In a 1951 [paper](https://www.rand.org/content/dam/rand/pubs/research_memoranda/2008/RM704.pdf) for the RAND Corporation, Kleene reasoned about the types of patterns neural networks were able to detect by applying them to very simple toy languages—so-called “regular languages.” For example: given a language whose “grammar” allows only the letters “A” and “B”, is there a neural network that can detect whether an arbitrary string of letters is valid within the “A/B” grammar or not? Kleene developed an algebraic notation for encapsulating these “regular grammars” (for example, a*b* in the case of our “A/B” language), and the regular expression was born. - -Kleene’s work was later expanded upon by such luminaries as linguist Noam Chomsky and AI researcher Marvin Minsky, who formally established the relationship between regular expressions, neural networks, and a class of theoretical computing abstraction called “finite state machines.” - -[](https://cdn.substack.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb365073-fe9b-4c1b-a935-5d62ca57bd61_551x720.png) - -These discoveries made early AI pioneers feel as if they were unlocking the fundamental mysteries of the mind, and for a while it seemed as if true machine intelligence might be just around the corner. Unfortunately, this heady early enthusiasm for this work was soon to hit a brick wall. In 1969, Minksy published his [controversial](https://www.jstor.org/stable/285702) book [Perceptrons](https://www.amazon.com/Perceptrons-MIT-Press-Introduction-Computational/dp/0262534770?crid=23RVCCWWS4T6Z&dchild=1&keywords=perceptrons&qid=1622757363&s=books&sprefix=perceptrons%2Cstripbooks%2C157&sr=1-1&linkCode=ll1&tag=noahbrierdotc-20&linkId=e3c3406b9d166fde261f9f0bc0356f00&language=en_US&ref_=as_li_ss_tl), which explored some important limitations of early neural networks—with devastating consequences for the emerging science and its pioneers. As Brian Christian writes in his book [The Alignment Problem](https://www.amazon.com/Alignment-Problem-Machine-Learning-Values/dp/0393868338?_encoding=UTF8&qid=1622757405&sr=1-1&linkCode=ll1&tag=noahbrierdotc-20&linkId=6d2115b8f431857031f2d7895f8d766f&language=en_US&ref_=as_li_ss_tl): - -> _It is as if a dark cloud has settled over the field, and everything falls apart: the research, the money, the people. Pitts, McCulloch, and Lettvin, who have all three moved to MIT, are sharply exiled after a misunderstanding with MIT’s Norbert Wiener, who had been like a second father figure to Pitts and now won’t speak to him. Pitts, alcoholic and depressed, throws all of his notes and papers into a fire, including an unpublished dissertation about three-dimensional neural networks that MIT tries desperately to salvage. Pitts dies from cirrhosis in May 1969, at the age of 46.”_ - -The study of neural networks soon settled into a [long fallow period](https://en.m.wikipedia.org/wiki/AI_winter) as many researchers shifted their efforts away from “connectionist” theories (in which intelligence emerges from massively parallel networks) and toward a more paradigmatically familiar “symbolist” approach (which sought to develop intelligence by loading machines up with databases of facts and trying to teach them the rules of logic). The repudiation of neural nets was so thorough that it seems unlikely regular expressions would be so widely known outside of esoteric computer science today if it wasn’t for the efforts of [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson), one of the creators of the UNIX operating system at Bell Labs. - -Thompson started [applying regexes](http://www.oilshell.org/archive/Thompson-1968.pdf) to more mundane tasks by integrating them into the advanced search feature of his QED text editor in 1968. From there, regular expressions became a mainstay of UNIX, used to provide “wildcard” matching pretty much anywhere in the operating system that text search is required. In the 1980s, [Larry Wall](https://en.wikipedia.org/wiki/Larry_Wall) gave regexes another boost by making them a core feature of his text-oriented programming language, [Perl](https://en.wikipedia.org/wiki/Perl), which went on to become the indispensable “duct tape” of 1990s web development. This secured regular expressions a permanent place in the workaday webmonkey toolbox—and a key role in the kind of back-office sysadmin work Russia’s firewall administrators are tasked with. - -As for McCulloch, Pitts, Kleene, et. al, they eventually got their vindication. The early 2010s saw a resurgence of interest in neural networks, which in turn led to the advent of “deep learning” and massive advances in problems like facial recognition, machine translation, and autonomous vehicle navigation. So next time you’re puzzling through the inscrutable syntax for advanced search in your text editor, Internet search engine, or nationwide firewall, spare a thought for the once discredited AI pioneers who ended up making everything from wildcard matching to self-driving cars a reality. (_BA_) - -**Comic of the Day:** - -After yesterday’s Fastly outage, [this XKCD seems appropriate](https://xkcd.com/2347/). (_NRB_) - - - -**Quick Links:** - -- [What is the 'magic' brake setting cost Hamilton in Baku – and why do Mercedes struggle at low-grip tracks?](https://www.formula1.com/en/latest/article.tech-tuesday-what-is-the-magic-brake-setting-that-cost-hamilton-in-baku-and.79Mw4XSrxksy7jen3CE8FX.html) (_NRB_) - -- [The design history of Athens iconic apartments](https://www.bloomberg.com/news/features/2020-07-15/the-design-history-of-athens-iconic-apartments) (_NRB_) - -- [Sponsored Link] If you’re at a SaaS company, check out [Variance](https://www.variance.com/). It’s a tool to help grow customers (some people are calling it a [PLG CRM](https://www.variance.com/land/plg-crm)). If you have questions or want to try it, [get in touch](https://www.variance.com/contact). (_NRB_) - ---- - -#### Reference - -https://whyisthisinteresting.substack.com/p/the-regular-expression-edition diff --git a/notes/How CAPTCHA works and why it's getting harder.md b/notes/How CAPTCHA works and why it's getting harder.md deleted file mode 100644 index 4ab52be33..000000000 --- a/notes/How CAPTCHA works and why it's getting harder.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: null -description: null -date: null -tag: captcha -redirect: - - /VNkBJw ---- - -CAPTCHA stands for _Completely Automated Public Turing test to tell Computer and Humans Apart_. CAPTCHA works whenever the computer asks user to indentify letters. Later then, the invention of reCAPTCHA requires human to select graphic based on topics, or enter images of text that computers have trouble deciphering. - -This helps driven the security barrier and more privacy protection. - -By providing CAPTCHA the right answers, human somehow feeding data for the computer to train and evolve, which is the reason why CAPTCHA is getting more complex. - -Once user behavior seems to resemble a bot's behavior, a test may be triggered and automatically ratchering up the difficulty as a higher defense mechanism. - -**Follow-up FAQs** - -1. What happened if CAPTCHA is too strong and people find it hard to break -2. Some opinion state that using physical privacy key (like YubiKey) will help, but how, and will it work - ---- - -Source: -https://www.vox.com/22436832/captchas-getting-harder-ai-artificial-intelligence diff --git a/notes/Install Elixir & Phoenix.md b/notes/Install Elixir & Phoenix.md deleted file mode 100644 index a49da4910..000000000 --- a/notes/Install Elixir & Phoenix.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - elixir -redirect: - - /LbA0RQ ---- - -```shell -$ mix local.hex -$ mix archive.install hex phx_new -$ mix help phx.new -$ mix phx.new pod --no-html --no-webpack -``` diff --git a/notes/Maslow's hierarchy of needs.md b/notes/Maslow's hierarchy of needs.md deleted file mode 100644 index 60529962d..000000000 --- a/notes/Maslow's hierarchy of needs.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - design - - maslow - - ux -redirect: - - /eeOaKA ---- - - - -Maslow's hierarchy of needs is a motivational theory in psychology comprising a five-tier model of human needs, often depicted as hierarchical levels within a pyramid. From the bottom of the hierarchy upwards, the needs are: physiological (food and clothing), safety (job security), love and belonging needs (friendship), esteem, and self-actualization.Needs lower down in the hierarchy must be satisfied before individuals can attend to needs higher up. In general, humans are made of 3 main components: **physical**, **psychological** and **consciousness**, Maslow's hierarchy of needs is a ladder to bring certainty for these components. - -In business, after analyzing target customers, Maslow's hierarchy of needs is applied to define needs to make suitable products or strategies. - -In facts, people don't always desire certainty, since too much certainty leads to boredom. Thus, people also desire change, adventure and variety to feel alive. Variety and certainty are very much connected to each other. They sit on either side of a scale that needs to be in constant balance. When we have too much certainty we reach a level where we are running on automatic. We look for a change to break up the monotony and bring some interest. This is where innovation comes from. As people live a boring life, keep doing things in their daily routine, they tend to do a lot of things to bring change and interest into their lives, some of them are innovating and creating new things. - ---- - -#### Related - -- [[Human needs]] -- [[Seven deadly sins]] -- [[Skandhas - the five aggregates]] - -#### Reference - -- [Maslow's hierarchy of needs](https://www.simplypsychology.org/maslow.html) -- [Certainty & variety](https://www.ronitbaras.com/emotional-intelligence/personal-development/six-human-needs-certainty/) diff --git a/notes/Memory safety in Rust.md b/notes/Memory safety in Rust.md deleted file mode 100644 index 874b494ed..000000000 --- a/notes/Memory safety in Rust.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - rust -redirect: - - /BKacLQ ---- - -The garbage collector of Golang helps developers by automatically freeing the memory of their programs when it is not needed anymore. However, keeping track of the memory and cleaning it could impact the performances of our programs. - -Meanwhile, Rust's mechanism in memory safety acts different. Dividing in `stack` and `heap`. It predicts when will the data be out of used and automatically drop (remove) it, which reduces the cost of memory management during runtime. - -The obsolence of garbage collector then enhance and speed up performance, which make this language become one of the top choices for 2021. - ---- - -#### Reference - -- https://stackoverflow.blog/2020/01/20/what-is-rust-and-why-is-it-so-popular/ -- https://serokell.io/blog/rust-guide -- https://blog.rust-lang.org/2021/05/11/edition-2021.html -- https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/ diff --git a/notes/Micro Frontends.md b/notes/Micro Frontends.md deleted file mode 100644 index 67962c9f7..000000000 --- a/notes/Micro Frontends.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: null -description: null -date: null -tags: - - micro-frontend -redirect: - - /lNA1ug ---- - -### What is Micro-frontend? - -An architectural style where independently deliverable frontend applications are composed into a greater whole - -**Benefits** - -- Smaller, more cohesive and maintainable codebases -- More scalable organisations with decoupled, autonomous teams -- The ability to upgrade, update, or even rewrite parts of the frontend in a more incremental fashion than was previously possible -- Easier maintenance: Keeping frontend repositories small and specialized allows them to be more easily understood, and this simplifies long-term maintenance and testing. - -### Micro-Frontend in actions - -#### Build-time integration - -- Publish each micro frontend as a package and have the container application include them all as library dependencies. - -```js -{ - "name": "@shop/container", - "version": "1.0.0", - "description": "E-commercial website", - "dependencies": { - "@shop/products": "^1.0.0", - "@shop/order": "^1.0.0", - "@shop/user-profile": "^1.0.0" - } -} -``` - -Cons - -- Have to re-compile and release every single micro frontend in order to release a change to any individual part of the product. - -#### Run-time integration via iframes - -- Use iframe to connect other micro frontends. - -```html - -
-