4 lines
23 KiB
JSON
4 lines
23 KiB
JSON
|
||
|
||
|
||
[{"content":"For my first physical server in my life, I got an Mac Mini with M4 and an HDD enclosure.\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/mac_mini_m4/","section":"Projects","summary":"\u003cp\u003eFor my first physical server in my life, I got an Mac Mini with M4 and an HDD enclosure.\u003c/p\u003e","title":"My First Server in Room: Mac Mini + SSD Enclosure","type":"projects"},{"content":"This is a bot that assists in making daily index fund trading decisions.\nIntroduction # This project was inspired by my mother. Over the course of ten years, she watched my father struggle in the stock market. From those hard lessons, she developed her own strategy—one that focuses on the predictable fluctuations in index fund values. Armed with nothing more than paper, a pen, and a calculator, she’s been able to achieve steady profits.\nI believe there’s even more potential here.\nBy digitizing her process and gradually introducing quantifiable algorithms, I hope to both increase efficiency and explore new edges for profitability. My strategy might cause others\u0026rsquo; losses, so this project is private permanently.\nList # Here, I’ll keep track of the to-do list and showcase the results as the project evolves. I’ll also highlight some interesting technical insights along the way.\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/stock_bot/","section":"Projects","summary":"\u003cp\u003eThis is a bot that assists in making daily index fund trading decisions.\u003c/p\u003e\n\n\n\u003ch2 class=\"relative group\"\u003eIntroduction \n \u003cdiv id=\"introduction\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#introduction\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eThis project was inspired by my mother. Over the course of ten years, she watched my father struggle in the stock market. From those hard lessons, she developed her own strategy—one that focuses on the predictable fluctuations in index fund values. Armed with nothing more than paper, a pen, and a calculator, she’s been able to achieve steady profits.\u003c/p\u003e","title":"StockBot","type":"projects"},{"content":" Short-term TODO # 🚧 The Initial Policy implement (Parameterizing transaction variables) ⬜️ The evaluate \u0026amp; logger script ⬜ The automatic scripts with Email Sender deployed on the Server ⬜ Web UI, will not be too complex just a simple one to synchronous my account for customized policy ⬜️ Implement RL algorithms ","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/stock_bot/01_todo/","section":"Projects","summary":"\u003ch2 class=\"relative group\"\u003eShort-term TODO \n \u003cdiv id=\"short-term-todo\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#short-term-todo\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🚧 The Initial Policy implement (Parameterizing transaction variables)\u003c/li\u003e\n\u003cli\u003e⬜️ The evaluate \u0026amp; logger script\u003c/li\u003e\n\u003cli\u003e⬜ The automatic scripts with Email Sender deployed on the Server\u003c/li\u003e\n\u003cli\u003e⬜ Web UI, will not be too complex just a simple one to synchronous my account for customized policy\u003c/li\u003e\n\u003cli\u003e⬜️ Implement RL algorithms\u003c/li\u003e\n\u003c/ul\u003e","title":"TODO List","type":"projects"},{"content":"I don\u0026rsquo;t have a public IP, so my solution is SSH tunnel + reverse Proxy on cloud server.\n🍎Mac Mini Side # As a server, my Mac won\u0026rsquo;t sleep, so change the setting firstly.\nsudo systemsetup -setcomputersleep Never # never sleep sudo systemsetup -setdisplaysleep 10 # display will sleep in 10 min Use autossh to avoid timeout:\nbrew install autossh Add the configuration below in ~/.ssh/config, Mac Mini will send package per 30 seconds to keep the connection alive.\nHost \u0026lt;ip address\u0026gt; ServerAliveInterval 30 ServerAliveCountMax 5 TCPKeepAlive yes Build the connection:\nautossh -M 0 -f -N \\ -i ~/.ssh/id_ed25519 \\ -o \u0026#34;ServerAliveInterval 30\u0026#34; -o \u0026#34;ServerAliveCountMax 3\u0026#34; \\ -R 0.0.0.0:9000:localhost:1313 \\ root@\u0026lt;ip address\u0026gt; autossh -M 0 -f -N -o \u0026#34;ServerAliveInterval 30\u0026#34; -o \u0026#34;ServerAliveCountMax 3\u0026#34; -R 0.0.0.0:9000:localhost:1313 user@\u0026lt;your.server.com\u0026gt; A watchdog script to try reconnection when the network lost(add to LaunchAgent):\n#!/bin/bash while true; do ping -c 1 \u0026lt;ip address\u0026gt; \u0026gt; /dev/null 2\u0026gt;\u0026amp;1 if [ $? -ne 0 ]; then pkill -f autossh autossh -M 0 -f -N -R 0.0.0.0:9000:localhost:1313 \u0026lt;ip address\u0026gt; fi sleep 60 done 💻Server Side # Install and config the Nginx, for me the config file in /etc/nginx/sites-available:\nserver { listen 80; server_name www.\u0026lt;your domain\u0026gt; \u0026lt;your domain\u0026gt;; location / { proxy_pass http://localhost:9000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } To obtain a security certificate, use the certbot:\nsudo apt update sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d swangnice.cn ","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/mac_mini_m4/01_website_hosting/","section":"Projects","summary":"\u003cp\u003eI don\u0026rsquo;t have a public IP, so my solution is SSH tunnel + reverse Proxy on cloud server.\u003c/p\u003e\n\n\n\u003ch2 class=\"relative group\"\u003e🍎Mac Mini Side \n \u003cdiv id=\"mac-mini-side\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#mac-mini-side\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eAs a server, my Mac won\u0026rsquo;t sleep, so change the setting firstly.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003esudo systemsetup -setcomputersleep Never # never sleep\nsudo systemsetup -setdisplaysleep 10 # display will sleep in 10 min\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eUse autossh to avoid timeout:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ebrew install autossh\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAdd the configuration below in \u003ccode\u003e~/.ssh/config\u003c/code\u003e, Mac Mini will send package per 30 seconds to keep the connection alive.\u003c/p\u003e","title":"Website Setup","type":"projects"},{"content":" Hardware # I went with the UNITEK 3373BBK for one of my drive enclosures—and honestly, it wasn’t the best decision.\nThe first big letdown? The bandwidth tops out at just 5Gbps. That’s fine for basic tasks, but definitely underwhelming if you’re dealing with high-speed storage or large file transfers.\nEven worse, it doesn’t support S.M.A.R.T passthrough, which makes monitoring drive health a hassle. That was a big deal-breaker for me.\nStill, none of the other options really fit my expectations either. One day, I might just go all-in and make my own enclosure—design the PCB, write the firmware, the whole deal. Maybe not today… but someday.\ndiskutil list Solution: HFS+ + SMB3.0, 客户端设置“延迟加载目录”或“按需索引”\ndiskutil list\nsudo smartctl -a /dev/disk2 brew install smartmontools\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/mac_mini_m4/02_nas/","section":"Projects","summary":"\u003ch2 class=\"relative group\"\u003eHardware \n \u003cdiv id=\"hardware\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#hardware\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eI went with the UNITEK 3373BBK for one of my drive enclosures—and honestly, it wasn’t the best decision.\u003c/p\u003e\n\u003cp\u003eThe first big letdown? The bandwidth tops out at just 5Gbps. That’s fine for basic tasks, but definitely underwhelming if you’re dealing with high-speed storage or large file transfers.\u003c/p\u003e\n\u003cp\u003eEven worse, it doesn’t support S.M.A.R.T passthrough, which makes monitoring drive health a hassle. That was a big deal-breaker for me.\u003c/p\u003e","title":"NAS: Network Attachment Storage","type":"projects"},{"content":"This section will feature occasional showcases of my technical achievements—focused purely on the engineering side, not the income.\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/stock_bot/02_results/","section":"Projects","summary":"\u003cp\u003eThis section will feature occasional showcases of my technical achievements—focused purely on the engineering side, not the income.\u003c/p\u003e","title":"Showcases","type":"projects"},{"content":"Install dependence of gitea:\nbrew install git brew install gitea Start the configuration page of Gitea:\ngitea web Install MySQL:\nbrew install mysql brew services start mysql Login MySQL and create the database and user:\nmysql -u root Then, execute:\nCREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER \u0026#39;gitea\u0026#39;@\u0026#39;localhost\u0026#39; IDENTIFIED BY \u0026#39;\u0026lt;yourpassword\u0026gt;\u0026#39;; GRANT ALL PRIVILEGES ON gitea.* TO \u0026#39;gitea\u0026#39;@\u0026#39;localhost\u0026#39;; FLUSH PRIVILEGES; CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER \u0026lsquo;gitea\u0026rsquo;@\u0026rsquo;localhost\u0026rsquo; IDENTIFIED BY \u0026lsquo;gitea\u0026rsquo;; GRANT ALL PRIVILEGES ON gitea.* TO \u0026lsquo;gitea\u0026rsquo;@\u0026rsquo;localhost\u0026rsquo;; FLUSH PRIVILEGES;\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/mac_mini_m4/03_gitea/","section":"Projects","summary":"\u003cp\u003eInstall dependence of gitea:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ebrew install git\nbrew install gitea\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eStart the configuration page of Gitea:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003egitea web\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eInstall MySQL:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ebrew install mysql\nbrew services start mysql\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eLogin MySQL and create the database and user:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emysql -u root\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThen, execute:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eCREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;\nCREATE USER \u0026#39;gitea\u0026#39;@\u0026#39;localhost\u0026#39; IDENTIFIED BY \u0026#39;\u0026lt;yourpassword\u0026gt;\u0026#39;;\nGRANT ALL PRIVILEGES ON gitea.* TO \u0026#39;gitea\u0026#39;@\u0026#39;localhost\u0026#39;;\nFLUSH PRIVILEGES;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eCREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;\nCREATE USER \u0026lsquo;gitea\u0026rsquo;@\u0026rsquo;localhost\u0026rsquo; IDENTIFIED BY \u0026lsquo;gitea\u0026rsquo;;\nGRANT ALL PRIVILEGES ON gitea.* TO \u0026lsquo;gitea\u0026rsquo;@\u0026rsquo;localhost\u0026rsquo;;\nFLUSH PRIVILEGES;\u003c/p\u003e","title":"My Own Code Vault: Gitea on Mac Mini","type":"projects"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/projects/embedded/","section":"Projects","summary":"","title":"Fancy Things on Boards","type":"projects"},{"content":"I’ve recently been exploring the world of self-hosted solutions, and it’s nothing short of amazing. There are some great collections out there that showcase powerful, privacy-respecting tools you can run on your own hardware:\nA collection on GitHub selfh.st ❓ Why Self-Host? # I enjoy automating tasks and making my life smarter with scripts and small tools. Having control over the services I use, running them on my own hardware, and customizing everything to suit my needs—it’s both empowering and educational.\nI’ll use this space to document the projects I build and share what I learn along the way.\nList # ","date":"20 September 2024","externalUrl":null,"permalink":"/projects/self_host/","section":"Projects","summary":"\u003cp\u003eI’ve recently been exploring the world of self-hosted solutions, and it’s nothing short of amazing. There are some great collections out there that showcase powerful, privacy-respecting tools you can run on your own hardware:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/awesome-selfhosted/awesome-selfhosted\" target=\"_blank\"\u003eA collection on GitHub\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://selfh.st/\" target=\"_blank\"\u003eselfh.st\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch2 class=\"relative group\"\u003e❓ Why Self-Host? \n \u003cdiv id=\"-why-self-host\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#-why-self-host\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003cp\u003eI enjoy automating tasks and making my life smarter with scripts and small tools. Having control over the services I use, running them on my own hardware, and customizing everything to suit my needs—it’s both empowering and educational.\u003c/p\u003e","title":"Self-host Projects","type":"projects"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/ai/","section":"Tags","summary":"","title":"AI","type":"tags"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/cheat_sheet/c/","section":"Notes","summary":"","title":"C","type":"notes"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/cheat_sheet/cpp/","section":"Notes","summary":"","title":"C++","type":"notes"},{"content":"Here’s a cheat sheet of some programming languages, tools, and libraries that I use often—but somehow always forget.\n","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/cheat_sheet/","section":"Notes","summary":"\u003cp\u003eHere’s a cheat sheet of some programming languages, tools, and libraries that I use often—but somehow always forget.\u003c/p\u003e","title":"Cheat Sheets","type":"notes"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/","section":"Notes","summary":"","title":"Coding","type":"notes"},{"content":" submodule # Commit # Add date and time in commit messages: git commit -m \u0026#34;$(date \u0026#39;+%Y-%m-%d %H:%M:%S\u0026#39;)\u0026#34; ","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/cheat_sheet/git/","section":"Notes","summary":"\u003ch2 class=\"relative group\"\u003esubmodule \n \u003cdiv id=\"submodule\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#submodule\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\n\n\u003ch2 class=\"relative group\"\u003eCommit \n \u003cdiv id=\"commit\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#commit\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eAdd date and time in commit messages:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit commit -m \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003edate \u003cspan class=\"s1\"\u003e\u0026#39;+%Y-%m-%d %H:%M:%S\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"Git","type":"notes"},{"content":" This is My Page # ","date":"20 September 2024","externalUrl":null,"permalink":"/","section":"Home Page","summary":"\u003ch3 id=\"typeit-6fb22d3943ec7794c447a8e7c1bb77a4\"\u003e\u003c/h3\u003e\n\n\u003cscript\u003e\n document.addEventListener(\"DOMContentLoaded\", function () {\n new TypeIt(\"#typeit-6fb22d3943ec7794c447a8e7c1bb77a4\", {\n strings: [\"\",\"Welcome to my website! I'm really happy you stopped by.\",\"\"],\n speed: 100 ,\n lifeLike: true ,\n startDelay: 0 ,\n breakLines: true ,\n waitUntilVisible: true ,\n loop: false \n }).go();\n });\n\u003c/script\u003e\n\n\n\u003ch1 class=\"relative group\"\u003eThis is My Page \n \u003cdiv id=\"this-is-my-page\" class=\"anchor\"\u003e\u003c/div\u003e\n \n \u003cspan\n class=\"absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100\"\u003e\n \u003ca class=\"group-hover:text-primary-300 dark:group-hover:text-neutral-700\"\n style=\"text-decoration-line: none !important;\" href=\"#this-is-my-page\" aria-label=\"Anchor\"\u003e#\u003c/a\u003e\n \u003c/span\u003e \n \n\u003c/h1\u003e","title":"Home Page","type":"page"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/series/my-first-server-in-room/","section":"Series","summary":"","title":"My First Server in Room","type":"series"},{"content":"Personal notes, may not be readable.\n","date":"20 September 2024","externalUrl":null,"permalink":"/notes/","section":"Notes","summary":"\u003cp\u003ePersonal notes, may not be readable.\u003c/p\u003e","title":"Notes","type":"notes"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/ongoing/","section":"Tags","summary":"","title":"Ongoing","type":"tags"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/original/","section":"Tags","summary":"","title":"Original","type":"tags"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/private/","section":"Tags","summary":"","title":"Private","type":"tags"},{"content":"This is the Projects page, where I keep track of all my personal and collaborative work.\nI use several tags to describe the status and nature of each project:\nPrivate/ Public: Private projects won’t reveal too many details, but I’ll still document the process, to-do lists, and partial results. For Public projects, I aim to share as much as possible — from design to implementation.\nIdea, Ongoing, Improving, Archived: These tags indicate the current state of a project — whether it’s just a thought, actively being developed, being refined, or no longer maintained.\nOriginal, Reproduce: Original means the project was initiated and designed by me. Reproduce refers to work based on existing ideas, papers, or open-source projects — typically with modifications or improvements.\n\u0026lt;Tags with other topic\u0026gt;: Some projects are interdisciplinary. Additional tags will be added to reflect relevant topics, but each project will be placed under the one category it’s most closely related to.\n","date":"20 September 2024","externalUrl":null,"permalink":"/projects/","section":"Projects","summary":"\u003cp\u003eThis is the Projects page, where I keep track of all my personal and collaborative work.\u003c/p\u003e\n\u003cp\u003eI use several tags to describe the status and nature of each project:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ePrivate\u003c/code\u003e/ \u003ccode\u003ePublic\u003c/code\u003e: Private projects won’t reveal too many details, but I’ll still document the process, to-do lists, and partial results. For Public projects, I aim to share as much as possible — from design to implementation.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eIdea\u003c/code\u003e, \u003ccode\u003eOngoing\u003c/code\u003e, \u003ccode\u003eImproving\u003c/code\u003e, \u003ccode\u003eArchived\u003c/code\u003e: These tags indicate the current state of a project — whether it’s just a thought, actively being developed, being refined, or no longer maintained.\u003c/p\u003e","title":"Projects","type":"projects"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/public/","section":"Tags","summary":"","title":"Public","type":"tags"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/notes/coding/cheat_sheet/python/","section":"Notes","summary":"","title":"Python","type":"notes"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/series/stockbot/","section":"Series","summary":"","title":"StockBot","type":"series"},{"content":"","date":"20 September 2024","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"}] |