├── data └── .gitkeep ├── MP3_NEW └── .gitkeep ├── backup └── .gitkeep ├── lint.sh ├── requirements.txt ├── daily ├── duolingo.py ├── __init__.py ├── shanbay.py ├── from_issues.py ├── config.py ├── cichang.py └── utils.py ├── LICENSE ├── .github └── workflows │ ├── get_up.yml │ ├── bookmark.yml │ ├── replace_readme.yml │ └── run_daily.yml ├── .gitignore ├── make_bookmark.py ├── main.py ├── get_up.py ├── get_daily.py ├── bookmark_2021.md ├── bookmark_2022.md └── README.md /data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MP3_NEW/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backup/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lint.sh: -------------------------------------------------------------------------------- 1 | black . 2 | isort --profile black **/*.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | PyGithub 2 | requests 3 | pendulum 4 | -------------------------------------------------------------------------------- /daily/duolingo.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | 4 | def _get_duolingo_session_and_name(user_name, password): 5 | s = requests.Session() 6 | r = s.post( 7 | "https://www.duolingo.com/login", 8 | params={"login": user_name, "password": password}, 9 | ) 10 | if r.status_code != 200: 11 | raise Exception("Login failed") 12 | name = r.json()["username"] 13 | return s, name 14 | 15 | 16 | def get_duolingo_daily(user_name, password): 17 | s, name = _get_duolingo_session_and_name(user_name, password) 18 | r = s.get(f"https://www.duolingo.com/users/{name}") 19 | if r.status_code != 200: 20 | raise Exception("Get profile failed") 21 | data = r.json() 22 | 23 | is_today_check = data["streak_extended_today"] 24 | streak = data["site_streak"] 25 | lauguage = data["learning_language"] 26 | total = data["language_data"].get(lauguage, {}).get("level_progress", 0) 27 | return total, streak, is_today_check 28 | -------------------------------------------------------------------------------- /daily/__init__.py: -------------------------------------------------------------------------------- 1 | from .cichang import get_cichang_daily 2 | from .config import MY_CICHANG_URL, MY_DUOLINGO_URL, MY_SHANBAY_URL 3 | from .duolingo import get_duolingo_daily 4 | from .from_issues import get_info_from_issue_comments 5 | from .shanbay import get_shanbay_daily 6 | 7 | MY_STATUS_DICT_FROM_API = { 8 | # TODO url 9 | "扇贝": {"daily_func": get_shanbay_daily, "url": MY_SHANBAY_URL, "unit_str": " (天)"}, 10 | "多邻国": { 11 | "daily_func": get_duolingo_daily, 12 | "url": MY_DUOLINGO_URL, 13 | "unit_str": " (点)", 14 | }, 15 | "词场": {"daily_func": get_cichang_daily, "url": MY_CICHANG_URL, "unit_str": " (天)"}, 16 | } 17 | 18 | MY_STATUS_DICT_FROM_COMMENTS = { 19 | "俯卧撑": {"daily_func": get_info_from_issue_comments, "unit_str": " (个)"}, 20 | "冥想": {"daily_func": get_info_from_issue_comments, "unit_str": " (分钟)"}, 21 | "早起": {"daily_func": get_info_from_issue_comments, "unit_str": " (天)"}, 22 | "GTD": {"daily_func": get_info_from_issue_comments, "unit_str": " (个)"}, 23 | "周记": {"daily_func": get_info_from_issue_comments, "unit_str": " (周)"}, 24 | } 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 yihong 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/get_up.yml: -------------------------------------------------------------------------------- 1 | name: GET UP 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | message: 7 | description: 'weather message' 8 | required: false 9 | 10 | jobs: 11 | sync: 12 | name: Build 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v2 17 | - name: Set up Python 18 | uses: actions/setup-python@v1 19 | with: 20 | python-version: 3.6 21 | - name: Configure pip cache 22 | uses: actions/cache@v1 23 | id: pip-cache 24 | with: 25 | path: venv 26 | key: pip-1-${{ hashFiles('**/requirements.txt') }} 27 | restore-keys: | 28 | pip- 29 | - name: Install dependencies 30 | run: | 31 | python -m pip install --upgrade pip 32 | python -m venv venv 33 | source venv/bin/activate 34 | pip install -r requirements.txt 35 | if: steps.pip-cache.outputs.cache-hit != 'true' 36 | 37 | - name: GET UP 38 | run: | 39 | source venv/bin/activate 40 | python get_up.py ${{ secrets.G_T }} ${{ github.repository }} --weather_message ": ${{ github.event.inputs.message }}" --tele_token ${{ secrets.TELE_TOKEN }} --tele_chat_id ${{ secrets.TELE_CHAT_ID }} 41 | -------------------------------------------------------------------------------- /.github/workflows/bookmark.yml: -------------------------------------------------------------------------------- 1 | name: Bookmark 2 | 3 | on: 4 | workflow_dispatch: 5 | issue_comment: 6 | types: [created, edited, deleted] 7 | 8 | env: 9 | GITHUB_NAME: yihong0618 10 | GITHUB_EMAIL: zouzou0208@gmail.com 11 | BOOKMARK_ISSUE_ID: 21 12 | 13 | jobs: 14 | sync: 15 | name: Build 16 | runs-on: ubuntu-latest 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v2 20 | - name: Set up Python 21 | uses: actions/setup-python@v1 22 | with: 23 | python-version: 3.6 24 | - name: Configure pip cache 25 | uses: actions/cache@v1 26 | id: pip-cache 27 | with: 28 | path: venv 29 | key: pip-1-${{ hashFiles('**/requirements.txt') }} 30 | restore-keys: | 31 | pip- 32 | - name: Install dependencies 33 | run: | 34 | python -m pip install --upgrade pip 35 | python -m venv venv 36 | source venv/bin/activate 37 | pip install -r requirements.txt 38 | if: steps.pip-cache.outputs.cache-hit != 'true' 39 | 40 | - name: Bookmark 41 | run: | 42 | source venv/bin/activate 43 | python make_bookmark.py ${{ secrets.G_T }} ${{ github.repository }} 44 | if: ${{ github.event.issue.number }} == ${{ env.BOOKMARK_ISSUE_ID }} 45 | - name: Push new Bookmark 46 | uses: github-actions-x/commit@v2.6 47 | with: 48 | github-token: ${{ secrets.G_T }} 49 | commit-message: "Replace bookmark" 50 | files: . 51 | rebase: 'true' 52 | name: yihong0618 53 | email: zouzou0208@gmail.com 54 | -------------------------------------------------------------------------------- /.github/workflows/replace_readme.yml: -------------------------------------------------------------------------------- 1 | name: Replace README 2 | 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | test: 7 | description: 'Test' 8 | required: false 9 | issue_comment: 10 | types: [created, edited] 11 | 12 | env: 13 | GITHUB_NAME: yihong0618 14 | GITHUB_EMAIL: zouzou0208@gmail.com 15 | 16 | jobs: 17 | sync: 18 | name: Build 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Checkout 22 | uses: actions/checkout@v2 23 | - name: Set up Python 24 | uses: actions/setup-python@v1 25 | with: 26 | python-version: 3.6 27 | - name: Configure pip cache 28 | uses: actions/cache@v1 29 | id: pip-cache 30 | with: 31 | path: venv 32 | key: pip-1-${{ hashFiles('**/requirements.txt') }} 33 | restore-keys: | 34 | pip- 35 | - name: Install dependencies 36 | run: | 37 | python -m pip install --upgrade pip 38 | python -m venv venv 39 | source venv/bin/activate 40 | pip install -r requirements.txt 41 | if: steps.pip-cache.outputs.cache-hit != 'true' 42 | - name: Replace README 43 | run: | 44 | source venv/bin/activate 45 | python main.py ${{ secrets.G_T }} ${{ github.repository }} --issue_numbe '${{ github.event.issue.number }}' --issue_label_name '${{ github.event.issue.labels[0].name }}' 46 | if: ${{ github.event.issue.number }} != ${{ env.BOOKMARK_ISSUE_ID }} 47 | - name: Push new README 48 | uses: github-actions-x/commit@v2.6 49 | with: 50 | github-token: ${{ secrets.G_T }} 51 | commit-message: "Replace README" 52 | files: README.md 53 | rebase: 'true' 54 | name: yihong0618 55 | email: zouzou0208@gmail.com 56 | -------------------------------------------------------------------------------- /.github/workflows/run_daily.yml: -------------------------------------------------------------------------------- 1 | name: Get Daily 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | env: 7 | GITHUB_NAME: yihong0618 8 | GITHUB_EMAIL: zouzou0208@gmail.com 9 | 10 | jobs: 11 | build: 12 | name: Build 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: My GitHub Status 17 | uses: yihong0618/github-readme-stats@main 18 | with: 19 | TELEGRAM_TOKEN: ${{ secrets.TELE_TOKEN }} 20 | TELEGRAM_CHAT_ID: ${{ secrets.TELE_CHAT_ID }} 21 | 22 | - name: Set up Python 23 | uses: actions/setup-python@v1 24 | with: 25 | python-version: 3.6 26 | - name: Configure pip cache 27 | uses: actions/cache@v1 28 | id: pip-cache 29 | with: 30 | path: venv 31 | key: pip-1-${{ hashFiles('**/requirements.txt') }} 32 | restore-keys: | 33 | pip- 34 | - name: Install dependencies 35 | run: | 36 | python -m pip install --upgrade pip 37 | python -m venv venv 38 | source venv/bin/activate 39 | pip install -r requirements.txt 40 | if: steps.pip-cache.outputs.cache-hit != 'true' 41 | 42 | - name: Generate new md 43 | run: | 44 | source venv/bin/activate 45 | python get_daily.py ${{ secrets.DUOLINGO_USERNAME }} ${{ secrets.DUOLINGO_PASSWORD }} ${{ secrets.CICHANG_USERNAME }} ${{ secrets.CICHANG_PASSWORD }} ${{ secrets.G_T }} ${{ github.repository }} 46 | - name: Push README 47 | uses: github-actions-x/commit@v2.6 48 | with: 49 | github-token: ${{ secrets.G_T }} 50 | commit-message: "Refresh README (2021 NUM Daily)" 51 | files: README.md 52 | rebase: "true" 53 | name: ${{ env.GITHUB_NAME }} 54 | email: ${{ env.GITHUB_EMAIL }} 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Editors 2 | .vscode/ 3 | .idea/ 4 | 5 | # Vagrant 6 | .vagrant/ 7 | 8 | # Mac/OSX 9 | .DS_Store 10 | 11 | # Windows 12 | Thumbs.db 13 | 14 | # Source for the following rules: https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore 15 | # Byte-compiled / optimized / DLL files 16 | __pycache__/ 17 | *.py[cod] 18 | *$py.class 19 | 20 | # C extensions 21 | *.so 22 | 23 | # Distribution / packaging 24 | .Python 25 | build/ 26 | develop-eggs/ 27 | dist/ 28 | downloads/ 29 | eggs/ 30 | .eggs/ 31 | lib/ 32 | lib64/ 33 | parts/ 34 | sdist/ 35 | var/ 36 | wheels/ 37 | *.egg-info/ 38 | .installed.cfg 39 | *.egg 40 | MANIFEST 41 | 42 | # PyInstaller 43 | # Usually these files are written by a python script from a template 44 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 45 | *.manifest 46 | *.spec 47 | 48 | # Installer logs 49 | pip-log.txt 50 | pip-delete-this-directory.txt 51 | 52 | # Unit test / coverage reports 53 | htmlcov/ 54 | .tox/ 55 | .nox/ 56 | .coverage 57 | .coverage.* 58 | .cache 59 | nosetests.xml 60 | coverage.xml 61 | *.cover 62 | .hypothesis/ 63 | .pytest_cache/ 64 | 65 | # Translations 66 | *.mo 67 | *.pot 68 | 69 | # Django stuff: 70 | *.log 71 | local_settings.py 72 | db.sqlite3 73 | 74 | # Flask stuff: 75 | instance/ 76 | .webassets-cache 77 | 78 | # Scrapy stuff: 79 | .scrapy 80 | 81 | # Sphinx documentation 82 | docs/_build/ 83 | 84 | # PyBuilder 85 | target/ 86 | 87 | # Jupyter Notebook 88 | .ipynb_checkpoints 89 | 90 | # IPython 91 | profile_default/ 92 | ipython_config.py 93 | 94 | # pyenv 95 | .python-version 96 | 97 | # celery beat schedule file 98 | celerybeat-schedule 99 | 100 | # SageMath parsed files 101 | *.sage.py 102 | 103 | # Environments 104 | .env 105 | .venv 106 | env/ 107 | venv/ 108 | ENV/ 109 | env.bak/ 110 | venv.bak/ 111 | 112 | # Spyder project settings 113 | .spyderproject 114 | .spyproject 115 | 116 | # Rope project settings 117 | .ropeproject 118 | 119 | # mkdocs documentation 120 | /site 121 | 122 | # mypy 123 | .mypy_cache/ 124 | .dmypy.json 125 | dmypy.json -------------------------------------------------------------------------------- /make_bookmark.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import pendulum 3 | from main import login 4 | 5 | YEAR = pendulum.now().year 6 | 7 | # Bookmark issue id 8 | BOOKMARK_ISSUE_NUMBER = 21 9 | 10 | BOOKMARK_FILE_NAME = f"bookmark_{YEAR}.md" 11 | 12 | BOOKMARK_FILE_HEAD = ( 13 | f"# 我的 [{YEAR}](https://github.com/yihong0618/2021/issues/21) 的书签\n\n" 14 | ) 15 | BOOKMARK_STAT_HEAD = "| Name | Link | Add | Update | Has_file | \n | ---- | ---- | ---- | ---- | ---- |\n" 16 | BOOKMARK_STAT_TEMPLATE = "| {name} | {link} | {add} | {update} | {has_file} |\n" 17 | 18 | 19 | def make_bookmark_str(name, link, add, update, has_file): 20 | # format 21 | return BOOKMARK_STAT_TEMPLATE.format( 22 | name=name, 23 | link=link, 24 | add=add, 25 | update=update, 26 | has_file=has_file, 27 | ) 28 | 29 | 30 | def main(github_token, repo_name): 31 | u = login(github_token) 32 | repo = u.get_repo(repo_name) 33 | bookmark_issue = repo.get_issue(BOOKMARK_ISSUE_NUMBER) 34 | comments = bookmark_issue.get_comments() 35 | 36 | bookmark_str = BOOKMARK_STAT_HEAD 37 | for c in comments: 38 | has_file = False 39 | comment_str_list = c.body.splitlines() 40 | # drop the empty line 41 | comment_str_list = [c for c in comment_str_list if c] 42 | if len(comment_str_list) < 2: 43 | continue 44 | name, link = comment_str_list[0], comment_str_list[1] 45 | if link.find(f"{repo_name}/files") != -1: 46 | has_file = True 47 | bookmark_str += make_bookmark_str( 48 | f"[{name}]({link})", 49 | c.html_url, 50 | str(c.created_at)[:10], 51 | str(c.updated_at)[:10], 52 | has_file, 53 | ) 54 | with open(BOOKMARK_FILE_NAME, "w+") as f: 55 | f.write(BOOKMARK_FILE_HEAD) 56 | f.write(bookmark_str) 57 | 58 | 59 | if __name__ == "__main__": 60 | parser = argparse.ArgumentParser() 61 | parser.add_argument("github_token", help="github_token") 62 | parser.add_argument("repo_name", help="repo_name") 63 | options = parser.parse_args() 64 | main(options.github_token, options.repo_name) 65 | -------------------------------------------------------------------------------- /daily/shanbay.py: -------------------------------------------------------------------------------- 1 | import pendulum 2 | import requests 3 | 4 | from .config import MY_SHANBAY_USER_NAME, SHANBAY_CALENDAR_API 5 | 6 | 7 | def _get_shanbay_streak(end_date=pendulum.now("Asia/Shanghai"), streak=0): 8 | start_date = end_date.start_of("month") 9 | r = requests.get( 10 | SHANBAY_CALENDAR_API.format( 11 | user_name=MY_SHANBAY_USER_NAME, 12 | start_date=start_date.to_date_string(), 13 | end_date=end_date.to_date_string(), 14 | ) 15 | ) 16 | if not r.ok: 17 | raise Exception("Can not get days from shanbay API") 18 | 19 | data = r.json() 20 | logs = data["logs"] 21 | if not logs: 22 | return streak 23 | periods = list(pendulum.period(start_date, end_date.subtract(days=1))) 24 | periods.sort(reverse=True) 25 | 26 | log_dates = [i["date"] for i in logs] 27 | # if today id done 28 | if end_date.to_date_string() in log_dates: 29 | streak += 1 30 | 31 | # for else if not break not else 32 | for p in periods: 33 | if p.to_date_string() not in log_dates: 34 | break 35 | streak += 1 36 | else: 37 | streak = _get_shanbay_streak( 38 | start_date.subtract(months=1).end_of("month"), streak=streak 39 | ) 40 | return streak 41 | 42 | 43 | def get_shanbay_daily(*args): 44 | """ 45 | first get today status 46 | """ 47 | end_date = pendulum.now("Asia/Shanghai") 48 | start_date = end_date.start_of("month") 49 | r = requests.get( 50 | SHANBAY_CALENDAR_API.format( 51 | user_name=MY_SHANBAY_USER_NAME, 52 | start_date=start_date.to_date_string(), 53 | end_date=end_date.to_date_string(), 54 | ) 55 | ) 56 | if not r.ok: 57 | raise Exception("Can not get days from shanbay API") 58 | 59 | data = r.json() 60 | is_today_check = False 61 | total_days = data.get("checkin_days_num", 0) 62 | log_dates = [i["date"] for i in data["logs"]] 63 | if end_date.to_date_string() in log_dates: 64 | is_today_check = True 65 | streak = _get_shanbay_streak() 66 | return total_days, streak, is_today_check 67 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import argparse 3 | from datetime import datetime 4 | 5 | from github import Github 6 | 7 | from daily.config import LABEL_DICT, MY_BLOG_REPO 8 | from daily.utils import ( 9 | replace_readme_comments, 10 | make_blog_issues_str, 11 | make_base_issues_comments_str, 12 | make_cook_issue_table, 13 | ) 14 | 15 | 16 | def get_me(user): 17 | return user.get_user().login 18 | 19 | 20 | def login(token): 21 | return Github(token) 22 | 23 | 24 | def main(github_token, repo_name, issue_number, issue_label_name): 25 | # issue_number for future use 26 | u = login(github_token) 27 | me = get_me(u) 28 | if issue_number: 29 | labels = LABEL_DICT.get(issue_label_name) 30 | if not labels: 31 | return 32 | issues = u.get_repo(repo_name).get_issues(labels=labels.get("label_list", [])) 33 | parse_func = make_base_issues_comments_str 34 | # only Cook now, if one more, refactor it 35 | if issue_label_name == "Cook": 36 | parse_func = make_cook_issue_table 37 | comment_str = parse_func(me, issues) 38 | comments_name = labels.get("comment_name", "") 39 | else: 40 | # from 2021 just for me(yihong0618), if you want to use you can delete the lines below 41 | since = datetime(2021, 1, 1) 42 | issues = u.get_repo(MY_BLOG_REPO).get_issues(since=since, creator=me) 43 | comment_str = make_blog_issues_str(since, issues) 44 | comments_name = "my_blog" 45 | replace_readme_comments("README.md", comment_str, comments_name) 46 | 47 | 48 | if __name__ == "__main__": 49 | parser = argparse.ArgumentParser() 50 | parser.add_argument("github_token", help="github_token") 51 | parser.add_argument("repo_name", help="repo_name") 52 | parser.add_argument( 53 | "--issue_number", help="issue_number", default=None, required=False 54 | ) 55 | parser.add_argument( 56 | "--issue_label_name", help="issue_label_name", default=None, required=False 57 | ) 58 | options = parser.parse_args() 59 | main( 60 | options.github_token, 61 | options.repo_name, 62 | options.issue_number, 63 | options.issue_label_name, 64 | ) 65 | -------------------------------------------------------------------------------- /daily/from_issues.py: -------------------------------------------------------------------------------- 1 | from collections import defaultdict 2 | 3 | import pendulum 4 | from .utils import isMe 5 | 6 | 7 | def get_info_from_issue_comments(me, issues, map_func, reduce_func=sum): 8 | """ 9 | also return url for formation 10 | """ 11 | calendar_list = [] 12 | data_list = [] 13 | url = "" 14 | month_summary_dict = defaultdict(int) 15 | data = None 16 | for issue in issues: 17 | if not url: 18 | url = issue.html_url 19 | comments = issue.get_comments() 20 | for c in comments: 21 | if not isMe(c, me): 22 | continue 23 | try: 24 | data = map_func(c) 25 | data_list.append(data) 26 | except: 27 | # becaue the format maybe wrong just pass 28 | continue 29 | calendar_list.append(c.created_at) 30 | month = pendulum.instance(c.created_at).in_timezone("Asia/Shanghai").month 31 | if map_func == len: 32 | month_summary_dict[month] += 1 33 | else: 34 | month_summary_dict[month] += data 35 | end_date = pendulum.now("Asia/Shanghai") 36 | calendar_str_list = [ 37 | pendulum.instance(i).in_timezone("Asia/Shanghai").to_date_string() 38 | for i in calendar_list 39 | ] 40 | is_today_check = False 41 | streak = 0 42 | if end_date.to_date_string() in calendar_str_list: 43 | is_today_check = True 44 | streak += 1 45 | calendar_str_list.pop() 46 | calendar_list.pop() 47 | if not calendar_list: 48 | return data, streak, is_today_check, url 49 | # fuck pendulum's period 50 | periods = list( 51 | pendulum.period( 52 | pendulum.instance(calendar_list[0]).in_timezone("Asia/Shanghai"), end_date 53 | ) 54 | ) 55 | periods = [p.to_date_string() for p in periods] 56 | # fix pendulum's period bug I don't know why ???? the period are different 57 | if end_date.to_date_string() in periods: 58 | periods.pop() 59 | for p in periods[::-1]: 60 | if p not in calendar_str_list: 61 | break 62 | streak += 1 63 | # format to int 64 | data = int(reduce_func(data_list)) 65 | return data, streak, is_today_check, url, month_summary_dict 66 | -------------------------------------------------------------------------------- /daily/config.py: -------------------------------------------------------------------------------- 1 | COOK_LABEL_LIST = [ 2 | "Cook", 3 | ] 4 | MOVIE_LABEL_LIST = [ 5 | "Movie", 6 | ] 7 | READ_LABEL_LIST = [ 8 | "Read", 9 | ] 10 | DRAMA_LABEL_LIST = [ 11 | "Drama", 12 | ] 13 | PUSHUP_LABEL_LIST = [ 14 | "PushUps", 15 | ] 16 | BANGUMI_LABEL_LIST = [ 17 | "Bangumi", 18 | ] 19 | GAME_LABEL_LIST = [ 20 | "Game", 21 | ] 22 | MONEY_LABEL_LIST = [ 23 | "Money", 24 | ] 25 | MEDITATION_LABEL_LIST = [ 26 | "Meditation", 27 | ] 28 | MORNING_LABEL_LIST = [ 29 | "Morning", 30 | ] 31 | GTD_LABEL_LIST = [ 32 | "GTD", 33 | ] 34 | 35 | WEEKLY_LABEL_LIST = [ 36 | "Weekly", 37 | ] 38 | 39 | MY_BLOG_REPO = "yihong0618/gitblog" 40 | GITHUB_README_COMMENTS = ( 41 | "(\n)(.*)(\n)" 42 | ) 43 | 44 | # add new label here 45 | LABEL_DICT = { 46 | "Cook": {"label_list": COOK_LABEL_LIST, "comment_name": "my_cook"}, 47 | "Movie": {"label_list": MOVIE_LABEL_LIST, "comment_name": "my_movie"}, 48 | "Read": {"label_list": READ_LABEL_LIST, "comment_name": "my_read"}, 49 | "Drama": {"label_list": DRAMA_LABEL_LIST, "comment_name": "my_drama"}, 50 | "Bangumi": {"label_list": BANGUMI_LABEL_LIST, "comment_name": "my_bangumi"}, 51 | "Game": {"label_list": GAME_LABEL_LIST, "comment_name": "my_game"}, 52 | } 53 | 54 | 55 | ##### SHANBAY ###### 56 | MY_SHANBAY_USER_NAME = "ufewz" 57 | SHANBAY_CALENDAR_API = "https://apiv3.shanbay.com/uc/checkin/calendar/dates/?user_id={user_name}&start_date={start_date}&end_date={end_date}" 58 | MY_SHANBAY_URL = f"https://web.shanbay.com/web/users/{MY_SHANBAY_USER_NAME}/zone" 59 | 60 | ##### DUO ###### 61 | MY_DUOLINGO_URL = "https://www.duolingo.com/profile/yihong0618" 62 | 63 | ##### CICHANG ###### 64 | MY_CICHANG_URL = "https://twitter.com/yihong06181/status/1359040099107897344?s=20" 65 | 66 | ##### BASE COMMENT TABLE ###### 67 | BASE_ISSUE_STAT_HEAD = "| Name | Start | Update | \n | ---- | ---- | ---- | \n" 68 | BASE_ISSUE_STAT_TEMPLATE = "| {name} | {start} | {update} | \n" 69 | 70 | ##### BLOG COMMENT ###### 71 | BLOG_ISSUE_STAT_HEAD = ( 72 | "| Name | Start | Update | Comments | \n | ---- | ---- | ---- | ---- |\n" 73 | ) 74 | BLOG_ISSUE_STAT_TEMPLATE = "| {name} | {start} | {update} | {comments} | \n" 75 | 76 | 77 | ##### FOOD COMMENT TABLE ###### 78 | FOOD_ISSUE_STAT_HEAD = ( 79 | "| Name | First_date | Last_date | Times | \n | ---- | ---- | ---- | ---- |\n" 80 | ) 81 | FOOD_ISSUE_STAT_TEMPLATE = "| {name} | {first_date} | {last_date} | {times} |\n" 82 | 83 | 84 | ##### Month Summary ###### 85 | MONTH_SUMMARY_HEAD = "| Month | Number | \n | ---- | ---- | \n" 86 | 87 | MONTH_SUMMARY_STAT_TEMPLATE = "| {month} | {number} |\n" 88 | -------------------------------------------------------------------------------- /daily/cichang.py: -------------------------------------------------------------------------------- 1 | import hashlib 2 | import json 3 | 4 | import pendulum 5 | import requests 6 | 7 | HJ_APPKEY = "45fd17e02003d89bee7f046bb494de13" 8 | LOGIN_URL = "https://pass.hujiang.com/Handler/UCenter.json?action=Login&isapp=true&language=zh_CN&password={password}&timezone=8&user_domain=hj&username={user_name}" 9 | COVERT_URL = "https://pass-cdn.hjapi.com/v1.1/access_token/convert" 10 | MY_LOG_URL = "https://cichang.hjapi.com/v3/user/center/?userId={user_id}&startDate={start_date}&endDate={end_date}" 11 | 12 | 13 | def md5_encode(string): 14 | m = hashlib.md5() 15 | m.update(string.encode()) 16 | return m.hexdigest() 17 | 18 | 19 | def _get_cichang_streak(s, user_id, end_date=pendulum.now("Asia/Shanghai"), streak=0): 20 | start_date = end_date.start_of("month") 21 | r = s.get( 22 | MY_LOG_URL.format( 23 | user_id=user_id, 24 | start_date=start_date.to_date_string(), 25 | end_date=end_date.to_date_string(), 26 | ) 27 | ) 28 | if not r.ok: 29 | raise Exception("Can not get days from cichang API") 30 | data = r.json() 31 | logs = data["data"]["studyCountDays"] 32 | if not logs: 33 | return streak 34 | periods = list(pendulum.period(start_date, end_date.subtract(days=1))) 35 | periods.sort(reverse=True) 36 | 37 | # cichang log data like [{'studyCount': 10, 'studyDate': '2021/02/09'}, {'studyCount': 20, 'studyDate': '2021/02/18'}] 38 | log_dates = [i["studyDate"].replace("/", "-") for i in logs] 39 | # if today id done 40 | if end_date.to_date_string() in log_dates: 41 | streak += 1 42 | 43 | # for else if not break not else 44 | for p in periods: 45 | if p.to_date_string() not in log_dates: 46 | break 47 | streak += 1 48 | else: 49 | streak = _get_cichang_streak( 50 | s, user_id, start_date.subtract(months=1).end_of("month"), streak=streak 51 | ) 52 | return streak 53 | 54 | 55 | def login(user_name, password): 56 | s = requests.Session() 57 | password_md5 = md5_encode(password) 58 | r = s.get(LOGIN_URL.format(user_name=user_name, password=password_md5)) 59 | if not r.ok: 60 | raise Exception(f"Someting is wrong to login -- {r.text}") 61 | club_auth_cookie = r.json()["Data"]["Cookie"] 62 | data = {"club_auth_cookie": club_auth_cookie} 63 | headers = {"hj_appkey": HJ_APPKEY, "Content-Type": "application/json"} 64 | # real login to get real token 65 | r = s.post(COVERT_URL, headers=headers, data=json.dumps(data)) 66 | if not r.ok: 67 | raise Exception(f"Get real token failed -- {r.text}") 68 | data = r.json()["data"] 69 | access_token = data["access_token"] 70 | user_id = data["user_id"] 71 | headers["Access-Token"] = access_token 72 | s.headers = headers 73 | return s, user_id 74 | 75 | 76 | def get_cichang_daily(user_name, password): 77 | s, user_id = login(user_name, password) 78 | is_today_check = False 79 | now = pendulum.now("Asia/Shanghai") 80 | end_date = now.to_date_string() 81 | start_date = now.subtract(months=1).to_date_string() 82 | r = s.get( 83 | MY_LOG_URL.format(user_id=user_id, start_date=start_date, end_date=end_date) 84 | ) 85 | data = r.json() 86 | logs = data["data"]["studyCountDays"] 87 | total_days = data["data"]["studyDayCount"] 88 | if logs: 89 | last_day_check = logs[-1]["studyDate"].replace("/", "-") 90 | is_today_check = last_day_check == end_date 91 | streak = _get_cichang_streak(s, user_id) 92 | return total_days, streak, is_today_check 93 | -------------------------------------------------------------------------------- /get_up.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import requests 3 | import pendulum 4 | 5 | 6 | from github import Github 7 | 8 | # 14 for test 12 real get up 9 | GET_UP_ISSUE_NUMBER = 12 10 | GET_UP_MESSAGE_TEMPLATE = ( 11 | "今天的起床时间是--{get_up_time}.\r\n\r\n 起床啦,喝杯咖啡,背个单词,去跑步。\r\n\r\n 今天的一句诗:\r\n {sentence}" 12 | ) 13 | SENTENCE_API = "https://v1.jinrishici.com/all" 14 | DEFAULT_SENTENCE = "赏花归去马如飞\r\n去马如飞酒力微\r\n酒力微醒时已暮\r\n醒时已暮赏花归\r\n" 15 | TIMEZONE = "Asia/Shanghai" 16 | 17 | 18 | def login(token): 19 | return Github(token) 20 | 21 | 22 | def get_one_sentence(): 23 | try: 24 | r = requests.get(SENTENCE_API) 25 | if r.ok: 26 | return r.json().get("content", DEFAULT_SENTENCE) 27 | return DEFAULT_SENTENCE 28 | except: 29 | print("get SENTENCE_API wrong") 30 | return DEFAULT_SENTENCE 31 | 32 | 33 | def get_today_get_up_status(issue): 34 | comments = list(issue.get_comments()) 35 | if not comments: 36 | return False 37 | latest_comment = comments[-1] 38 | now = pendulum.now(TIMEZONE) 39 | latest_day = pendulum.instance(latest_comment.created_at).in_timezone( 40 | "Asia/Shanghai" 41 | ) 42 | is_today = (latest_day.day == now.day) and (latest_day.month == now.month) 43 | return is_today 44 | 45 | 46 | def make_get_up_message(): 47 | sentence = get_one_sentence() 48 | now = pendulum.now(TIMEZONE) 49 | # 3 - 7 means early for me 50 | is_get_up_early = 3 <= now.hour <= 7 51 | get_up_time = now.to_datetime_string() 52 | body = GET_UP_MESSAGE_TEMPLATE.format(get_up_time=get_up_time, sentence=sentence) 53 | return body, is_get_up_early 54 | 55 | 56 | def main(github_token, repo_name, weather_message, tele_token, tele_chat_id): 57 | u = login(github_token) 58 | repo = u.get_repo(repo_name) 59 | issue = repo.get_issue(GET_UP_ISSUE_NUMBER) 60 | is_toady = get_today_get_up_status(issue) 61 | if is_toady: 62 | print("Today I have recorded the wake up time") 63 | return 64 | early_message, is_get_up_early = make_get_up_message() 65 | body = early_message 66 | if weather_message: 67 | weather_message = f"现在的天气是{weather_message}\n" 68 | body = weather_message + early_message 69 | if is_get_up_early: 70 | issue.create_comment(body) 71 | # send to telegram 72 | if tele_token and tele_chat_id: 73 | requests.post( 74 | url="https://api.telegram.org/bot{0}/{1}".format( 75 | tele_token, "sendMessage" 76 | ), 77 | data={ 78 | "chat_id": tele_chat_id, 79 | "text": body, 80 | }, 81 | ) 82 | else: 83 | print("You wake up late") 84 | 85 | 86 | if __name__ == "__main__": 87 | parser = argparse.ArgumentParser() 88 | parser.add_argument("github_token", help="github_token") 89 | parser.add_argument("repo_name", help="repo_name") 90 | parser.add_argument( 91 | "--weather_message", help="weather_message", nargs="?", default="", const="" 92 | ) 93 | parser.add_argument("--tele_token", help="tele_token", nargs="?", default="", const="") 94 | parser.add_argument("--tele_chat_id", help="tele_chat_id", nargs="?", default="", const="") 95 | options = parser.parse_args() 96 | main( 97 | options.github_token, 98 | options.repo_name, 99 | options.weather_message, 100 | options.tele_token, 101 | options.tele_chat_id, 102 | ) 103 | -------------------------------------------------------------------------------- /get_daily.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | from github import Github 4 | 5 | from daily.config import ( 6 | MONTH_SUMMARY_HEAD, 7 | MONTH_SUMMARY_STAT_TEMPLATE, 8 | ) 9 | from daily.utils import replace_readme_comments, LABEL_DAILY_DICT 10 | from daily import MY_STATUS_DICT_FROM_API, MY_STATUS_DICT_FROM_COMMENTS 11 | 12 | 13 | MY_NUMBER_STAT_HEAD = ( 14 | "| Name | Status | Streak | Today? | \n | ---- | ---- | ---- | ---- |\n" 15 | ) 16 | MY_NUMBER_STAT_TEMPLATE = "| {name} | {total} | {streak} | {today} |\n" 17 | 18 | 19 | # this is a tricky -> [a, b][False] => [a] [a, b][True] => [b] 20 | NO_OR_YES_LIST = ["NO", "YES"] 21 | 22 | 23 | def make_stat_str(name, total_str, streak, today_check): 24 | # format 25 | return MY_NUMBER_STAT_TEMPLATE.format( 26 | name=name, 27 | total=total_str, 28 | streak=streak, 29 | today=NO_OR_YES_LIST[today_check], 30 | ) 31 | 32 | 33 | def main( 34 | login_dict, 35 | github_token, 36 | repo_name, 37 | ): 38 | my_num_stat_str = MY_NUMBER_STAT_HEAD 39 | # API STAT STR 40 | for name, value_dict in MY_STATUS_DICT_FROM_API.items(): 41 | try: 42 | url = value_dict.get("url") 43 | md_name = f"[{name}]({url})" 44 | # maybe a better way? 45 | total_data, streak, today_check = value_dict.get("daily_func")( 46 | *login_dict.get(name, tuple()) 47 | ) 48 | total_data_str = str(total_data) + value_dict.get("unit_str", "") 49 | my_num_stat_str += make_stat_str( 50 | md_name, total_data_str, streak, today_check 51 | ) 52 | # just a tricky code for others for use 53 | except Exception as e: 54 | print(e) 55 | continue 56 | 57 | u = Github(github_token) 58 | me = u.get_user().login 59 | # COMMENTS STAT STR 60 | for name, value_dict in MY_STATUS_DICT_FROM_COMMENTS.items(): 61 | try: 62 | labels, map_func, reduce_func = LABEL_DAILY_DICT.get(name) 63 | except: 64 | # tricky for mine 65 | continue 66 | func = value_dict.get("daily_func") 67 | if not func: 68 | break 69 | 70 | issues = u.get_repo(repo_name).get_issues(labels=labels) 71 | total_data, streak, today_check, url, month_summary_dict = func( 72 | me, issues, map_func, reduce_func 73 | ) 74 | # change the issue body for month summary 75 | unit = value_dict.get("unit_str", "") 76 | for i in issues: 77 | body = "" 78 | for b in i.body.splitlines(): 79 | # from the summary table 80 | if b.startswith("|"): 81 | break 82 | body += b 83 | body = body + "\r\n" + make_month_summary_str(month_summary_dict, unit) 84 | # edit this issue body 85 | i.edit(body=body) 86 | name = f"[{name}]({url})" 87 | total_data_str = str(total_data) + unit 88 | my_num_stat_str += make_stat_str(name, total_data_str, streak, today_check) 89 | 90 | replace_readme_comments("README.md", my_num_stat_str, "my_number") 91 | 92 | 93 | def make_month_summary_str(month_summary_dict, unit): 94 | s = MONTH_SUMMARY_HEAD 95 | for m, n in month_summary_dict.items(): 96 | s += MONTH_SUMMARY_STAT_TEMPLATE.format( 97 | month=str(m) + "月", number=str(int(n)) + f" {unit}" 98 | ) 99 | return s 100 | 101 | 102 | if __name__ == "__main__": 103 | parser = argparse.ArgumentParser() 104 | parser.add_argument("duolingo_user_name", help="duolingo_user_name") 105 | parser.add_argument("duolingo_password", help="duolingo_password") 106 | parser.add_argument("cichang_user_name", help="cichang_user_name") 107 | parser.add_argument("cichang_password", help="cichang_password") 108 | parser.add_argument("github_token", help="github_token") 109 | parser.add_argument("repo_name", help="repo_name") 110 | options = parser.parse_args() 111 | # add more login auth info here 112 | login_auth_dict = { 113 | "词场": (options.cichang_user_name, options.cichang_password), 114 | "多邻国": (options.duolingo_user_name, options.duolingo_password), 115 | } 116 | main( 117 | login_auth_dict, 118 | options.github_token, 119 | options.repo_name, 120 | ) 121 | -------------------------------------------------------------------------------- /daily/utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | from collections import defaultdict 3 | from datetime import datetime 4 | 5 | from .config import ( 6 | BASE_ISSUE_STAT_HEAD, 7 | BASE_ISSUE_STAT_TEMPLATE, 8 | BLOG_ISSUE_STAT_HEAD, 9 | BLOG_ISSUE_STAT_TEMPLATE, 10 | FOOD_ISSUE_STAT_HEAD, 11 | FOOD_ISSUE_STAT_TEMPLATE, 12 | GITHUB_README_COMMENTS, 13 | GTD_LABEL_LIST, 14 | MEDITATION_LABEL_LIST, 15 | WEEKLY_LABEL_LIST, 16 | MORNING_LABEL_LIST, 17 | PUSHUP_LABEL_LIST, 18 | ) 19 | 20 | 21 | def isMe(issue, me): 22 | return issue.user.login == me 23 | 24 | 25 | def format_time(time): 26 | return str(time)[:10] 27 | 28 | 29 | def replace_readme_comments(file_name, comment_str, comments_name): 30 | with open(file_name, "r+") as f: 31 | text = f.read() 32 | # regrex sub from github readme comments 33 | text = re.sub( 34 | GITHUB_README_COMMENTS.format(name=comments_name), 35 | r"\1{}\n\3".format(comment_str), 36 | text, 37 | flags=re.DOTALL, 38 | ) 39 | f.seek(0) 40 | f.write(text) 41 | f.truncate() 42 | 43 | 44 | def make_cook_issue_table(me, issues): 45 | comments_str = FOOD_ISSUE_STAT_HEAD 46 | food_dict = defaultdict(lambda: ["", "", 0]) 47 | for issue in issues: 48 | comments = issue.get_comments() 49 | for c in comments: 50 | if not isMe(c, me): 51 | continue 52 | date_str = format_time(c.created_at) 53 | food_list_str = c.body.splitlines()[0] 54 | food_list = food_list_str.split(" ") 55 | for food in food_list: 56 | if food not in food_dict: 57 | food_dict[food][0] = f"[{date_str}]({c.html_url})" 58 | food_dict[food][1] = f"[{date_str}]({c.html_url})" 59 | else: 60 | food_dict[food][1] = f"[{date_str}]({c.html_url})" 61 | food_dict[food][2] += 1 62 | for k, v in food_dict.items(): 63 | comments_str += FOOD_ISSUE_STAT_TEMPLATE.format( 64 | name=k, first_date=v[0], last_date=v[1], times=v[2] 65 | ) 66 | return comments_str 67 | 68 | 69 | def make_base_issues_comments_str(me, issues): 70 | comments_str = BASE_ISSUE_STAT_HEAD 71 | for issue in issues: 72 | comments = issue.get_comments() 73 | for c in comments: 74 | is_me = isMe(c, me) 75 | # for format 76 | if is_me: 77 | name = c.body.splitlines()[0] 78 | comments_str += BASE_ISSUE_STAT_TEMPLATE.format( 79 | name=f"[{name}]({c.html_url})", 80 | start=format_time(c.created_at), 81 | update=format_time(c.updated_at), 82 | ) 83 | return comments_str 84 | 85 | 86 | def make_blog_issues_str(since, issues): 87 | """ 88 | only get this year post 89 | """ 90 | comment_str = BLOG_ISSUE_STAT_HEAD 91 | for issue in issues: 92 | if issue.created_at < since: 93 | continue 94 | comments = issue.get_comments() 95 | comments_count = len(list(comments)) 96 | # min datetime 97 | year = datetime.now().year 98 | comments_update = ( 99 | max([i.updated_at for i in comments]) 100 | if comments_count 101 | else datetime(year, 1, 1) 102 | ) 103 | create = format_time(issue.created_at) 104 | # the latest update no matter comment or post min data(2021?) 105 | update = ( 106 | format_time(issue.updated_at) 107 | if comments_update < issue.updated_at 108 | else format_time(comments_update) 109 | ) 110 | comment_str += BLOG_ISSUE_STAT_TEMPLATE.format( 111 | name=f"[{issue.title}]({issue.html_url})", 112 | start=create, 113 | update=update, 114 | comments=comments_count, 115 | ) 116 | return comment_str 117 | 118 | 119 | def comment_to_int(comment): 120 | """ 121 | comment -> int from first line 122 | """ 123 | data = comment.body.splitlines()[0] 124 | try: 125 | return int(data) 126 | except: 127 | return 0 128 | 129 | 130 | def comment_to_float(comment): 131 | """ 132 | comment -> float from first line 133 | """ 134 | data = comment.body.splitlines()[0] 135 | try: 136 | return float(data) 137 | except: 138 | return float(0) 139 | 140 | 141 | def commnet_to_count(comment): 142 | """ 143 | comment -> just count it just return a number 1 144 | my code I am the God 145 | """ 146 | return 1 147 | 148 | 149 | def comment_to_GTD_count(comment): 150 | """ 151 | start - [x] means task done in md 152 | """ 153 | data = comment.body.splitlines() 154 | count = 0 155 | for d in data: 156 | if d.startswith("- [x]"): 157 | count += 1 158 | return count 159 | 160 | 161 | ##### COMMENTS DAILY ###### 162 | LABEL_DAILY_DICT = { 163 | # label, map_func, reduce_func 164 | "俯卧撑": [PUSHUP_LABEL_LIST, comment_to_int, sum], 165 | "冥想": [MEDITATION_LABEL_LIST, comment_to_int, sum], 166 | "早起": [MORNING_LABEL_LIST, commnet_to_count, len], # Do Nothing 167 | "GTD": [GTD_LABEL_LIST, comment_to_GTD_count, sum], # Do Nothing 168 | "周记": [WEEKLY_LABEL_LIST, commnet_to_count, len], # Do Nothing 169 | } 170 | -------------------------------------------------------------------------------- /bookmark_2021.md: -------------------------------------------------------------------------------- 1 | # 我的 [2021](https://github.com/yihong0618/2021/issues/21) 的书签 2 | 3 | | Name | Link | Add | Update | Has_file | 4 | | ---- | ---- | ---- | ---- | ---- | 5 | | [大神的值得读总结](https://linus.zone/technical-reading) | https://github.com/yihong0618/2021/issues/21#issuecomment-870161335 | 2021-06-29 | 2021-09-22 | False | 6 | | [Rust 相关](https://rfns.io/blog/tech/2021-06-30-rust-and-the-machine) | https://github.com/yihong0618/2021/issues/21#issuecomment-872692306 | 2021-07-02 | 2021-09-22 | False | 7 | | [给青年填个堵](https://www.bilibili.com/video/BV1ay4y1p74L) | https://github.com/yihong0618/2021/issues/21#issuecomment-875209972 | 2021-07-07 | 2021-09-24 | False | 8 | | [网络宝藏](https://www.zhihu.com/column/software-defined-network) | https://github.com/yihong0618/2021/issues/21#issuecomment-876096835 | 2021-07-08 | 2021-07-08 | False | 9 | | [surge 作者。。。的网络宝藏。](https://manual.nssurge.com/book/understanding-surge/cn/#) | https://github.com/yihong0618/2021/issues/21#issuecomment-876837834 | 2021-07-09 | 2021-07-09 | False | 10 | | [积木](https://post.smzdm.com/p/a6lx7rr0/#hfeeds) | https://github.com/yihong0618/2021/issues/21#issuecomment-878853026 | 2021-07-13 | 2021-07-13 | False | 11 | | [原来有这么好的播客。。。](https://corecursive.com/category/podcast/) | https://github.com/yihong0618/2021/issues/21#issuecomment-879481829 | 2021-07-14 | 2021-07-14 | False | 12 | | [DDIA](https://martin.kleppmann.com/2021/07/02/debs-keynote-thinking-in-events.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-880311762 | 2021-07-15 | 2021-07-15 | False | 13 | | [How Python read or write files under the hood](https://windsooon.github.io/2019/08/14/How%20Python%20read%20or%20write%20files%20under%20the%20hood/) | https://github.com/yihong0618/2021/issues/21#issuecomment-880327360 | 2021-07-15 | 2021-09-24 | False | 14 | | [数据包的旅行](https://www.practicalnetworking.net/series/packet-traveling/packet-traveling/) | https://github.com/yihong0618/2021/issues/21#issuecomment-881104999 | 2021-07-16 | 2021-07-16 | False | 15 | | [ what is programming?](https://www.youtube.com/watch?v=N2bXEUSAiTI&list=PLzFUMGbVxlQs5s-LNAyKgcq5SL28ZLLKC) | https://github.com/yihong0618/2021/issues/21#issuecomment-881192266 | 2021-07-16 | 2021-09-24 | False | 16 | | [后真相时代]([我们生活在“后真相时代”吗——基于微信公众平台“罗尔事件”传播的研究.pdf](https://github.com/yihong0618/2021/files/6847489/default.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-883282938 | 2021-07-20 | 2021-09-24 | True | 17 | | [面向对象的弊端](https://www.zhihu.com/question/20275578/answer/26577791) | https://github.com/yihong0618/2021/issues/21#issuecomment-883829490 | 2021-07-21 | 2021-09-24 | False | 18 | | [机器学习中的数学](https://github.com/mml-book/mml-book.github.io) | https://github.com/yihong0618/2021/issues/21#issuecomment-883839085 | 2021-07-21 | 2021-07-21 | False | 19 | | [raft](http://thesecretlivesofdata.com/raft/) | https://github.com/yihong0618/2021/issues/21#issuecomment-883966746 | 2021-07-21 | 2021-12-29 | False | 20 | | [播客](https://changelog.com/podcasts) | https://github.com/yihong0618/2021/issues/21#issuecomment-885489041 | 2021-07-23 | 2021-09-23 | False | 21 | | [ipv4](https://www.jannet.hk/ip-address-version-4-ipv4-zh-hans/) | https://github.com/yihong0618/2021/issues/21#issuecomment-886459925 | 2021-07-26 | 2021-09-23 | False | 22 | | [学日语](https://www.sigure.tw/) | https://github.com/yihong0618/2021/issues/21#issuecomment-886491193 | 2021-07-26 | 2021-09-23 | False | 23 | | [roguelike](http://rogueliketutorials.com/tutorials/tcod/v2/part-1/) | https://github.com/yihong0618/2021/issues/21#issuecomment-887268625 | 2021-07-27 | 2021-12-15 | False | 24 | | [思考](下面这个图) | https://github.com/yihong0618/2021/issues/21#issuecomment-887365170 | 2021-07-27 | 2021-09-26 | False | 25 | | [独立游戏](https://www.douban.com/note/808457532/) | https://github.com/yihong0618/2021/issues/21#issuecomment-888028079 | 2021-07-28 | 2021-09-23 | False | 26 | | [需要补的内功](https://github.com/woai3c/nand2tetris) | https://github.com/yihong0618/2021/issues/21#issuecomment-890677062 | 2021-08-02 | 2021-09-26 | False | 27 | | [数独游戏](https://me.guanghechen.com/post/game/sudoku/) | https://github.com/yihong0618/2021/issues/21#issuecomment-892364952 | 2021-08-04 | 2021-09-26 | False | 28 | | [有趣的 shell](https://izsk.me/2021/03/21/shell-funny-snippet/) | https://github.com/yihong0618/2021/issues/21#issuecomment-892464080 | 2021-08-04 | 2021-09-26 | False | 29 | | [有趣的 shell2](https://blog.k8s.li/shell-snippet.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-892464180 | 2021-08-04 | 2021-09-26 | False | 30 | | [日文输入法](https://www.zhihu.com/question/25877358) | https://github.com/yihong0618/2021/issues/21#issuecomment-894097456 | 2021-08-06 | 2021-09-26 | False | 31 | | [k8s 系列](https://www.howie6879.cn/k8s/) | https://github.com/yihong0618/2021/issues/21#issuecomment-894920029 | 2021-08-09 | 2021-09-26 | False | 32 | | [Memory Models](https://research.swtch.com/mm) | https://github.com/yihong0618/2021/issues/21#issuecomment-896603325 | 2021-08-11 | 2021-09-26 | False | 33 | | [CTF-WIKI](https://github.com/ctf-wiki/ctf-wiki/blob/master/README-zh_CN.md) | https://github.com/yihong0618/2021/issues/21#issuecomment-897298498 | 2021-08-12 | 2021-09-26 | False | 34 | | [容器逃逸](https://www.secrss.com/articles/18752) | https://github.com/yihong0618/2021/issues/21#issuecomment-897394627 | 2021-08-12 | 2021-09-26 | False | 35 | | [Think out of the box](https://billc.io/2021/04/think-out-of-the-box/) | https://github.com/yihong0618/2021/issues/21#issuecomment-897412108 | 2021-08-12 | 2021-09-26 | False | 36 | | [面试要点](https://blog.long2ice.cn/2020/10/%E9%9D%A2%E8%AF%95%E8%A6%81%E7%82%B9%E8%AE%B0%E5%BD%95/) | https://github.com/yihong0618/2021/issues/21#issuecomment-897436641 | 2021-08-12 | 2021-09-26 | False | 37 | | [油管主播](https://twitter.com/0M6dj88umy8ekMb/status/1426927571707469826) | https://github.com/yihong0618/2021/issues/21#issuecomment-899327808 | 2021-08-16 | 2021-09-26 | False | 38 | | [有趣的 jc 项目](https://kellyjonbrazil.github.io/jc/EXAMPLES) | https://github.com/yihong0618/2021/issues/21#issuecomment-904248364 | 2021-08-24 | 2021-09-26 | False | 39 | | [Pod 从创建到 Running](https://mozillazg.com/2021/07/k8s-kubernetes-what-happen-when-pod-from-create-to-running.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-904391967 | 2021-08-24 | 2021-09-26 | False | 40 | | [你的时间的尾端](https://limboy.me/2021/08/24/wbw-the-tail-end/) | https://github.com/yihong0618/2021/issues/21#issuecomment-905152401 | 2021-08-25 | 2021-09-26 | False | 41 | | [人文博客](http://www.zhuangbiaowei.com/blog/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906004226 | 2021-08-26 | 2021-09-26 | False | 42 | | [一个画师](https://www.artstation.com/zhiruiwang) | https://github.com/yihong0618/2021/issues/21#issuecomment-906071665 | 2021-08-26 | 2021-09-26 | False | 43 | | [Python type hint](https://aber.sh/articles/Define-model-with-type-hint/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906254121 | 2021-08-26 | 2021-09-01 | False | 44 | | [太精彩了 -> python子编译器资源竞争问题](https://shihai1991.github.io/python/2021/08/22/python%E5%AD%90%E7%BC%96%E8%AF%91%E5%99%A8%E8%B5%84%E6%BA%90%E7%AB%9E%E4%BA%89%E9%97%AE%E9%A2%98/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906980606 | 2021-08-27 | 2021-09-01 | False | 45 | | [可靠分布式系统-paxos的直观解释](https://blog.openacid.com/algo/paxos/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906996078 | 2021-08-27 | 2021-09-01 | False | 46 | | [面试题](http://drmingdrmer.github.io/tech/algorithm/2019/01/09/dict-cmp.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-907000151 | 2021-08-27 | 2021-08-27 | False | 47 | | [博客](https://iknow.fun/) | https://github.com/yihong0618/2021/issues/21#issuecomment-907988899 | 2021-08-30 | 2021-08-30 | False | 48 | | [docker 原理实战篇](https://jasonkayzk.github.io/2021/08/29/Docker%E5%8E%9F%E7%90%86%E5%AE%9E%E6%88%98-1%EF%BC%9ANamespace/) | https://github.com/yihong0618/2021/issues/21#issuecomment-908037856 | 2021-08-30 | 2021-08-30 | False | 49 | | [Hack blog](https://github.com/m1dsummer/AD-2021) | https://github.com/yihong0618/2021/issues/21#issuecomment-908045176 | 2021-08-30 | 2021-08-30 | False | 50 | | [机会与准备。](https://61.life/2021/0828) | https://github.com/yihong0618/2021/issues/21#issuecomment-908070832 | 2021-08-30 | 2021-08-30 | False | 51 | | [程序员关于时间](https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca) | https://github.com/yihong0618/2021/issues/21#issuecomment-908073971 | 2021-08-30 | 2021-08-30 | False | 52 | | [SSL/TLS](https://introspelliam.github.io/2018/03/20/crypto/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E8%AF%BBSSL-TLS%E5%AE%9E%E7%8E%B0/) | https://github.com/yihong0618/2021/issues/21#issuecomment-909751326 | 2021-09-01 | 2021-09-01 | False | 53 | | [乐观锁](https://www.jianshu.com/p/ae25eb3cfb5d) | https://github.com/yihong0618/2021/issues/21#issuecomment-909771820 | 2021-09-01 | 2021-09-01 | False | 54 | | [不可不说 Java 锁的事儿。](https://tech.meituan.com/2018/11/15/java-lock.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-909774513 | 2021-09-01 | 2021-09-01 | False | 55 | | [k8s](https://twitter.com/MeMoreKoo/status/1433071814574411787) | https://github.com/yihong0618/2021/issues/21#issuecomment-911075067 | 2021-09-02 | 2021-09-02 | False | 56 | | [go news](https://news.ycombinator.com/item?id=14462125) | https://github.com/yihong0618/2021/issues/21#issuecomment-911231536 | 2021-09-02 | 2021-09-02 | False | 57 | | [别做这样的家长。](https://medium.com/@plumpmonth/%E8%87%A8%E5%BA%8A%E8%AC%9B%E7%BE%A9-%E8%8F%AF%E4%BA%BA%E7%88%B6%E6%AF%8D%E8%A8%BA%E6%96%B7%E6%9B%B8-%E5%8C%97%E5%A4%A7%E7%8B%80%E5%85%8312%E5%B9%B4%E6%98%A5%E7%AF%80%E4%B8%8D%E6%AD%B8-279a09791d1b) | https://github.com/yihong0618/2021/issues/21#issuecomment-911329725 | 2021-09-02 | 2021-09-02 | False | 58 | | [源码分析博客](https://sf-zhou.github.io/) | https://github.com/yihong0618/2021/issues/21#issuecomment-912210350 | 2021-09-03 | 2021-09-03 | False | 59 | | [Java](https://changchen.me/blog/20210904/jvm-note/) | https://github.com/yihong0618/2021/issues/21#issuecomment-913275218 | 2021-09-06 | 2021-09-06 | False | 60 | | [BGP](https://github.com/Exa-Networks/exabgp) | https://github.com/yihong0618/2021/issues/21#issuecomment-913938774 | 2021-09-07 | 2021-09-07 | False | 61 | | [OOP](https://www.youtube.com/watch?v=GKYCA3UsmrU&ab_channel=vexe) | https://github.com/yihong0618/2021/issues/21#issuecomment-914906091 | 2021-09-08 | 2021-09-08 | False | 62 | | [阿里云盘](https://www.aliyundrive.com/s/dWWW5DXDvMg) | https://github.com/yihong0618/2021/issues/21#issuecomment-916691666 | 2021-09-10 | 2021-09-10 | False | 63 | | [加密,解密](https://github.com/MuggleK/Decrypt_JS) | https://github.com/yihong0618/2021/issues/21#issuecomment-916720589 | 2021-09-10 | 2021-09-10 | False | 64 | | [网络基本功系列](https://wizardforcel.gitbooks.io/network-basic/content/) | https://github.com/yihong0618/2021/issues/21#issuecomment-916827850 | 2021-09-10 | 2021-09-10 | False | 65 | | [有趣的博客](https://fpghwd.github.io) | https://github.com/yihong0618/2021/issues/21#issuecomment-917513103 | 2021-09-12 | 2021-09-23 | False | 66 | | [monads ](https://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/) | https://github.com/yihong0618/2021/issues/21#issuecomment-920562648 | 2021-09-16 | 2021-09-16 | False | 67 | | [digest](https://ftvision.github.io/digest/) | https://github.com/yihong0618/2021/issues/21#issuecomment-921487660 | 2021-09-17 | 2021-09-17 | False | 68 | | [网络基本功系列。]([网络基本功系列.pdf](https://github.com/yihong0618/2021/files/7183040/default.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-921524936 | 2021-09-17 | 2021-09-17 | True | 69 | | [概率](https://github.com/norvig/pytudes/blob/main/ipynb/Probability.ipynb) | https://github.com/yihong0618/2021/issues/21#issuecomment-921553759 | 2021-09-17 | 2021-09-17 | False | 70 | | [go 语言神人](https://mzh.io/) | https://github.com/yihong0618/2021/issues/21#issuecomment-921573769 | 2021-09-17 | 2021-09-17 | False | 71 | | [不错的博客](https://www.nosuchfield.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-922166183 | 2021-09-18 | 2021-09-18 | False | 72 | | [编译原理](http://craftinginterpreters.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-922169854 | 2021-09-18 | 2021-09-18 | False | 73 | | [math code](https://github.com/Jam3/math-as-code/blob/master/README-zh.md) | https://github.com/yihong0618/2021/issues/21#issuecomment-922237382 | 2021-09-18 | 2021-09-18 | False | 74 | | [开发人员的安全](https://github.com/Tencent/secguide) | https://github.com/yihong0618/2021/issues/21#issuecomment-924514059 | 2021-09-22 | 2021-09-22 | False | 75 | | [base64 in Python](https://stackabuse.com/encoding-and-decoding-base64-strings-in-python/) | https://github.com/yihong0618/2021/issues/21#issuecomment-924522110 | 2021-09-22 | 2021-09-22 | False | 76 | | [AIOPS](https://github.com/graviraja/MLOps-Basics) | https://github.com/yihong0618/2021/issues/21#issuecomment-924637019 | 2021-09-22 | 2021-09-22 | False | 77 | | [Games 101](http://games-cn.org/intro-graphics/) | https://github.com/yihong0618/2021/issues/21#issuecomment-924777428 | 2021-09-22 | 2021-09-22 | False | 78 | | [Go 相关博客](https://nanmu.me/zh-cn/archive) | https://github.com/yihong0618/2021/issues/21#issuecomment-925573567 | 2021-09-23 | 2021-09-23 | False | 79 | | [硬件茶谈](https://www.bilibili.com/video/BV1nL411x7jH) | https://github.com/yihong0618/2021/issues/21#issuecomment-927271559 | 2021-09-26 | 2021-09-26 | False | 80 | | [network for hackers ](https://www.hackers-arise.com/post/2019/05/20/network-basics-for-hackers-domain-name-service-dns-and-bind-theory-vulnerabilities-and-im) | https://github.com/yihong0618/2021/issues/21#issuecomment-927432189 | 2021-09-27 | 2021-09-27 | False | 81 | | [人脸识别](http://www.piginzoo.com/machine-learning/2021/09/15/face-recognition) | https://github.com/yihong0618/2021/issues/21#issuecomment-928859442 | 2021-09-28 | 2021-09-28 | False | 82 | | [有时间玩一下](https://github.com/marceloprates/prettymaps) | https://github.com/yihong0618/2021/issues/21#issuecomment-929022403 | 2021-09-28 | 2021-09-28 | False | 83 | | [XSS Django](https://tonybaloney.github.io/posts/xss-exploitation-in-django.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-930798201 | 2021-09-30 | 2021-09-30 | False | 84 | | [songma 推荐的书](https://twitter.com/songma/status/1443448534989111302) | https://github.com/yihong0618/2021/issues/21#issuecomment-930808273 | 2021-09-30 | 2021-09-30 | False | 85 | | [go 并发](https://divan.dev/posts/go_concurrency_visualize/) | https://github.com/yihong0618/2021/issues/21#issuecomment-930815036 | 2021-09-30 | 2021-09-30 | False | 86 | | [领域驱动设计与微服务](https://zhu327.github.io/2020/10/22/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/) | https://github.com/yihong0618/2021/issues/21#issuecomment-931030565 | 2021-09-30 | 2021-09-30 | False | 87 | | [我在掘金这 3 年](https://juejin.cn/post/6844904116276183053) | https://github.com/yihong0618/2021/issues/21#issuecomment-931031241 | 2021-09-30 | 2021-09-30 | False | 88 | | [希望有机会玩一下](https://github.com/snaptoken/kilo-tutorial) | https://github.com/yihong0618/2021/issues/21#issuecomment-938362270 | 2021-10-08 | 2021-10-08 | False | 89 | | [All about Monads](https://wiki.haskell.org/All_About_Monads) | https://github.com/yihong0618/2021/issues/21#issuecomment-938421774 | 2021-10-08 | 2021-10-08 | False | 90 | | [光线追踪](https://www.v2ex.com/t/551690) | https://github.com/yihong0618/2021/issues/21#issuecomment-938460997 | 2021-10-08 | 2021-10-09 | False | 91 | | [动画视频](https://www.shadertoy.com/view/4dSfRc) | https://github.com/yihong0618/2021/issues/21#issuecomment-939250781 | 2021-10-09 | 2021-10-09 | False | 92 | | [好多有趣的人](https://blog.k8s.li/friends.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-939675055 | 2021-10-11 | 2021-10-11 | False | 93 | | [名校公开课评价网](https://conanhujinming.github.io/comments-for-awesome-courses/) | https://github.com/yihong0618/2021/issues/21#issuecomment-939721310 | 2021-10-11 | 2021-10-11 | False | 94 | | [gevent](https://jiajunhuang.com/articles/2021_10_11-gevent_is_good_part2.md.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-940564342 | 2021-10-12 | 2021-10-12 | False | 95 | | [tinyrender](https://github.com/ssloy/tinyrenderer) | https://github.com/yihong0618/2021/issues/21#issuecomment-940609736 | 2021-10-12 | 2021-10-12 | False | 96 | | [人脸识别](http://www.piginzoo.com/machine-learning/2021/09/15/face-recognition) | https://github.com/yihong0618/2021/issues/21#issuecomment-941932128 | 2021-10-13 | 2021-10-13 | False | 97 | | [checkbox 神人](https://www.bryanbraun.com/blog/) | https://github.com/yihong0618/2021/issues/21#issuecomment-941940302 | 2021-10-13 | 2021-10-13 | False | 98 | | [C++ 相关](模板https://zhuanlan.zhihu.com/p/101898043) | https://github.com/yihong0618/2021/issues/21#issuecomment-941945641 | 2021-10-13 | 2021-10-13 | False | 99 | | [编译器神人](http://maskray.me/blog/presentations/) | https://github.com/yihong0618/2021/issues/21#issuecomment-942945377 | 2021-10-14 | 2021-10-14 | False | 100 | | [喜欢](https://lingsamuel.github.io/page/) | https://github.com/yihong0618/2021/issues/21#issuecomment-944104779 | 2021-10-15 | 2021-10-15 | False | 101 | | [加速 Actions](https://hanxiao.io/2021/01/24/Speedup-CI-Workflow-in-Github-Actions-via-Strategy-Matrix/) | https://github.com/yihong0618/2021/issues/21#issuecomment-944843221 | 2021-10-16 | 2021-10-16 | False | 102 | | [计算机中的数学(书)]([unplugged-zh-cn.pdf](https://github.com/yihong0618/2021/files/7370428/unplugged-zh-cn.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-946378349 | 2021-10-19 | 2021-10-19 | True | 103 | | [xintao 的文章每篇都值得 mark (tty)](https://www.kawabangga.com/posts/4515) | https://github.com/yihong0618/2021/issues/21#issuecomment-947212700 | 2021-10-20 | 2021-10-20 | False | 104 | | [Java 代码是怎样运行的](https://yasinshaw.com/articles/124) | https://github.com/yihong0618/2021/issues/21#issuecomment-947227388 | 2021-10-20 | 2021-10-20 | False | 105 | | [linux 信号机制](http://gityuan.com/2015/12/20/signal/) | https://github.com/yihong0618/2021/issues/21#issuecomment-947268524 | 2021-10-20 | 2021-10-20 | False | 106 | | [指针](https://boredzo.org/pointers/) | https://github.com/yihong0618/2021/issues/21#issuecomment-949281541 | 2021-10-22 | 2021-10-22 | False | 107 | | [微信](https://github.com/holdyeah/wechat-pc-hook-python) | https://github.com/yihong0618/2021/issues/21#issuecomment-949323827 | 2021-10-22 | 2021-10-22 | False | 108 | | [WTF](https://realpython.com/python-boolean/#chaining-comparison-operators) | https://github.com/yihong0618/2021/issues/21#issuecomment-950059860 | 2021-10-23 | 2021-10-23 | False | 109 | | [es](https://juejin.cn/post/7009593798011387917) | https://github.com/yihong0618/2021/issues/21#issuecomment-951491025 | 2021-10-26 | 2021-10-26 | False | 110 | | [音频相关](https://github.com/0voice/audio_video_streaming) | https://github.com/yihong0618/2021/issues/21#issuecomment-952477341 | 2021-10-27 | 2021-10-27 | False | 111 | | [遛狗指南](https://via.moe/katago-vs-leelazero/) | https://github.com/yihong0618/2021/issues/21#issuecomment-953503009 | 2021-10-28 | 2021-10-28 | False | 112 | | [《DDIA》 牛逼](https://github.com/slidoooor/computer_book_list) | https://github.com/yihong0618/2021/issues/21#issuecomment-954447856 | 2021-10-29 | 2021-10-29 | False | 113 | | [ChineseAiDungeon开发log](http://icybee.cn/article/71.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-957036873 | 2021-11-02 | 2021-11-02 | False | 114 | | [超级牛的博客](http://accu.cc/) | https://github.com/yihong0618/2021/issues/21#issuecomment-957187396 | 2021-11-02 | 2021-11-02 | False | 115 | | [傅里叶变换](https://www.cnblogs.com/h2zZhou/p/8405717.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-958581564 | 2021-11-03 | 2021-11-03 | False | 116 | | [python 打包101](https://frostming.com/2021/10-20/pycon-china-2021/) | https://github.com/yihong0618/2021/issues/21#issuecomment-958683262 | 2021-11-03 | 2021-11-03 | False | 117 | | [一本神书,希望有精力看](http://craftinginterpreters.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-961540713 | 2021-11-05 | 2021-11-05 | False | 118 | | [牛逼啊](https://frostming.com/2019/03-13/where-do-your-packages-go/#%E8%84%9A%E6%9C%AC%E8%BF%90%E8%A1%8C%E6%96%B9%E5%BC%8F%E5%AF%B9%E6%90%9C%E7%B4%A2%E8%B7%AF%E5%BE%84%E7%9A%84%E5%BD%B1%E5%93%8D) | https://github.com/yihong0618/2021/issues/21#issuecomment-961580339 | 2021-11-05 | 2021-11-05 | False | 119 | | [kafka](https://levelup.gitconnected.com/kafka-for-engineers-975feaea6067) | https://github.com/yihong0618/2021/issues/21#issuecomment-962741347 | 2021-11-08 | 2021-11-08 | False | 120 | | [SRE 路线](https://github.com/bregman-arie/devops-exercises) | https://github.com/yihong0618/2021/issues/21#issuecomment-965930015 | 2021-11-11 | 2021-11-11 | False | 121 | | [前端](https://github.com/ProtoTeam/blog) | https://github.com/yihong0618/2021/issues/21#issuecomment-975175622 | 2021-11-22 | 2021-11-22 | False | 122 | | [argparse](https://frostming.com/2021/11-23/advanced-argparse/) | https://github.com/yihong0618/2021/issues/21#issuecomment-976483709 | 2021-11-23 | 2021-11-23 | False | 123 | | [figma](https://www.figma.com/blog/section/engineering/) | https://github.com/yihong0618/2021/issues/21#issuecomment-983355885 | 2021-12-01 | 2021-12-01 | False | 124 | | [事件循环](https://github.com/aceld/libevent) | https://github.com/yihong0618/2021/issues/21#issuecomment-984228398 | 2021-12-02 | 2021-12-02 | False | 125 | | [BBBBBTREE](https://github.com/lichuang/algorithm_notes/blob/master/btree/btree.py) | https://github.com/yihong0618/2021/issues/21#issuecomment-984250614 | 2021-12-02 | 2021-12-03 | False | 126 | | [思维导图](https://www.plectica.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-985151997 | 2021-12-03 | 2021-12-03 | False | 127 | | [LRU cache](https://realpython.com/lru-cache-python/) | https://github.com/yihong0618/2021/issues/21#issuecomment-986388616 | 2021-12-06 | 2021-12-06 | False | 128 | | [线条表达内心的画](https://www.behance.net/nova_introvert) | https://github.com/yihong0618/2021/issues/21#issuecomment-988495839 | 2021-12-08 | 2021-12-08 | False | 129 | | [也要记笔记](https://github.com/nikitavoloboev/knowledge) | https://github.com/yihong0618/2021/issues/21#issuecomment-988558570 | 2021-12-08 | 2021-12-08 | False | 130 | | [redis 作者的博客](http://antirez.com/latest/0) | https://github.com/yihong0618/2021/issues/21#issuecomment-990603446 | 2021-12-10 | 2021-12-10 | False | 131 | | [搞懂容器的基石 namespace](https://moelove.info/2021/12/10/%E6%90%9E%E6%87%82%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%9F%BA%E7%9F%B3-namespace-%E4%B8%8A/) | https://github.com/yihong0618/2021/issues/21#issuecomment-990616193 | 2021-12-10 | 2021-12-10 | False | 132 | | [dpark 漫谈](https://github.com/zzl0/DparkIntro) | https://github.com/yihong0618/2021/issues/21#issuecomment-990706694 | 2021-12-10 | 2021-12-10 | False | 133 | | [寻路算法](https://github.com/zhm-real/PathPlanning) | https://github.com/yihong0618/2021/issues/21#issuecomment-992078233 | 2021-12-13 | 2021-12-13 | False | 134 | | [kong 源码分析](https://shoujo.ink/2021/09/kong-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/) | https://github.com/yihong0618/2021/issues/21#issuecomment-993273355 | 2021-12-14 | 2021-12-14 | False | 135 | | [神人](https://easyperf.net/notes/) | https://github.com/yihong0618/2021/issues/21#issuecomment-994371946 | 2021-12-15 | 2021-12-15 | False | 136 | | [好美](https://github.com/inconvergent/weird) | https://github.com/yihong0618/2021/issues/21#issuecomment-994487337 | 2021-12-15 | 2021-12-15 | False | 137 | | [Dynamic Brainfuck](https://adam-mcdaniel.github.io/harbor/) | https://github.com/yihong0618/2021/issues/21#issuecomment-995391083 | 2021-12-16 | 2021-12-16 | False | 138 | | [牛逼的逆向](https://github.red/asoul-video-trick/) | https://github.com/yihong0618/2021/issues/21#issuecomment-998549397 | 2021-12-21 | 2021-12-21 | False | 139 | | [docker everything ](https://nystudio107.com/blog/dock-life-using-docker-for-all-the-things) | https://github.com/yihong0618/2021/issues/21#issuecomment-1000602741 | 2021-12-24 | 2021-12-24 | False | 140 | | [记笔记记笔记](https://roamresearch.com/#/app/FEZ/page/N7HgMbToE) | https://github.com/yihong0618/2021/issues/21#issuecomment-1001849830 | 2021-12-28 | 2021-12-28 | False | 141 | | [Writing a simple JSON parser](https://notes.eatonphil.com/writing-a-simple-json-parser.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1001904335 | 2021-12-28 | 2021-12-30 | False | 142 | | [rust](https://course.rs/about-book.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1002837177 | 2021-12-30 | 2021-12-30 | False | 143 | | [C 语言](https://iota.huohuo.moe/OO-in-C.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1003291832 | 2021-12-31 | 2021-12-31 | False | 144 | -------------------------------------------------------------------------------- /bookmark_2022.md: -------------------------------------------------------------------------------- 1 | # 我的 [2022](https://github.com/yihong0618/2021/issues/21) 的书签 2 | 3 | | Name | Link | Add | Update | Has_file | 4 | | ---- | ---- | ---- | ---- | ---- | 5 | | [大神的值得读总结](https://linus.zone/technical-reading) | https://github.com/yihong0618/2021/issues/21#issuecomment-870161335 | 2021-06-29 | 2021-09-22 | False | 6 | | [Rust 相关](https://rfns.io/blog/tech/2021-06-30-rust-and-the-machine) | https://github.com/yihong0618/2021/issues/21#issuecomment-872692306 | 2021-07-02 | 2021-09-22 | False | 7 | | [给青年填个堵](https://www.bilibili.com/video/BV1ay4y1p74L) | https://github.com/yihong0618/2021/issues/21#issuecomment-875209972 | 2021-07-07 | 2021-09-24 | False | 8 | | [网络宝藏](https://www.zhihu.com/column/software-defined-network) | https://github.com/yihong0618/2021/issues/21#issuecomment-876096835 | 2021-07-08 | 2021-07-08 | False | 9 | | [surge 作者。。。的网络宝藏。](https://manual.nssurge.com/book/understanding-surge/cn/#) | https://github.com/yihong0618/2021/issues/21#issuecomment-876837834 | 2021-07-09 | 2021-07-09 | False | 10 | | [积木](https://post.smzdm.com/p/a6lx7rr0/#hfeeds) | https://github.com/yihong0618/2021/issues/21#issuecomment-878853026 | 2021-07-13 | 2021-07-13 | False | 11 | | [原来有这么好的播客。。。](https://corecursive.com/category/podcast/) | https://github.com/yihong0618/2021/issues/21#issuecomment-879481829 | 2021-07-14 | 2021-07-14 | False | 12 | | [DDIA](https://martin.kleppmann.com/2021/07/02/debs-keynote-thinking-in-events.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-880311762 | 2021-07-15 | 2021-07-15 | False | 13 | | [How Python read or write files under the hood](https://windsooon.github.io/2019/08/14/How%20Python%20read%20or%20write%20files%20under%20the%20hood/) | https://github.com/yihong0618/2021/issues/21#issuecomment-880327360 | 2021-07-15 | 2021-09-24 | False | 14 | | [数据包的旅行](https://www.practicalnetworking.net/series/packet-traveling/packet-traveling/) | https://github.com/yihong0618/2021/issues/21#issuecomment-881104999 | 2021-07-16 | 2021-07-16 | False | 15 | | [ what is programming?](https://www.youtube.com/watch?v=N2bXEUSAiTI&list=PLzFUMGbVxlQs5s-LNAyKgcq5SL28ZLLKC) | https://github.com/yihong0618/2021/issues/21#issuecomment-881192266 | 2021-07-16 | 2021-09-24 | False | 16 | | [后真相时代]([我们生活在“后真相时代”吗——基于微信公众平台“罗尔事件”传播的研究.pdf](https://github.com/yihong0618/2021/files/6847489/default.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-883282938 | 2021-07-20 | 2021-09-24 | True | 17 | | [面向对象的弊端](https://www.zhihu.com/question/20275578/answer/26577791) | https://github.com/yihong0618/2021/issues/21#issuecomment-883829490 | 2021-07-21 | 2021-09-24 | False | 18 | | [机器学习中的数学](https://github.com/mml-book/mml-book.github.io) | https://github.com/yihong0618/2021/issues/21#issuecomment-883839085 | 2021-07-21 | 2021-07-21 | False | 19 | | [raft](http://thesecretlivesofdata.com/raft/) | https://github.com/yihong0618/2021/issues/21#issuecomment-883966746 | 2021-07-21 | 2021-12-29 | False | 20 | | [播客](https://changelog.com/podcasts) | https://github.com/yihong0618/2021/issues/21#issuecomment-885489041 | 2021-07-23 | 2021-09-23 | False | 21 | | [ipv4](https://www.jannet.hk/ip-address-version-4-ipv4-zh-hans/) | https://github.com/yihong0618/2021/issues/21#issuecomment-886459925 | 2021-07-26 | 2021-09-23 | False | 22 | | [学日语](https://www.sigure.tw/) | https://github.com/yihong0618/2021/issues/21#issuecomment-886491193 | 2021-07-26 | 2021-09-23 | False | 23 | | [roguelike](http://rogueliketutorials.com/tutorials/tcod/v2/part-1/) | https://github.com/yihong0618/2021/issues/21#issuecomment-887268625 | 2021-07-27 | 2021-12-15 | False | 24 | | [思考](下面这个图) | https://github.com/yihong0618/2021/issues/21#issuecomment-887365170 | 2021-07-27 | 2021-09-26 | False | 25 | | [独立游戏](https://www.douban.com/note/808457532/) | https://github.com/yihong0618/2021/issues/21#issuecomment-888028079 | 2021-07-28 | 2021-09-23 | False | 26 | | [需要补的内功](https://github.com/woai3c/nand2tetris) | https://github.com/yihong0618/2021/issues/21#issuecomment-890677062 | 2021-08-02 | 2021-09-26 | False | 27 | | [数独游戏](https://me.guanghechen.com/post/game/sudoku/) | https://github.com/yihong0618/2021/issues/21#issuecomment-892364952 | 2021-08-04 | 2021-09-26 | False | 28 | | [有趣的 shell](https://izsk.me/2021/03/21/shell-funny-snippet/) | https://github.com/yihong0618/2021/issues/21#issuecomment-892464080 | 2021-08-04 | 2021-09-26 | False | 29 | | [有趣的 shell2](https://blog.k8s.li/shell-snippet.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-892464180 | 2021-08-04 | 2021-09-26 | False | 30 | | [日文输入法](https://www.zhihu.com/question/25877358) | https://github.com/yihong0618/2021/issues/21#issuecomment-894097456 | 2021-08-06 | 2021-09-26 | False | 31 | | [k8s 系列](https://www.howie6879.cn/k8s/) | https://github.com/yihong0618/2021/issues/21#issuecomment-894920029 | 2021-08-09 | 2021-09-26 | False | 32 | | [Memory Models](https://research.swtch.com/mm) | https://github.com/yihong0618/2021/issues/21#issuecomment-896603325 | 2021-08-11 | 2021-09-26 | False | 33 | | [CTF-WIKI](https://github.com/ctf-wiki/ctf-wiki/blob/master/README-zh_CN.md) | https://github.com/yihong0618/2021/issues/21#issuecomment-897298498 | 2021-08-12 | 2021-09-26 | False | 34 | | [容器逃逸](https://www.secrss.com/articles/18752) | https://github.com/yihong0618/2021/issues/21#issuecomment-897394627 | 2021-08-12 | 2021-09-26 | False | 35 | | [Think out of the box](https://billc.io/2021/04/think-out-of-the-box/) | https://github.com/yihong0618/2021/issues/21#issuecomment-897412108 | 2021-08-12 | 2021-09-26 | False | 36 | | [面试要点](https://blog.long2ice.cn/2020/10/%E9%9D%A2%E8%AF%95%E8%A6%81%E7%82%B9%E8%AE%B0%E5%BD%95/) | https://github.com/yihong0618/2021/issues/21#issuecomment-897436641 | 2021-08-12 | 2021-09-26 | False | 37 | | [油管主播](https://twitter.com/0M6dj88umy8ekMb/status/1426927571707469826) | https://github.com/yihong0618/2021/issues/21#issuecomment-899327808 | 2021-08-16 | 2021-09-26 | False | 38 | | [有趣的 jc 项目](https://kellyjonbrazil.github.io/jc/EXAMPLES) | https://github.com/yihong0618/2021/issues/21#issuecomment-904248364 | 2021-08-24 | 2021-09-26 | False | 39 | | [Pod 从创建到 Running](https://mozillazg.com/2021/07/k8s-kubernetes-what-happen-when-pod-from-create-to-running.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-904391967 | 2021-08-24 | 2021-09-26 | False | 40 | | [你的时间的尾端](https://limboy.me/2021/08/24/wbw-the-tail-end/) | https://github.com/yihong0618/2021/issues/21#issuecomment-905152401 | 2021-08-25 | 2021-09-26 | False | 41 | | [人文博客](http://www.zhuangbiaowei.com/blog/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906004226 | 2021-08-26 | 2021-09-26 | False | 42 | | [一个画师](https://www.artstation.com/zhiruiwang) | https://github.com/yihong0618/2021/issues/21#issuecomment-906071665 | 2021-08-26 | 2021-09-26 | False | 43 | | [Python type hint](https://aber.sh/articles/Define-model-with-type-hint/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906254121 | 2021-08-26 | 2021-09-01 | False | 44 | | [太精彩了 -> python子编译器资源竞争问题](https://shihai1991.github.io/python/2021/08/22/python%E5%AD%90%E7%BC%96%E8%AF%91%E5%99%A8%E8%B5%84%E6%BA%90%E7%AB%9E%E4%BA%89%E9%97%AE%E9%A2%98/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906980606 | 2021-08-27 | 2021-09-01 | False | 45 | | [可靠分布式系统-paxos的直观解释](https://blog.openacid.com/algo/paxos/) | https://github.com/yihong0618/2021/issues/21#issuecomment-906996078 | 2021-08-27 | 2021-09-01 | False | 46 | | [面试题](http://drmingdrmer.github.io/tech/algorithm/2019/01/09/dict-cmp.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-907000151 | 2021-08-27 | 2021-08-27 | False | 47 | | [博客](https://iknow.fun/) | https://github.com/yihong0618/2021/issues/21#issuecomment-907988899 | 2021-08-30 | 2021-08-30 | False | 48 | | [docker 原理实战篇](https://jasonkayzk.github.io/2021/08/29/Docker%E5%8E%9F%E7%90%86%E5%AE%9E%E6%88%98-1%EF%BC%9ANamespace/) | https://github.com/yihong0618/2021/issues/21#issuecomment-908037856 | 2021-08-30 | 2021-08-30 | False | 49 | | [Hack blog](https://github.com/m1dsummer/AD-2021) | https://github.com/yihong0618/2021/issues/21#issuecomment-908045176 | 2021-08-30 | 2021-08-30 | False | 50 | | [机会与准备。](https://61.life/2021/0828) | https://github.com/yihong0618/2021/issues/21#issuecomment-908070832 | 2021-08-30 | 2021-08-30 | False | 51 | | [程序员关于时间](https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca) | https://github.com/yihong0618/2021/issues/21#issuecomment-908073971 | 2021-08-30 | 2021-08-30 | False | 52 | | [SSL/TLS](https://introspelliam.github.io/2018/03/20/crypto/%E6%B7%B1%E5%BA%A6%E8%A7%A3%E8%AF%BBSSL-TLS%E5%AE%9E%E7%8E%B0/) | https://github.com/yihong0618/2021/issues/21#issuecomment-909751326 | 2021-09-01 | 2021-09-01 | False | 53 | | [乐观锁](https://www.jianshu.com/p/ae25eb3cfb5d) | https://github.com/yihong0618/2021/issues/21#issuecomment-909771820 | 2021-09-01 | 2021-09-01 | False | 54 | | [不可不说 Java 锁的事儿。](https://tech.meituan.com/2018/11/15/java-lock.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-909774513 | 2021-09-01 | 2021-09-01 | False | 55 | | [k8s](https://twitter.com/MeMoreKoo/status/1433071814574411787) | https://github.com/yihong0618/2021/issues/21#issuecomment-911075067 | 2021-09-02 | 2021-09-02 | False | 56 | | [go news](https://news.ycombinator.com/item?id=14462125) | https://github.com/yihong0618/2021/issues/21#issuecomment-911231536 | 2021-09-02 | 2021-09-02 | False | 57 | | [别做这样的家长。](https://medium.com/@plumpmonth/%E8%87%A8%E5%BA%8A%E8%AC%9B%E7%BE%A9-%E8%8F%AF%E4%BA%BA%E7%88%B6%E6%AF%8D%E8%A8%BA%E6%96%B7%E6%9B%B8-%E5%8C%97%E5%A4%A7%E7%8B%80%E5%85%8312%E5%B9%B4%E6%98%A5%E7%AF%80%E4%B8%8D%E6%AD%B8-279a09791d1b) | https://github.com/yihong0618/2021/issues/21#issuecomment-911329725 | 2021-09-02 | 2021-09-02 | False | 58 | | [源码分析博客](https://sf-zhou.github.io/) | https://github.com/yihong0618/2021/issues/21#issuecomment-912210350 | 2021-09-03 | 2021-09-03 | False | 59 | | [Java](https://changchen.me/blog/20210904/jvm-note/) | https://github.com/yihong0618/2021/issues/21#issuecomment-913275218 | 2021-09-06 | 2021-09-06 | False | 60 | | [BGP](https://github.com/Exa-Networks/exabgp) | https://github.com/yihong0618/2021/issues/21#issuecomment-913938774 | 2021-09-07 | 2021-09-07 | False | 61 | | [OOP](https://www.youtube.com/watch?v=GKYCA3UsmrU&ab_channel=vexe) | https://github.com/yihong0618/2021/issues/21#issuecomment-914906091 | 2021-09-08 | 2021-09-08 | False | 62 | | [阿里云盘](https://www.aliyundrive.com/s/dWWW5DXDvMg) | https://github.com/yihong0618/2021/issues/21#issuecomment-916691666 | 2021-09-10 | 2021-09-10 | False | 63 | | [加密,解密](https://github.com/MuggleK/Decrypt_JS) | https://github.com/yihong0618/2021/issues/21#issuecomment-916720589 | 2021-09-10 | 2021-09-10 | False | 64 | | [网络基本功系列](https://wizardforcel.gitbooks.io/network-basic/content/) | https://github.com/yihong0618/2021/issues/21#issuecomment-916827850 | 2021-09-10 | 2021-09-10 | False | 65 | | [有趣的博客](https://fpghwd.github.io) | https://github.com/yihong0618/2021/issues/21#issuecomment-917513103 | 2021-09-12 | 2021-09-23 | False | 66 | | [monads ](https://blog.jcoglan.com/2011/03/05/translation-from-haskell-to-javascript-of-selected-portions-of-the-best-introduction-to-monads-ive-ever-read/) | https://github.com/yihong0618/2021/issues/21#issuecomment-920562648 | 2021-09-16 | 2021-09-16 | False | 67 | | [digest](https://ftvision.github.io/digest/) | https://github.com/yihong0618/2021/issues/21#issuecomment-921487660 | 2021-09-17 | 2021-09-17 | False | 68 | | [网络基本功系列。]([网络基本功系列.pdf](https://github.com/yihong0618/2021/files/7183040/default.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-921524936 | 2021-09-17 | 2021-09-17 | True | 69 | | [概率](https://github.com/norvig/pytudes/blob/main/ipynb/Probability.ipynb) | https://github.com/yihong0618/2021/issues/21#issuecomment-921553759 | 2021-09-17 | 2021-09-17 | False | 70 | | [go 语言神人](https://mzh.io/) | https://github.com/yihong0618/2021/issues/21#issuecomment-921573769 | 2021-09-17 | 2021-09-17 | False | 71 | | [不错的博客](https://www.nosuchfield.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-922166183 | 2021-09-18 | 2021-09-18 | False | 72 | | [编译原理](http://craftinginterpreters.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-922169854 | 2021-09-18 | 2021-09-18 | False | 73 | | [math code](https://github.com/Jam3/math-as-code/blob/master/README-zh.md) | https://github.com/yihong0618/2021/issues/21#issuecomment-922237382 | 2021-09-18 | 2021-09-18 | False | 74 | | [开发人员的安全](https://github.com/Tencent/secguide) | https://github.com/yihong0618/2021/issues/21#issuecomment-924514059 | 2021-09-22 | 2021-09-22 | False | 75 | | [base64 in Python](https://stackabuse.com/encoding-and-decoding-base64-strings-in-python/) | https://github.com/yihong0618/2021/issues/21#issuecomment-924522110 | 2021-09-22 | 2021-09-22 | False | 76 | | [AIOPS](https://github.com/graviraja/MLOps-Basics) | https://github.com/yihong0618/2021/issues/21#issuecomment-924637019 | 2021-09-22 | 2021-09-22 | False | 77 | | [Games 101](http://games-cn.org/intro-graphics/) | https://github.com/yihong0618/2021/issues/21#issuecomment-924777428 | 2021-09-22 | 2021-09-22 | False | 78 | | [Go 相关博客](https://nanmu.me/zh-cn/archive) | https://github.com/yihong0618/2021/issues/21#issuecomment-925573567 | 2021-09-23 | 2021-09-23 | False | 79 | | [硬件茶谈](https://www.bilibili.com/video/BV1nL411x7jH) | https://github.com/yihong0618/2021/issues/21#issuecomment-927271559 | 2021-09-26 | 2021-09-26 | False | 80 | | [network for hackers ](https://www.hackers-arise.com/post/2019/05/20/network-basics-for-hackers-domain-name-service-dns-and-bind-theory-vulnerabilities-and-im) | https://github.com/yihong0618/2021/issues/21#issuecomment-927432189 | 2021-09-27 | 2021-09-27 | False | 81 | | [人脸识别](http://www.piginzoo.com/machine-learning/2021/09/15/face-recognition) | https://github.com/yihong0618/2021/issues/21#issuecomment-928859442 | 2021-09-28 | 2021-09-28 | False | 82 | | [有时间玩一下](https://github.com/marceloprates/prettymaps) | https://github.com/yihong0618/2021/issues/21#issuecomment-929022403 | 2021-09-28 | 2021-09-28 | False | 83 | | [XSS Django](https://tonybaloney.github.io/posts/xss-exploitation-in-django.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-930798201 | 2021-09-30 | 2021-09-30 | False | 84 | | [songma 推荐的书](https://twitter.com/songma/status/1443448534989111302) | https://github.com/yihong0618/2021/issues/21#issuecomment-930808273 | 2021-09-30 | 2021-09-30 | False | 85 | | [go 并发](https://divan.dev/posts/go_concurrency_visualize/) | https://github.com/yihong0618/2021/issues/21#issuecomment-930815036 | 2021-09-30 | 2021-09-30 | False | 86 | | [领域驱动设计与微服务](https://zhu327.github.io/2020/10/22/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%BE%AE%E6%9C%8D%E5%8A%A1/) | https://github.com/yihong0618/2021/issues/21#issuecomment-931030565 | 2021-09-30 | 2021-09-30 | False | 87 | | [我在掘金这 3 年](https://juejin.cn/post/6844904116276183053) | https://github.com/yihong0618/2021/issues/21#issuecomment-931031241 | 2021-09-30 | 2021-09-30 | False | 88 | | [希望有机会玩一下](https://github.com/snaptoken/kilo-tutorial) | https://github.com/yihong0618/2021/issues/21#issuecomment-938362270 | 2021-10-08 | 2021-10-08 | False | 89 | | [All about Monads](https://wiki.haskell.org/All_About_Monads) | https://github.com/yihong0618/2021/issues/21#issuecomment-938421774 | 2021-10-08 | 2021-10-08 | False | 90 | | [光线追踪](https://www.v2ex.com/t/551690) | https://github.com/yihong0618/2021/issues/21#issuecomment-938460997 | 2021-10-08 | 2021-10-09 | False | 91 | | [动画视频](https://www.shadertoy.com/view/4dSfRc) | https://github.com/yihong0618/2021/issues/21#issuecomment-939250781 | 2021-10-09 | 2021-10-09 | False | 92 | | [好多有趣的人](https://blog.k8s.li/friends.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-939675055 | 2021-10-11 | 2021-10-11 | False | 93 | | [名校公开课评价网](https://conanhujinming.github.io/comments-for-awesome-courses/) | https://github.com/yihong0618/2021/issues/21#issuecomment-939721310 | 2021-10-11 | 2021-10-11 | False | 94 | | [gevent](https://jiajunhuang.com/articles/2021_10_11-gevent_is_good_part2.md.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-940564342 | 2021-10-12 | 2021-10-12 | False | 95 | | [tinyrender](https://github.com/ssloy/tinyrenderer) | https://github.com/yihong0618/2021/issues/21#issuecomment-940609736 | 2021-10-12 | 2021-10-12 | False | 96 | | [人脸识别](http://www.piginzoo.com/machine-learning/2021/09/15/face-recognition) | https://github.com/yihong0618/2021/issues/21#issuecomment-941932128 | 2021-10-13 | 2021-10-13 | False | 97 | | [checkbox 神人](https://www.bryanbraun.com/blog/) | https://github.com/yihong0618/2021/issues/21#issuecomment-941940302 | 2021-10-13 | 2021-10-13 | False | 98 | | [C++ 相关](模板https://zhuanlan.zhihu.com/p/101898043) | https://github.com/yihong0618/2021/issues/21#issuecomment-941945641 | 2021-10-13 | 2021-10-13 | False | 99 | | [编译器神人](http://maskray.me/blog/presentations/) | https://github.com/yihong0618/2021/issues/21#issuecomment-942945377 | 2021-10-14 | 2021-10-14 | False | 100 | | [喜欢](https://lingsamuel.github.io/page/) | https://github.com/yihong0618/2021/issues/21#issuecomment-944104779 | 2021-10-15 | 2021-10-15 | False | 101 | | [加速 Actions](https://hanxiao.io/2021/01/24/Speedup-CI-Workflow-in-Github-Actions-via-Strategy-Matrix/) | https://github.com/yihong0618/2021/issues/21#issuecomment-944843221 | 2021-10-16 | 2021-10-16 | False | 102 | | [计算机中的数学(书)]([unplugged-zh-cn.pdf](https://github.com/yihong0618/2021/files/7370428/unplugged-zh-cn.pdf)) | https://github.com/yihong0618/2021/issues/21#issuecomment-946378349 | 2021-10-19 | 2021-10-19 | True | 103 | | [xintao 的文章每篇都值得 mark (tty)](https://www.kawabangga.com/posts/4515) | https://github.com/yihong0618/2021/issues/21#issuecomment-947212700 | 2021-10-20 | 2021-10-20 | False | 104 | | [Java 代码是怎样运行的](https://yasinshaw.com/articles/124) | https://github.com/yihong0618/2021/issues/21#issuecomment-947227388 | 2021-10-20 | 2021-10-20 | False | 105 | | [linux 信号机制](http://gityuan.com/2015/12/20/signal/) | https://github.com/yihong0618/2021/issues/21#issuecomment-947268524 | 2021-10-20 | 2021-10-20 | False | 106 | | [指针](https://boredzo.org/pointers/) | https://github.com/yihong0618/2021/issues/21#issuecomment-949281541 | 2021-10-22 | 2021-10-22 | False | 107 | | [微信](https://github.com/holdyeah/wechat-pc-hook-python) | https://github.com/yihong0618/2021/issues/21#issuecomment-949323827 | 2021-10-22 | 2021-10-22 | False | 108 | | [WTF](https://realpython.com/python-boolean/#chaining-comparison-operators) | https://github.com/yihong0618/2021/issues/21#issuecomment-950059860 | 2021-10-23 | 2021-10-23 | False | 109 | | [es](https://juejin.cn/post/7009593798011387917) | https://github.com/yihong0618/2021/issues/21#issuecomment-951491025 | 2021-10-26 | 2021-10-26 | False | 110 | | [音频相关](https://github.com/0voice/audio_video_streaming) | https://github.com/yihong0618/2021/issues/21#issuecomment-952477341 | 2021-10-27 | 2021-10-27 | False | 111 | | [遛狗指南](https://via.moe/katago-vs-leelazero/) | https://github.com/yihong0618/2021/issues/21#issuecomment-953503009 | 2021-10-28 | 2021-10-28 | False | 112 | | [《DDIA》 牛逼](https://github.com/slidoooor/computer_book_list) | https://github.com/yihong0618/2021/issues/21#issuecomment-954447856 | 2021-10-29 | 2021-10-29 | False | 113 | | [ChineseAiDungeon开发log](http://icybee.cn/article/71.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-957036873 | 2021-11-02 | 2021-11-02 | False | 114 | | [超级牛的博客](http://accu.cc/) | https://github.com/yihong0618/2021/issues/21#issuecomment-957187396 | 2021-11-02 | 2021-11-02 | False | 115 | | [傅里叶变换](https://www.cnblogs.com/h2zZhou/p/8405717.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-958581564 | 2021-11-03 | 2021-11-03 | False | 116 | | [python 打包101](https://frostming.com/2021/10-20/pycon-china-2021/) | https://github.com/yihong0618/2021/issues/21#issuecomment-958683262 | 2021-11-03 | 2021-11-03 | False | 117 | | [一本神书,希望有精力看](http://craftinginterpreters.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-961540713 | 2021-11-05 | 2021-11-05 | False | 118 | | [牛逼啊](https://frostming.com/2019/03-13/where-do-your-packages-go/#%E8%84%9A%E6%9C%AC%E8%BF%90%E8%A1%8C%E6%96%B9%E5%BC%8F%E5%AF%B9%E6%90%9C%E7%B4%A2%E8%B7%AF%E5%BE%84%E7%9A%84%E5%BD%B1%E5%93%8D) | https://github.com/yihong0618/2021/issues/21#issuecomment-961580339 | 2021-11-05 | 2021-11-05 | False | 119 | | [kafka](https://levelup.gitconnected.com/kafka-for-engineers-975feaea6067) | https://github.com/yihong0618/2021/issues/21#issuecomment-962741347 | 2021-11-08 | 2021-11-08 | False | 120 | | [SRE 路线](https://github.com/bregman-arie/devops-exercises) | https://github.com/yihong0618/2021/issues/21#issuecomment-965930015 | 2021-11-11 | 2021-11-11 | False | 121 | | [前端](https://github.com/ProtoTeam/blog) | https://github.com/yihong0618/2021/issues/21#issuecomment-975175622 | 2021-11-22 | 2021-11-22 | False | 122 | | [argparse](https://frostming.com/2021/11-23/advanced-argparse/) | https://github.com/yihong0618/2021/issues/21#issuecomment-976483709 | 2021-11-23 | 2021-11-23 | False | 123 | | [figma](https://www.figma.com/blog/section/engineering/) | https://github.com/yihong0618/2021/issues/21#issuecomment-983355885 | 2021-12-01 | 2021-12-01 | False | 124 | | [事件循环](https://github.com/aceld/libevent) | https://github.com/yihong0618/2021/issues/21#issuecomment-984228398 | 2021-12-02 | 2021-12-02 | False | 125 | | [BBBBBTREE](https://github.com/lichuang/algorithm_notes/blob/master/btree/btree.py) | https://github.com/yihong0618/2021/issues/21#issuecomment-984250614 | 2021-12-02 | 2021-12-03 | False | 126 | | [思维导图](https://www.plectica.com/) | https://github.com/yihong0618/2021/issues/21#issuecomment-985151997 | 2021-12-03 | 2021-12-03 | False | 127 | | [LRU cache](https://realpython.com/lru-cache-python/) | https://github.com/yihong0618/2021/issues/21#issuecomment-986388616 | 2021-12-06 | 2021-12-06 | False | 128 | | [线条表达内心的画](https://www.behance.net/nova_introvert) | https://github.com/yihong0618/2021/issues/21#issuecomment-988495839 | 2021-12-08 | 2021-12-08 | False | 129 | | [也要记笔记](https://github.com/nikitavoloboev/knowledge) | https://github.com/yihong0618/2021/issues/21#issuecomment-988558570 | 2021-12-08 | 2021-12-08 | False | 130 | | [redis 作者的博客](http://antirez.com/latest/0) | https://github.com/yihong0618/2021/issues/21#issuecomment-990603446 | 2021-12-10 | 2021-12-10 | False | 131 | | [搞懂容器的基石 namespace](https://moelove.info/2021/12/10/%E6%90%9E%E6%87%82%E5%AE%B9%E5%99%A8%E6%8A%80%E6%9C%AF%E7%9A%84%E5%9F%BA%E7%9F%B3-namespace-%E4%B8%8A/) | https://github.com/yihong0618/2021/issues/21#issuecomment-990616193 | 2021-12-10 | 2021-12-10 | False | 132 | | [dpark 漫谈](https://github.com/zzl0/DparkIntro) | https://github.com/yihong0618/2021/issues/21#issuecomment-990706694 | 2021-12-10 | 2021-12-10 | False | 133 | | [寻路算法](https://github.com/zhm-real/PathPlanning) | https://github.com/yihong0618/2021/issues/21#issuecomment-992078233 | 2021-12-13 | 2021-12-13 | False | 134 | | [kong 源码分析](https://shoujo.ink/2021/09/kong-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/) | https://github.com/yihong0618/2021/issues/21#issuecomment-993273355 | 2021-12-14 | 2021-12-14 | False | 135 | | [神人](https://easyperf.net/notes/) | https://github.com/yihong0618/2021/issues/21#issuecomment-994371946 | 2021-12-15 | 2021-12-15 | False | 136 | | [好美](https://github.com/inconvergent/weird) | https://github.com/yihong0618/2021/issues/21#issuecomment-994487337 | 2021-12-15 | 2021-12-15 | False | 137 | | [Dynamic Brainfuck](https://adam-mcdaniel.github.io/harbor/) | https://github.com/yihong0618/2021/issues/21#issuecomment-995391083 | 2021-12-16 | 2021-12-16 | False | 138 | | [牛逼的逆向](https://github.red/asoul-video-trick/) | https://github.com/yihong0618/2021/issues/21#issuecomment-998549397 | 2021-12-21 | 2021-12-21 | False | 139 | | [docker everything ](https://nystudio107.com/blog/dock-life-using-docker-for-all-the-things) | https://github.com/yihong0618/2021/issues/21#issuecomment-1000602741 | 2021-12-24 | 2021-12-24 | False | 140 | | [记笔记记笔记](https://roamresearch.com/#/app/FEZ/page/N7HgMbToE) | https://github.com/yihong0618/2021/issues/21#issuecomment-1001849830 | 2021-12-28 | 2021-12-28 | False | 141 | | [Writing a simple JSON parser](https://notes.eatonphil.com/writing-a-simple-json-parser.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1001904335 | 2021-12-28 | 2021-12-30 | False | 142 | | [rust](https://course.rs/about-book.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1002837177 | 2021-12-30 | 2021-12-30 | False | 143 | | [C 语言](https://iota.huohuo.moe/OO-in-C.html) | https://github.com/yihong0618/2021/issues/21#issuecomment-1003291832 | 2021-12-31 | 2021-12-31 | False | 144 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2021 2 | 关于我的2021的一些记录。想做就尽量去做,不要辜负自己好奇心。Be Nice. 3 | 4 | ## 我的数字 5 | 6 | 7 | | Name | Status | Streak | Today? | 8 | | ---- | ---- | ---- | ---- | 9 | | [词场](https://twitter.com/yihong06181/status/1359040099107897344?s=20) | 336 (天) | 0 | NO | 10 | | [俯卧撑](https://github.com/yihong0618/2021/issues/5) | 10576 (个) | 1 | NO | 11 | | [冥想](https://github.com/yihong0618/2021/issues/9) | 190 (分钟) | 0 | NO | 12 | | [早起](https://github.com/yihong0618/2021/issues/12) | 206 (天) | 1 | NO | 13 | | [GTD](https://github.com/yihong0618/2021/issues/17) | 123 (个) | 0 | NO | 14 | | [周记](https://github.com/yihong0618/2021/issues/18) | 35 (周) | 0 | NO | 15 | 16 | 17 | 18 | ## 跑步 19 | 20 | ![](https://github.com/yihong0618/blog/blob/master/assets/github_2021.svg) 21 | 22 | ## 我的 GitHub 23 | 24 | 25 | ![](https://raw.githubusercontent.com/yihong0618/GitHubPoster/main/examples/github.svg) 26 | 27 | 28 | ## The repos I created 29 | | ID | REPO | START | UPDATE | LAUGUAGE | STARS | 30 | |-----|----------------------------------------------------------------------------------------|------------|------------|------------|-------| 31 | | 1 | [running_page](https://github.com/yihong0618/running_page) | 2020-09-17 | 2022-01-01 | Python | 1540 | 32 | | 2 | [GitHubPoster](https://github.com/yihong0618/GitHubPoster) | 2021-04-21 | 2022-01-01 | Python | 634 | 33 | | 3 | [gitblog](https://github.com/yihong0618/gitblog) | 2019-07-18 | 2021-12-30 | Python | 350 | 34 | | 4 | [2021](https://github.com/yihong0618/2021) | 2020-12-21 | 2022-01-01 | Python | 225 | 35 | | 5 | [2020](https://github.com/yihong0618/2020) | 2020-01-10 | 2021-12-23 | C | 127 | 36 | | 6 | [gaycore](https://github.com/yihong0618/gaycore) | 2019-02-18 | 2021-12-24 | Python | 92 | 37 | | 7 | [iBeats](https://github.com/yihong0618/iBeats) | 2021-06-11 | 2022-01-01 | Python | 87 | 38 | | 8 | [vscode-gcores](https://github.com/yihong0618/vscode-gcores) | 2020-01-04 | 2021-12-19 | TypeScript | 83 | 39 | | 9 | [github-readme-stats](https://github.com/yihong0618/github-readme-stats) | 2020-12-24 | 2021-12-31 | Go | 67 | 40 | | 10 | [dalian-IT](https://github.com/yihong0618/dalian-IT) | 2021-04-07 | 2021-12-30 | md | 53 | 41 | | 11 | [duolingo_remember](https://github.com/yihong0618/duolingo_remember) | 2021-01-18 | 2021-09-11 | Python | 35 | 42 | | 12 | [shanbay_remember](https://github.com/yihong0618/shanbay_remember) | 2020-12-02 | 2021-12-30 | JavaScript | 34 | 43 | | 13 | [nbnhhsh-cli](https://github.com/yihong0618/nbnhhsh-cli) | 2021-07-09 | 2021-11-12 | Python | 29 | 44 | | 14 | [gcores_calendar](https://github.com/yihong0618/gcores_calendar) | 2020-08-24 | 2022-01-01 | JavaScript | 26 | 45 | | 15 | [pengdu_helper](https://github.com/yihong0618/pengdu_helper) | 2021-09-09 | 2021-12-09 | Go | 24 | 46 | | 16 | [my_kindle_stats](https://github.com/yihong0618/my_kindle_stats) | 2021-11-18 | 2022-01-01 | Python | 21 | 47 | | 17 | [running_skyline](https://github.com/yihong0618/running_skyline) | 2021-03-02 | 2021-11-14 | Python | 19 | 48 | | 18 | [blog](https://github.com/yihong0618/blog) | 2020-06-22 | 2022-01-01 | JavaScript | 14 | 49 | | 19 | [Runtastic](https://github.com/yihong0618/Runtastic) | 2020-07-24 | 2021-07-30 | Python | 8 | 50 | | 20 | [github-readme-stats-server](https://github.com/yihong0618/github-readme-stats-server) | 2021-12-08 | 2021-12-18 | HTML | 7 | 51 | | 21 | [Python365](https://github.com/yihong0618/Python365) | 2019-09-05 | 2021-07-09 | Python | 6 | 52 | | 22 | [yihong0618](https://github.com/yihong0618/yihong0618) | 2020-07-16 | 2021-12-17 | md | 6 | 53 | | 23 | [run](https://github.com/yihong0618/run) | 2021-08-16 | 2022-01-01 | Python | 2 | 54 | | 24 | [2022](https://github.com/yihong0618/2022) | 2022-01-01 | 2022-01-01 | Python | 2 | 55 | | 25 | [edocteel001](https://github.com/yihong0618/edocteel001) | 2019-11-12 | 2020-05-18 | JavaScript | 1 | 56 | | 26 | [github_upstream_script](https://github.com/yihong0618/github_upstream_script) | 2021-05-08 | 2021-05-08 | Python | 1 | 57 | | 27 | [gaycore-server](https://github.com/yihong0618/gaycore-server) | 2019-02-18 | 2020-11-02 | Go | 0 | 58 | | 28 | [test_svg](https://github.com/yihong0618/test_svg) | 2021-03-18 | 2021-09-17 | md | 0 | 59 | | sum | | | | | 3493 | 60 | 61 | ## The repos I contributed to 62 | | ID | REPO | FIRSTDATE | LASTEDATE | PRCOUNT | 63 | |-----|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------| 64 | | 1 | [GpxTrackPoster](https://github.com/flopp/GpxTrackPoster) | [2019-08-06](https://github.com/flopp/GpxTrackPoster/pull/39) | [2021-03-20](https://github.com/flopp/GpxTrackPoster/pull/87) | [12](https://github.com/flopp/GpxTrackPoster/pulls?q=is%3Apr+author%3Ayihong0618) | 65 | | 2 | [leetcode-cli](https://github.com/leetcode-tools/leetcode-cli) | [2019-11-29](https://github.com/leetcode-tools/leetcode-cli/pull/31) | [2020-08-21](https://github.com/leetcode-tools/leetcode-cli/pull/49) | [8](https://github.com/leetcode-tools/leetcode-cli/pulls?q=is%3Apr+author%3Ayihong0618) | 66 | | 3 | [vscode-leetcode](https://github.com/LeetCode-OpenSource/vscode-leetcode) | [2019-12-03](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/487) | [2020-07-22](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/602) | [6](https://github.com/LeetCode-OpenSource/vscode-leetcode/pulls?q=is%3Apr+author%3Ayihong0618) | 67 | | 4 | [nrc-exporter](https://github.com/yasoob/nrc-exporter) | [2020-07-05](https://github.com/yasoob/nrc-exporter/pull/2) | [2020-10-07](https://github.com/yasoob/nrc-exporter/pull/11) | [5](https://github.com/yasoob/nrc-exporter/pulls?q=is%3Apr+author%3Ayihong0618) | 68 | | 5 | [taichi](https://github.com/taichi-dev/taichi) | [2021-09-23](https://github.com/taichi-dev/taichi/pull/2979) | [2021-10-23](https://github.com/taichi-dev/taichi/pull/3256) | [5](https://github.com/taichi-dev/taichi/pulls?q=is%3Apr+author%3Ayihong0618) | 69 | | 6 | [awesome-cn-cafe](https://github.com/ElaWorkshop/awesome-cn-cafe) | [2020-08-04](https://github.com/ElaWorkshop/awesome-cn-cafe/pull/167) | [2020-08-10](https://github.com/ElaWorkshop/awesome-cn-cafe/pull/170) | [3](https://github.com/ElaWorkshop/awesome-cn-cafe/pulls?q=is%3Apr+author%3Ayihong0618) | 70 | | 7 | [kb](https://github.com/gnebbia/kb) | [2020-09-21](https://github.com/gnebbia/kb/pull/13) | [2020-09-23](https://github.com/gnebbia/kb/pull/28) | [3](https://github.com/gnebbia/kb/pulls?q=is%3Apr+author%3Ayihong0618) | 71 | | 8 | [nebula-python](https://github.com/vesoft-inc/nebula-python) | [2021-05-19](https://github.com/vesoft-inc/nebula-python/pull/106) | [2021-05-20](https://github.com/vesoft-inc/nebula-python/pull/108) | [2](https://github.com/vesoft-inc/nebula-python/pulls?q=is%3Apr+author%3Ayihong0618) | 72 | | 9 | [iredis](https://github.com/laixintao/iredis) | [2019-12-30](https://github.com/laixintao/iredis/pull/184) | [2020-09-16](https://github.com/laixintao/iredis/pull/360) | [2](https://github.com/laixintao/iredis/pulls?q=is%3Apr+author%3Ayihong0618) | 73 | | 10 | [strava-datasource](https://github.com/grafana/strava-datasource) | [2021-04-13](https://github.com/grafana/strava-datasource/pull/34) | [2021-05-13](https://github.com/grafana/strava-datasource/pull/39) | [2](https://github.com/grafana/strava-datasource/pulls?q=is%3Apr+author%3Ayihong0618) | 74 | | 11 | [Tweet2Telegram](https://github.com/NeverBehave/Tweet2Telegram) | [2021-05-21](https://github.com/NeverBehave/Tweet2Telegram/pull/7) | [2021-05-21](https://github.com/NeverBehave/Tweet2Telegram/pull/7) | [2](https://github.com/NeverBehave/Tweet2Telegram/pulls?q=is%3Apr+author%3Ayihong0618) | 75 | | 12 | [activities](https://github.com/flopp/activities) | [2020-07-09](https://github.com/flopp/activities/pull/41) | [2020-07-14](https://github.com/flopp/activities/pull/44) | [2](https://github.com/flopp/activities/pulls?q=is%3Apr+author%3Ayihong0618) | 76 | | 13 | [databend](https://github.com/datafuselabs/databend) | [2021-12-29](https://github.com/datafuselabs/databend/pull/3690) | [2021-12-30](https://github.com/datafuselabs/databend/pull/3701) | [2](https://github.com/datafuselabs/databend/pulls?q=is%3Apr+author%3Ayihong0618) | 77 | | 14 | [python-garminconnect](https://github.com/cyberjunky/python-garminconnect) | [2021-02-26](https://github.com/cyberjunky/python-garminconnect/pull/43) | [2021-05-25](https://github.com/cyberjunky/python-garminconnect/pull/49) | [2](https://github.com/cyberjunky/python-garminconnect/pulls?q=is%3Apr+author%3Ayihong0618) | 78 | | 15 | [py-staticmaps](https://github.com/flopp/py-staticmaps) | [2020-09-20](https://github.com/flopp/py-staticmaps/pull/7) | [2021-03-24](https://github.com/flopp/py-staticmaps/pull/17) | [2](https://github.com/flopp/py-staticmaps/pulls?q=is%3Apr+author%3Ayihong0618) | 79 | | 16 | [GadioVideo](https://github.com/rabbitism/GadioVideo) | [2019-09-25](https://github.com/rabbitism/GadioVideo/pull/16) | [2019-09-25](https://github.com/rabbitism/GadioVideo/pull/16) | [1](https://github.com/rabbitism/GadioVideo/pulls?q=is%3Apr+author%3Ayihong0618) | 80 | | 17 | [olo](https://github.com/yetone/olo) | [2021-04-12](https://github.com/yetone/olo/pull/91) | [2021-04-12](https://github.com/yetone/olo/pull/91) | [1](https://github.com/yetone/olo/pulls?q=is%3Apr+author%3Ayihong0618) | 81 | | 18 | [tokei-pie](https://github.com/laixintao/tokei-pie) | [2021-11-19](https://github.com/laixintao/tokei-pie/pull/2) | [2021-11-19](https://github.com/laixintao/tokei-pie/pull/2) | [1](https://github.com/laixintao/tokei-pie/pulls?q=is%3Apr+author%3Ayihong0618) | 82 | | 19 | [hub-mirror-action](https://github.com/Yikun/hub-mirror-action) | [2021-04-09](https://github.com/Yikun/hub-mirror-action/pull/101) | [2021-04-09](https://github.com/Yikun/hub-mirror-action/pull/101) | [1](https://github.com/Yikun/hub-mirror-action/pulls?q=is%3Apr+author%3Ayihong0618) | 83 | | 20 | [databend-playground](https://github.com/datafuselabs/databend-playground) | [2021-12-22](https://github.com/datafuselabs/databend-playground/pull/10) | [2021-12-22](https://github.com/datafuselabs/databend-playground/pull/10) | [1](https://github.com/datafuselabs/databend-playground/pulls?q=is%3Apr+author%3Ayihong0618) | 84 | | 21 | [MangaLineExtraction_PyTorch](https://github.com/ljsabc/MangaLineExtraction_PyTorch) | [2021-09-22](https://github.com/ljsabc/MangaLineExtraction_PyTorch/pull/3) | [2021-09-22](https://github.com/ljsabc/MangaLineExtraction_PyTorch/pull/3) | [1](https://github.com/ljsabc/MangaLineExtraction_PyTorch/pulls?q=is%3Apr+author%3Ayihong0618) | 85 | | 22 | [LearnJapan](https://github.com/wizicer/LearnJapan) | [2020-03-31](https://github.com/wizicer/LearnJapan/pull/2) | [2020-03-31](https://github.com/wizicer/LearnJapan/pull/2) | [1](https://github.com/wizicer/LearnJapan/pulls?q=is%3Apr+author%3Ayihong0618) | 86 | | 23 | [build-your-own-vue](https://github.com/jackiewillen/build-your-own-vue) | [2020-01-16](https://github.com/jackiewillen/build-your-own-vue/pull/1) | [2020-01-16](https://github.com/jackiewillen/build-your-own-vue/pull/1) | [1](https://github.com/jackiewillen/build-your-own-vue/pulls?q=is%3Apr+author%3Ayihong0618) | 87 | | 24 | [awesome-database-learning](https://github.com/pingcap/awesome-database-learning) | [2021-05-11](https://github.com/pingcap/awesome-database-learning/pull/37) | [2021-05-11](https://github.com/pingcap/awesome-database-learning/pull/37) | [1](https://github.com/pingcap/awesome-database-learning/pulls?q=is%3Apr+author%3Ayihong0618) | 88 | | 25 | [highlight](https://github.com/wenyan-lang/highlight) | [2020-09-08](https://github.com/wenyan-lang/highlight/pull/4) | [2020-09-08](https://github.com/wenyan-lang/highlight/pull/4) | [1](https://github.com/wenyan-lang/highlight/pulls?q=is%3Apr+author%3Ayihong0618) | 89 | | 26 | [awesome-cn-cafe-web](https://github.com/antfu/awesome-cn-cafe-web) | [2020-08-18](https://github.com/antfu/awesome-cn-cafe-web/pull/5) | [2020-08-18](https://github.com/antfu/awesome-cn-cafe-web/pull/5) | [1](https://github.com/antfu/awesome-cn-cafe-web/pulls?q=is%3Apr+author%3Ayihong0618) | 90 | | 27 | [notion-avatar](https://github.com/Mayandev/notion-avatar) | [2021-09-28](https://github.com/Mayandev/notion-avatar/pull/1) | [2021-09-28](https://github.com/Mayandev/notion-avatar/pull/1) | [1](https://github.com/Mayandev/notion-avatar/pulls?q=is%3Apr+author%3Ayihong0618) | 91 | | 28 | [help-to-be-helped](https://github.com/xiaolai/help-to-be-helped) | [2020-02-04](https://github.com/xiaolai/help-to-be-helped/pull/4) | [2020-02-04](https://github.com/xiaolai/help-to-be-helped/pull/4) | [1](https://github.com/xiaolai/help-to-be-helped/pulls?q=is%3Apr+author%3Ayihong0618) | 92 | | 29 | [TopList](https://github.com/tophubs/TopList) | [2019-08-19](https://github.com/tophubs/TopList/pull/13) | [2019-08-19](https://github.com/tophubs/TopList/pull/13) | [1](https://github.com/tophubs/TopList/pulls?q=is%3Apr+author%3Ayihong0618) | 93 | | 30 | [nebula](https://github.com/vesoft-inc/nebula) | [2021-05-17](https://github.com/vesoft-inc/nebula/pull/2476) | [2021-05-17](https://github.com/vesoft-inc/nebula/pull/2476) | [1](https://github.com/vesoft-inc/nebula/pulls?q=is%3Apr+author%3Ayihong0618) | 94 | | 31 | [stravalib](https://github.com/hozn/stravalib) | [2021-08-18](https://github.com/hozn/stravalib/pull/218) | [2021-08-18](https://github.com/hozn/stravalib/pull/218) | [1](https://github.com/hozn/stravalib/pulls?q=is%3Apr+author%3Ayihong0618) | 95 | | 32 | [xrkffgg](https://github.com/xrkffgg/xrkffgg) | [2021-03-18](https://github.com/xrkffgg/xrkffgg/pull/3) | [2021-03-18](https://github.com/xrkffgg/xrkffgg/pull/3) | [1](https://github.com/xrkffgg/xrkffgg/pulls?q=is%3Apr+author%3Ayihong0618) | 96 | | 33 | [gitlab-skyline](https://github.com/felixgomez/gitlab-skyline) | [2021-03-02](https://github.com/felixgomez/gitlab-skyline/pull/6) | [2021-03-02](https://github.com/felixgomez/gitlab-skyline/pull/6) | [1](https://github.com/felixgomez/gitlab-skyline/pulls?q=is%3Apr+author%3Ayihong0618) | 97 | | 34 | [gpdb](https://github.com/greenplum-db/gpdb) | [2021-12-13](https://github.com/greenplum-db/gpdb/pull/12925) | [2021-12-13](https://github.com/greenplum-db/gpdb/pull/12925) | [1](https://github.com/greenplum-db/gpdb/pulls?q=is%3Apr+author%3Ayihong0618) | 98 | | sum | | | | 77 | 99 | 100 | ## The repos I stared (random 10) 101 | | ID | REPO | STAREDDATE | LAUGUAGE | LATESTUPDATE | 102 | |----|------------------------------------------------------------------------------------|------------|------------------|--------------| 103 | | 1 | [perfect-arrows](https://github.com/steveruizok/perfect-arrows) | 2021-06-29 | TypeScript | 2022-01-01 | 104 | | 2 | [playwright](https://github.com/microsoft/playwright) | 2020-01-23 | TypeScript | 2022-01-01 | 105 | | 3 | [useful-sed](https://github.com/adrianscheff/useful-sed) | 2021-11-12 | md | 2021-12-31 | 106 | | 4 | [100-Days-Of-ML-Code](https://github.com/MLEveryday/100-Days-Of-ML-Code) | 2018-09-02 | Jupyter Notebook | 2022-01-01 | 107 | | 5 | [lazydata](https://github.com/rstojnic/lazydata) | 2018-09-05 | Python | 2021-11-24 | 108 | | 6 | [what-happens-when-zh_CN](https://github.com/skyline75489/what-happens-when-zh_CN) | 2021-02-02 | md | 2022-01-01 | 109 | | 7 | [go-epub](https://github.com/bmaupin/go-epub) | 2021-09-08 | Go | 2021-12-17 | 110 | | 8 | [dingdang-robot](https://github.com/wzpan/dingdang-robot) | 2018-01-03 | Python | 2021-12-27 | 111 | | 9 | [hacker101](https://github.com/Hacker0x01/hacker101) | 2020-07-27 | SCSS | 2022-01-01 | 112 | | 10 | [leek-fund](https://github.com/LeekHub/leek-fund) | 2020-09-16 | TypeScript | 2021-12-30 | 113 | 114 | 115 | 116 | ## 刷剧 117 | 118 | 119 | | Name | Start | Update | 120 | | ---- | ---- | ---- | 121 | | [《弥留之际的爱丽丝》](https://github.com/yihong0618/2021/issues/8#issuecomment-763342696) | 2021-01-20 | 2021-01-20 | 122 | | [《旺达幻视》](https://github.com/yihong0618/2021/issues/8#issuecomment-781113541) | 2021-02-18 | 2021-02-18 | 123 | | [《猎鹰与冬兵》](https://github.com/yihong0618/2021/issues/8#issuecomment-826454493) | 2021-04-26 | 2021-04-26 | 124 | | [《爱死亡和机器人》](https://github.com/yihong0618/2021/issues/8#issuecomment-842002234) | 2021-05-17 | 2021-05-17 | 125 | | [《洛基》](https://github.com/yihong0618/2021/issues/8#issuecomment-863793107) | 2021-06-18 | 2021-06-18 | 126 | | [《What If...》](https://github.com/yihong0618/2021/issues/8#issuecomment-924714652) | 2021-09-22 | 2021-09-22 | 127 | | [《鱿鱼游戏》](https://github.com/yihong0618/2021/issues/8#issuecomment-938248022) | 2021-10-08 | 2021-10-08 | 128 | | [《毒枭墨西哥第三季》](https://github.com/yihong0618/2021/issues/8#issuecomment-974731693) | 2021-11-21 | 2021-11-21 | 129 | 130 | 131 | 132 | ## 追番 133 | 134 | 135 | | Name | Start | Update | 136 | | ---- | ---- | ---- | 137 | | [《魔法少女小圆》](https://github.com/yihong0618/2021/issues/6#issuecomment-762793498) | 2021-01-19 | 2021-01-20 | 138 | | [《堀与宫村》](https://github.com/yihong0618/2021/issues/6#issuecomment-766481567) | 2021-01-25 | 2021-01-25 | 139 | | [《夏日重现》](https://github.com/yihong0618/2021/issues/6#issuecomment-792417270) | 2021-03-08 | 2021-03-08 | 140 | | [《杀手寓言》](https://github.com/yihong0618/2021/issues/6#issuecomment-814546620) | 2021-04-07 | 2021-04-07 | 141 | | [《Odd Taxi》](https://github.com/yihong0618/2021/issues/6#issuecomment-905063357) | 2021-08-25 | 2021-08-25 | 142 | | [《瑞克和莫蒂》](https://github.com/yihong0618/2021/issues/6#issuecomment-913369998) | 2021-09-06 | 2021-09-06 | 143 | | [《阴谋办公室》](https://github.com/yihong0618/2021/issues/6#issuecomment-981223271) | 2021-11-29 | 2021-11-29 | 144 | 145 | 146 | 147 | ## 观影 148 | 149 | 150 | | Name | Start | Update | 151 | | ---- | ---- | ---- | 152 | | [《汽车总动员第一部》](https://github.com/yihong0618/2021/issues/2#issuecomment-757446059) | 2021-01-10 | 2021-01-12 | 153 | | [《汽车总动员第二部》](https://github.com/yihong0618/2021/issues/2#issuecomment-757454250) | 2021-01-10 | 2021-01-12 | 154 | | [《送你一朵小红花》](https://github.com/yihong0618/2021/issues/2#issuecomment-757455042) | 2021-01-10 | 2021-01-12 | 155 | | [《悬崖之下》](https://github.com/yihong0618/2021/issues/2#issuecomment-830620223) | 2021-05-01 | 2021-05-01 | 156 | | [《无罪之最》](https://github.com/yihong0618/2021/issues/2#issuecomment-833179636) | 2021-05-06 | 2021-05-06 | 157 | | [《怒火,重案》](https://github.com/yihong0618/2021/issues/2#issuecomment-898868296) | 2021-08-14 | 2021-08-14 | 158 | | [《秒速五厘米》](https://github.com/yihong0618/2021/issues/2#issuecomment-927270339) | 2021-09-26 | 2021-09-26 | 159 | | [《长津湖》](https://github.com/yihong0618/2021/issues/2#issuecomment-939658015) | 2021-10-11 | 2021-10-11 | 160 | 161 | 162 | 163 | ## 游戏 164 | 165 | | Name | Start | Update | 166 | | ---- | ---- | ---- | 167 | | [《哈迪斯》](https://github.com/yihong0618/2021/issues/11#issuecomment-772144499) | 2021-02-03 | 2021-02-03 | 168 | | [《马里奥手游》](https://github.com/yihong0618/2021/issues/11#issuecomment-800756308) | 2021-03-17 | 2021-03-17 | 169 | | [《以撒》](https://github.com/yihong0618/2021/issues/11#issuecomment-873855697) | 2021-07-05 | 2021-07-05 | 170 | | [《into the breach》](https://github.com/yihong0618/2021/issues/11#issuecomment-984220402) | 2021-12-02 | 2021-12-02 | 171 | | [《BABA is you》](https://github.com/yihong0618/2021/issues/11#issuecomment-1001287672) | 2021-12-27 | 2021-12-27 | 172 | 173 | 174 | 175 | 176 | ## 读书 177 | 178 | 179 | | Name | Start | Update | 180 | | ---- | ---- | ---- | 181 | | [《国境以南太阳以西》](https://github.com/yihong0618/2021/issues/3#issuecomment-757978780) | 2021-01-11 | 2021-01-12 | 182 | | [《一夫食堂》](https://github.com/yihong0618/2021/issues/3#issuecomment-782747734) | 2021-02-20 | 2021-02-20 | 183 | | [《火星救援》](https://github.com/yihong0618/2021/issues/3#issuecomment-806286053) | 2021-03-25 | 2021-03-25 | 184 | | [《烟与镜》](https://github.com/yihong0618/2021/issues/3#issuecomment-822930818) | 2021-04-20 | 2021-04-20 | 185 | | [《海边的卡夫卡》](https://github.com/yihong0618/2021/issues/3#issuecomment-851099293) | 2021-05-31 | 2021-05-31 | 186 | | [《Look Back》](https://github.com/yihong0618/2021/issues/3#issuecomment-890731615) | 2021-08-02 | 2021-08-02 | 187 | | [《绝叫》](https://github.com/yihong0618/2021/issues/3#issuecomment-903305123) | 2021-08-22 | 2021-08-23 | 188 | | [《The Little Schemer》](https://github.com/yihong0618/2021/issues/3#issuecomment-908828749) | 2021-08-31 | 2021-08-31 | 189 | | [《两京十五日》](https://github.com/yihong0618/2021/issues/3#issuecomment-934142586) | 2021-10-05 | 2021-10-05 | 190 | | [《第一人称单数》](https://github.com/yihong0618/2021/issues/3#issuecomment-984220703) | 2021-12-02 | 2021-12-02 | 191 | 192 | 193 | 194 | ## 做饭 195 | 196 | 197 | | Name | First_date | Last_date | Times | 198 | | ---- | ---- | ---- | ---- | 199 | | 葱爆羊肉 | [2021-01-06](https://github.com/yihong0618/2021/issues/1#issuecomment-755339449) | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758656836) | 2 | 200 | | 火爆大头菜 | [2021-01-06](https://github.com/yihong0618/2021/issues/1#issuecomment-755339940) | [2021-08-01](https://github.com/yihong0618/2021/issues/1#issuecomment-890479207) | 2 | 201 | | 炒土豆片 | [2021-01-06](https://github.com/yihong0618/2021/issues/1#issuecomment-755343687) | [2021-08-15](https://github.com/yihong0618/2021/issues/1#issuecomment-899036906) | 3 | 202 | | 蚝油茼蒿 | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755977027) | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755977027) | 1 | 203 | | 蝴蝶面 | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755978839) | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755978839) | 1 | 204 | | 炒玉米粒 | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755988916) | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-755988916) | 1 | 205 | | 拌黄瓜 | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-756157190) | [2021-01-07](https://github.com/yihong0618/2021/issues/1#issuecomment-756157190) | 1 | 206 | | 菠萝饭 | [2021-01-09](https://github.com/yihong0618/2021/issues/1#issuecomment-757219170) | [2021-01-09](https://github.com/yihong0618/2021/issues/1#issuecomment-757219170) | 1 | 207 | | 田园小炒 | [2021-01-09](https://github.com/yihong0618/2021/issues/1#issuecomment-757219889) | [2021-01-09](https://github.com/yihong0618/2021/issues/1#issuecomment-757219889) | 1 | 208 | | 宫保鸡丁 | [2021-01-10](https://github.com/yihong0618/2021/issues/1#issuecomment-757444820) | [2021-05-19](https://github.com/yihong0618/2021/issues/1#issuecomment-843969690) | 2 | 209 | | 地三鲜 | [2021-01-10](https://github.com/yihong0618/2021/issues/1#issuecomment-757444911) | [2021-01-10](https://github.com/yihong0618/2021/issues/1#issuecomment-757444911) | 1 | 210 | | 油焖虾 | [2021-01-10](https://github.com/yihong0618/2021/issues/1#issuecomment-757445255) | [2021-01-10](https://github.com/yihong0618/2021/issues/1#issuecomment-757445255) | 1 | 211 | | 烤金针菇 | [2021-01-11](https://github.com/yihong0618/2021/issues/1#issuecomment-757942949) | [2021-01-11](https://github.com/yihong0618/2021/issues/1#issuecomment-757942949) | 1 | 212 | | 速冻饺子 | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758333214) | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758333214) | 1 | 213 | | 韭菜炒豆芽 | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758654272) | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758654272) | 1 | 214 | | 炒菜花 | [2021-01-12](https://github.com/yihong0618/2021/issues/1#issuecomment-758656836) | [2021-06-19](https://github.com/yihong0618/2021/issues/1#issuecomment-864385334) | 3 | 215 | | 蛋炒饭 | [2021-01-13](https://github.com/yihong0618/2021/issues/1#issuecomment-759170270) | [2021-07-11](https://github.com/yihong0618/2021/issues/1#issuecomment-877735315) | 6 | 216 | | 西红柿鸡蛋汤 | [2021-01-13](https://github.com/yihong0618/2021/issues/1#issuecomment-759170270) | [2021-05-19](https://github.com/yihong0618/2021/issues/1#issuecomment-843969690) | 6 | 217 | | 韭菜炒鱿鱼 | [2021-01-13](https://github.com/yihong0618/2021/issues/1#issuecomment-759561262) | [2021-08-01](https://github.com/yihong0618/2021/issues/1#issuecomment-890479207) | 3 | 218 | | 芝士鸡蛋卷 | [2021-01-15](https://github.com/yihong0618/2021/issues/1#issuecomment-760578692) | [2021-03-13](https://github.com/yihong0618/2021/issues/1#issuecomment-797823114) | 2 | 219 | | 红烧肉 | [2021-01-16](https://github.com/yihong0618/2021/issues/1#issuecomment-761529378) | [2021-08-21](https://github.com/yihong0618/2021/issues/1#issuecomment-903088672) | 3 | 220 | | 冬瓜汤 | [2021-01-16](https://github.com/yihong0618/2021/issues/1#issuecomment-761529378) | [2021-01-16](https://github.com/yihong0618/2021/issues/1#issuecomment-761529378) | 1 | 221 | | 菠菜花生米 | [2021-01-16](https://github.com/yihong0618/2021/issues/1#issuecomment-761529378) | [2021-01-16](https://github.com/yihong0618/2021/issues/1#issuecomment-761529378) | 1 | 222 | | 煎带鱼 | [2021-01-23](https://github.com/yihong0618/2021/issues/1#issuecomment-765893301) | [2021-01-23](https://github.com/yihong0618/2021/issues/1#issuecomment-765893301) | 1 | 223 | | 竹笋炒肉 | [2021-01-23](https://github.com/yihong0618/2021/issues/1#issuecomment-765893301) | [2021-01-23](https://github.com/yihong0618/2021/issues/1#issuecomment-765893301) | 1 | 224 | | 虾仁炒鸡蛋 | [2021-01-24](https://github.com/yihong0618/2021/issues/1#issuecomment-766315307) | [2021-01-24](https://github.com/yihong0618/2021/issues/1#issuecomment-766315307) | 1 | 225 | | 西红柿牛腩 | [2021-01-24](https://github.com/yihong0618/2021/issues/1#issuecomment-766315307) | [2021-05-29](https://github.com/yihong0618/2021/issues/1#issuecomment-850792989) | 2 | 226 | | 香肠炒菜花 | [2021-01-27](https://github.com/yihong0618/2021/issues/1#issuecomment-768265145) | [2021-01-27](https://github.com/yihong0618/2021/issues/1#issuecomment-768265145) | 1 | 227 | | 煎黄花鱼 | [2021-01-30](https://github.com/yihong0618/2021/issues/1#issuecomment-770182366) | [2021-01-30](https://github.com/yihong0618/2021/issues/1#issuecomment-770182366) | 1 | 228 | | 肉沫豆腐 | [2021-01-30](https://github.com/yihong0618/2021/issues/1#issuecomment-770182366) | [2021-02-06](https://github.com/yihong0618/2021/issues/1#issuecomment-774446468) | 2 | 229 | | 西红柿炒鸡蛋 | [2021-02-01](https://github.com/yihong0618/2021/issues/1#issuecomment-770830021) | [2021-04-11](https://github.com/yihong0618/2021/issues/1#issuecomment-817283119) | 2 | 230 | | 炒土豆丝 | [2021-02-01](https://github.com/yihong0618/2021/issues/1#issuecomment-770830520) | [2021-02-01](https://github.com/yihong0618/2021/issues/1#issuecomment-770830520) | 1 | 231 | | 煎饺 | [2021-02-05](https://github.com/yihong0618/2021/issues/1#issuecomment-773724018) | [2021-05-22](https://github.com/yihong0618/2021/issues/1#issuecomment-846473077) | 2 | 232 | | 烧鲅鱼 | [2021-02-06](https://github.com/yihong0618/2021/issues/1#issuecomment-774446468) | [2021-02-06](https://github.com/yihong0618/2021/issues/1#issuecomment-774446468) | 1 | 233 | | 烤鱿鱼 | [2021-02-07](https://github.com/yihong0618/2021/issues/1#issuecomment-774669520) | [2021-02-07](https://github.com/yihong0618/2021/issues/1#issuecomment-774669520) | 1 | 234 | | 红烧鸡翅 | [2021-02-07](https://github.com/yihong0618/2021/issues/1#issuecomment-774669520) | [2021-03-20](https://github.com/yihong0618/2021/issues/1#issuecomment-803272426) | 2 | 235 | | 年夜饭 | [2021-02-11](https://github.com/yihong0618/2021/issues/1#issuecomment-777427210) | [2021-02-11](https://github.com/yihong0618/2021/issues/1#issuecomment-777427210) | 1 | 236 | | 炸蘑菇 | [2021-02-17](https://github.com/yihong0618/2021/issues/1#issuecomment-780434932) | [2021-02-17](https://github.com/yihong0618/2021/issues/1#issuecomment-780434932) | 1 | 237 | | 蒜苗炒肉 | [2021-02-25](https://github.com/yihong0618/2021/issues/1#issuecomment-785804958) | [2021-04-04](https://github.com/yihong0618/2021/issues/1#issuecomment-812964660) | 2 | 238 | | 荷兰豆 | [2021-02-25](https://github.com/yihong0618/2021/issues/1#issuecomment-785804958) | [2021-04-07](https://github.com/yihong0618/2021/issues/1#issuecomment-814546341) | 2 | 239 | | 孜然牛肉 | [2021-03-13](https://github.com/yihong0618/2021/issues/1#issuecomment-797952551) | [2021-03-13](https://github.com/yihong0618/2021/issues/1#issuecomment-797952551) | 1 | 240 | | 黄瓜片炒肉 | [2021-03-20](https://github.com/yihong0618/2021/issues/1#issuecomment-803272426) | [2021-04-24](https://github.com/yihong0618/2021/issues/1#issuecomment-826073380) | 2 | 241 | | 烤鸡腿 | [2021-03-21](https://github.com/yihong0618/2021/issues/1#issuecomment-803503205) | [2021-04-04](https://github.com/yihong0618/2021/issues/1#issuecomment-812964660) | 2 | 242 | | 尖椒炒肉 | [2021-04-07](https://github.com/yihong0618/2021/issues/1#issuecomment-814546341) | [2021-10-24](https://github.com/yihong0618/2021/issues/1#issuecomment-950283789) | 4 | 243 | | 烤五花肉 | [2021-04-11](https://github.com/yihong0618/2021/issues/1#issuecomment-817283119) | [2021-04-11](https://github.com/yihong0618/2021/issues/1#issuecomment-817283119) | 1 | 244 | | 西红柿炒蛋 | [2021-04-24](https://github.com/yihong0618/2021/issues/1#issuecomment-826073380) | [2021-04-24](https://github.com/yihong0618/2021/issues/1#issuecomment-826073380) | 1 | 245 | | 油焖大虾 | [2021-05-04](https://github.com/yihong0618/2021/issues/1#issuecomment-832312665) | [2021-10-06](https://github.com/yihong0618/2021/issues/1#issuecomment-935780091) | 3 | 246 | | 酱鸡翅 | [2021-05-19](https://github.com/yihong0618/2021/issues/1#issuecomment-843969690) | [2021-05-19](https://github.com/yihong0618/2021/issues/1#issuecomment-843969690) | 1 | 247 | | 排骨玉米 | [2021-05-22](https://github.com/yihong0618/2021/issues/1#issuecomment-846408540) | [2021-05-22](https://github.com/yihong0618/2021/issues/1#issuecomment-846408540) | 1 | 248 | | 烤羊肉 | [2021-05-24](https://github.com/yihong0618/2021/issues/1#issuecomment-846966890) | [2021-07-04](https://github.com/yihong0618/2021/issues/1#issuecomment-873547498) | 2 | 249 | | 虾仁滑蛋 | [2021-05-29](https://github.com/yihong0618/2021/issues/1#issuecomment-850792989) | [2021-05-29](https://github.com/yihong0618/2021/issues/1#issuecomment-850792989) | 1 | 250 | | 肉末茄子 | [2021-06-05](https://github.com/yihong0618/2021/issues/1#issuecomment-855309459) | [2021-06-05](https://github.com/yihong0618/2021/issues/1#issuecomment-855309459) | 1 | 251 | | 蒜香油麦菜 | [2021-06-06](https://github.com/yihong0618/2021/issues/1#issuecomment-855368291) | [2021-06-06](https://github.com/yihong0618/2021/issues/1#issuecomment-855368291) | 1 | 252 | | 黄花鱼 | [2021-06-06](https://github.com/yihong0618/2021/issues/1#issuecomment-855368291) | [2021-06-06](https://github.com/yihong0618/2021/issues/1#issuecomment-855368291) | 1 | 253 | | 烤鸡翅 | [2021-06-06](https://github.com/yihong0618/2021/issues/1#issuecomment-855368291) | [2021-06-26](https://github.com/yihong0618/2021/issues/1#issuecomment-868967668) | 2 | 254 | | 干煸豆角 | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | 1 | 255 | | 土豆排骨 | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | 1 | 256 | | 炒白菜 | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | [2021-06-13](https://github.com/yihong0618/2021/issues/1#issuecomment-860184385) | 1 | 257 | | 蚂蚁上树 | [2021-06-19](https://github.com/yihong0618/2021/issues/1#issuecomment-864385334) | [2021-06-19](https://github.com/yihong0618/2021/issues/1#issuecomment-864385334) | 1 | 258 | | 鸡蛋卷 | [2021-06-22](https://github.com/yihong0618/2021/issues/1#issuecomment-866380420) | [2021-06-22](https://github.com/yihong0618/2021/issues/1#issuecomment-866380420) | 1 | 259 | | 炒藕片 | [2021-06-26](https://github.com/yihong0618/2021/issues/1#issuecomment-868967668) | [2021-06-26](https://github.com/yihong0618/2021/issues/1#issuecomment-868967668) | 1 | 260 | | 蚝油杏鲍菇 | [2021-06-26](https://github.com/yihong0618/2021/issues/1#issuecomment-868967668) | [2021-10-06](https://github.com/yihong0618/2021/issues/1#issuecomment-935780091) | 3 | 261 | | 肉末豆腐 | [2021-07-04](https://github.com/yihong0618/2021/issues/1#issuecomment-873547498) | [2021-12-05](https://github.com/yihong0618/2021/issues/1#issuecomment-986188669) | 4 | 262 | | 杏鲍菇炒肉 | [2021-07-10](https://github.com/yihong0618/2021/issues/1#issuecomment-877621298) | [2021-07-10](https://github.com/yihong0618/2021/issues/1#issuecomment-877621298) | 1 | 263 | | 煎鸡蛋 | [2021-07-31](https://github.com/yihong0618/2021/issues/1#issuecomment-890417139) | [2021-07-31](https://github.com/yihong0618/2021/issues/1#issuecomment-890417139) | 1 | 264 | | 炒鱿鱼 | [2021-09-05](https://github.com/yihong0618/2021/issues/1#issuecomment-913117037) | [2021-09-05](https://github.com/yihong0618/2021/issues/1#issuecomment-913117037) | 1 | 265 | | 排骨炖土豆 | [2021-10-24](https://github.com/yihong0618/2021/issues/1#issuecomment-950283789) | [2021-10-24](https://github.com/yihong0618/2021/issues/1#issuecomment-950283789) | 1 | 266 | | 炒黄瓜片 | [2021-10-24](https://github.com/yihong0618/2021/issues/1#issuecomment-950283789) | [2021-10-24](https://github.com/yihong0618/2021/issues/1#issuecomment-950283789) | 1 | 267 | | 可乐鸡翅 | [2021-11-07](https://github.com/yihong0618/2021/issues/1#issuecomment-962572211) | [2021-11-07](https://github.com/yihong0618/2021/issues/1#issuecomment-962572211) | 1 | 268 | | 炒蘑菇 | [2021-11-07](https://github.com/yihong0618/2021/issues/1#issuecomment-962572211) | [2021-11-07](https://github.com/yihong0618/2021/issues/1#issuecomment-962572211) | 1 | 269 | | 炒荷兰豆 | [2021-12-05](https://github.com/yihong0618/2021/issues/1#issuecomment-986188669) | [2021-12-05](https://github.com/yihong0618/2021/issues/1#issuecomment-986188669) | 1 | 270 | | 小牛肉 | [2021-12-11](https://github.com/yihong0618/2021/issues/1#issuecomment-991536515) | [2021-12-11](https://github.com/yihong0618/2021/issues/1#issuecomment-991536515) | 1 | 271 | | 蘑菇炒肉 | [2021-12-11](https://github.com/yihong0618/2021/issues/1#issuecomment-991536515) | [2021-12-11](https://github.com/yihong0618/2021/issues/1#issuecomment-991536515) | 1 | 272 | 273 | 274 | 275 | ## 写博客 276 | 277 | | Name | Start | Update | Comments | 278 | | ---- | ---- | ---- | ---- | 279 | | [经历了人生体验最棒的一次面试](https://github.com/yihong0618/gitblog/issues/228) | 2021-12-06 | 2021-12-13 | 7 | 280 | | [参加了《开源面对面》和《ByteTalk》播客的一些记录](https://github.com/yihong0618/gitblog/issues/223) | 2021-11-26 | 2021-11-27 | 5 | 281 | | [有趣与无趣](https://github.com/yihong0618/gitblog/issues/221) | 2021-10-13 | 2021-10-27 | 5 | 282 | | [running_page 开源一周年的总结](https://github.com/yihong0618/gitblog/issues/220) | 2021-09-27 | 2021-09-30 | 9 | 283 | | [接下来要写的东西](https://github.com/yihong0618/gitblog/issues/219) | 2021-09-27 | 2022-01-01 | 0 | 284 | | [一点思考](https://github.com/yihong0618/gitblog/issues/218) | 2021-08-19 | 2021-09-09 | 6 | 285 | | [友情链接](https://github.com/yihong0618/gitblog/issues/217) | 2021-08-16 | 2021-12-08 | 14 | 286 | | [朋友圈](https://github.com/yihong0618/gitblog/issues/216) | 2021-08-03 | 2021-08-05 | 7 | 287 | | [张小龙的饭否](https://github.com/yihong0618/gitblog/issues/215) | 2021-07-08 | 2022-01-01 | 0 | 288 | | [一件小事](https://github.com/yihong0618/gitblog/issues/214) | 2021-07-05 | 2021-07-16 | 2 | 289 | | [从 Rich 作者的一个问题说起](https://github.com/yihong0618/gitblog/issues/212) | 2021-06-21 | 2021-07-01 | 3 | 290 | | [如何用一个仓库记录自己的一年](https://github.com/yihong0618/gitblog/issues/209) | 2021-05-28 | 2021-09-27 | 23 | 291 | | [逃离](https://github.com/yihong0618/gitblog/issues/208) | 2021-05-12 | 2021-06-17 | 5 | 292 | | [近况](https://github.com/yihong0618/gitblog/issues/207) | 2021-03-25 | 2021-03-25 | 1 | 293 | | [年过完了](https://github.com/yihong0618/gitblog/issues/206) | 2021-02-22 | 2022-01-01 | 0 | 294 | | [力扣的程序是如何运行的](https://github.com/yihong0618/gitblog/issues/205) | 2021-02-01 | 2022-01-06 | 2 | 295 | | [生存守则](https://github.com/yihong0618/gitblog/issues/204) | 2021-01-27 | 2021-10-07 | 8 | 296 | | [沮丧](https://github.com/yihong0618/gitblog/issues/203) | 2021-01-25 | 2021-06-07 | 3 | 297 | | [今年的三个小目标](https://github.com/yihong0618/gitblog/issues/202) | 2021-01-14 | 2021-11-21 | 2 | 298 | | [新年碎碎念](https://github.com/yihong0618/gitblog/issues/201) | 2021-01-08 | 2021-09-30 | 7 | 299 | | [二零二一开始](https://github.com/yihong0618/gitblog/issues/200) | 2021-01-04 | 2022-01-01 | 0 | 300 | 301 | 302 | 303 | ## 收藏的文章 304 | | 文章名称 | 添加日期 | type | 备注 | 305 | | ------- | ------- | ---- | ---- | 306 | | [500lines-rewrite-interpreter](https://shuhari.dev/blog/2020/12/500lines-rewrite-interpreter) | 2021.01.04 | 技术文章 | 宝藏 | 307 | | [2020 年终总结](https://blog.changkun.de/posts/2020-summary/) | 2021.01.05 | 年终总结 | 思考我的人生 | 308 | | [六行代码实现 Python 管道](https://aber.sh/articles/Python-Pipe/) | 2021.01.11 | 有趣 | 写的不错 | 309 | | [programmers believe about time](https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca) | 2021.01.15 | 关于时间 | 用的到 | 310 | | [游戏推荐 70 亿人类](https://howardlau.me/game/7-billion-humans.html) | 2021.02.02 | to play | to play | 311 | | [2019 ~ 2020 岁末有感](https://blog.dreamfever.me/2021/02/11/2019-2020-sui-mo-you-gan/) | 2021.02.19 | 伤感 | 希望 | 312 | | [MIT-6.S081 2020](https://reku1997.gitee.io/2020/10/13/mit-os-1/) | 2021.02.23 | 想玩一下 | 不知道有时间没 | 313 | | [如何当一个合格的白帽子](https://key08.com/index.php/2020/12/16/817.html) | 2021.02.25 | 学习 | 要常看常新 | 314 | | [2020 个人总结](http://www.zhangjiee.com/blog/2021/2020-personal-review.html) | 2021.03.02 | 关于复盘 | 关于复盘 | 315 | | [cut GTA Online](https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/) | 2021.03.09 | 太精彩了 | hack | 316 | | [flask是如何保证线程安全的](https://hj24.life/posts/%E4%BB%8E%E6%BA%90%E7%A0%81%E7%9C%8Bflask%E6%98%AF%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E7%9A%84/) | 2021.03.16 | flask | 写的不错的年轻人 | 317 | | [Play with 2.13 inch E-Ink display](https://andelf.github.io/blog/2021/01/15/play-with-2-13-inch-e-ink-display/) | 2021.03.22 | 下一个玩具 | e-link | 318 | | [Baking Flask cookies](https://blog.paradoxis.nl/defeating-flasks-session-management-65706ba9d3ce) | 2021.03.22 | 好思路 | In English | 319 | | [2019 東京馬拉松](https://jiepeng.me/2019/03/03/2019-tokyo-marathon) | 2021.03.23 | 小梦想 | 日本 | 320 | | [Workouts & fitness in 2020](https://darke.me/workouts-fitness-in-2020) | 2021.03.31 | 好厉害 | 英语 | 321 | | [喃喃自语](http://www.piginzoo.com/life/2020/06/13/some-thoughts) | 2021.04.06 | 前辈的一篇文章 | 思考了好多 | 322 | | [Docker (容器) 的原理](https://www.kawabangga.com/posts/4224) | 2021.04.09 |laixintao | 写的太好了 | 323 | | [年轻人的第一次删库跑路](https://www.kilerd.me/accidents/first-time-deleting-database-on-production/) | 2021.04.20 | mark | 等自己遇到 | 324 | | [过去这五年,我学到了什么](https://linghao.io/posts/five-year-learning-2013-2018) | 2021.04.22 | 思考自己 | 看看能做到多少 | 325 | | [用树莓派打造一个超薄魔镜](https://onevcat.com/2021/04/magicmirror/) | 2021.04.22 | todo | todo | 326 | | [Internal Link Analysis with Python](https://www.briggsby.com/internal-link-analysis-with-python) | 2021.06.03 | net | net | 327 | | [我的学习之路](http://www.piginzoo.com/education/2021/06/08/mylearn) | 2021.06.13 | 前辈的一篇文章 | mark | 328 | | [Your Soul, Your Beats!](https://github.red/miband-heart-rate/) | 2021.06.17 | 有趣的年轻人 | 学习 | 329 | | [A from-scratch tour of Bitcoin in Python](https://karpathy.github.io/2021/06/21/blockchain/) | 2021.06.23 | mark | Bitcoin | 330 | | [反对直接学习经过提炼的知识](https://lgf.im/posts/thinking/knowledge-refining/) | 2021.07.02 | 自省 | 记住这个 | 331 | | [一次事故反思](https://jiajunhuang.com/articles/2021_07_02-reflection_on_bug.md.html) | 2021.07.05 | 测试 | 测试测试测试 | 332 | | [计算机网络核心笔记](https://kingcos.me/posts/2021/computer_network_notes/) | 2021.07.08 | 网络 | mark | 333 | | [Absurdity](https://raptazure.github.io/posts/absurdity/) | 2021.07.12 | 想到了当年的自己 | free | 334 | | [我们的 IP 是怎么来的](https://nova.moe/how-the-ips-are-assigned/) | 2021.07.16 | 有趣啊 | like | 335 | | [What rooms should you do?](https://blog.tryhackme.com/free_path/) | 2021.07.21 | hack | hack | 336 | | [WK8s 离线部署方案](https://blog.k8s.li/pass-tob-k8s-offline-deploy.html) | 2021.08.31 | k8s | mark | 337 | | [致一个二十岁的小镇boy](https://kivzone.com/dear-20yo/) | 2021.09.09 | 现在少年真厉害 | 想起了自己的 20 岁 | 338 | | [38岁北京丁克程序员](https://new.qq.com/rain/a/20201227A06AIT00) | 2021.12.01 | 有些震撼 | cool | 339 | | [Long Time No See](https://kemingy.github.io/blogs/long-time-no-see/) | 2021.12.10 | English | 有意思 | 340 | | [我跟存储的这10年](https://www.douban.com/note/637760886/) | 2021.12.10 | 豆瓣 | 再给自己 10 年 | 341 | 342 | ## 收藏的博客 343 | | 博客名称 | 添加日期 | type | 备注 | 344 | | ------- | ------- | ---- | ---- | 345 | | [SHUHARI 的博客](https://shuhari.dev/blog/) | 2021.01.04 | 重写 500 Lines | 宝藏 | 346 | | [hololive](https://hololive.me/archive/) | 2021.01.08 | 机器学习 | 有趣的大牛(网站 down) | 347 | | [极客兔兔](https://geektutu.com/) | 2021.01.28 | Go 教程 | 今年学 Go 用的到 | 348 | | [howardlau](https://howardlau.me/) | 2021.02.02 | k8s 及其它 | 有趣的年轻人 | 349 | | [jasonkayzk](https://jasonkayzk.github.io/) | 2021.02.04 | 编程 日语 | 宝藏少年 | 350 | | [Ray Eldath](https://ray-eldath.me/) | 2021.02.19 | 编程 文学 | 喜欢加缪的少年 | 351 | | [iany](https://blog.iany.me/) | 2021.02.26 | 记录自己的人 | 记录自己的人 | 352 | | [zhangjiee](http://www.zhangjiee.com/) | 2021.03.02 | 值得学习 | 和我爱好很像 | 353 | | [senevan](https://blog.senevan.com/archives/) | 2021.03.05 | 有意思的人 | 游戏程序员(down) | 354 | | [Eric Fu](https://ericfu.me/) | 2021.03.08 | 每篇文章质量好高 | 常看 | 355 | | [Eyfwu](https://yfwu.github.io/archive) | 2021.03.17 | 写周记的台湾朋友 | 真好 | 356 | | [清澄秋爽](https://dashen.tech/archives/) | 2021.03.18 | 喜欢这个人 | 猫的那篇看哭了 | 357 | | [andelf](https://andelf.github.io/) | 2021.03.22 | 又强又有趣 | 还是个 hacker | 358 | | [iPotato](https://ipotato.me/articles) | 2021.04.06 | 有趣的少年 | 学习 | 359 | | [vrk](https://www.vrk.dev/s) | 2021.04.07 | 有趣的外国人 | 学习 | 360 | | [tongmu](https://blog.tongmu.me/) | 2021.04.12 | 日语学习系列 | 像他学习 | 361 | | [deathking](https://deathking.github.io/) | 2021.04.16 | COOL | SICP | 362 | | [drdr.xp](http://drmingdrmer.github.io/archive.html) | 2021.04.21 | 有趣的牛人 | 面包机 | 363 | | [nickcheng](https://nickcheng.com/) | 2021.04.29 | 写了 20 年博客了 | 前辈 | 364 | | [Angelic Layer](https://moeka.me/blog/) | 2021.05.10 | 喜欢这样的文字 | PHD | 365 | | [夜行人](http://wwj718.github.io/post/%E9%9A%8F%E7%AC%94/aboutme/) | 2021.05.17 | 有趣的人 | 有趣 | 366 | | [Linus.](https://thesephist.com/) | 2021.05.27 | 喜欢这个人 | English | 367 | | [ssshooter](https://ssshooter.com/tag/diary) | 2021.06.11 | cool | 自律有趣 | 368 | | [jstrieb](https://jstrieb.github.io/about/) | 2021.06.16 | hacker | English | 369 | | [lonami](https://lonami.dev/blog/) | 2021.06.29 | 22岁的神人 | English | 370 | | [游荡](https://www.twisted-meadows.com/about/) | 2021.07.01 | 思考的人 | 有几篇文章被触动 | 371 | | [shuxiao.wang](https://shuxiao.wang/posts/) | 2021.07.06 | 有意思啊 | 流水沉微 | 372 | | [justzht](https://shuxiao.wang/posts/) | 2021.07.16 | 写日记的人 | Apple | 373 | | [Folyd](https://folyd.com/blog/) | 2021.07.30 | 好强 | 希望有一天能完全看懂 | 374 | | [ioover](https://ioover.net/posts/) | 2021.07.30 | RUST | 喜欢哲学的少年 | 375 | | [chenjiandongx](https://chenjiandongx.me/) | 2021.08.05 | pyecharts 作者 | 五年能成长多少 | 376 | | [山水寨](https://www.shaynez.com/) | 2021.08.13 | 记录读书的人 | 前辈 | 377 | | [故园风雨后](https://poemsays.blogspot.com/) | 2021.09.02 | 诗意的文字 | 前辈 | 378 | | [Shuxin Yang 's Blog](http://shuxinyang.com/) | 2021.09.09 | 记录读书的人 | 喜欢 | 379 | | [四一的世界](https://yunyang1994.gitee.io/2019/10/01/Think-different/) | 2021.09.16 | 机器学习 | Think Different | 380 | | [divan's blog](https://divan.dev/) | 2021.09.30 | go hacker | English | 381 | | [Luke](https://lukechampine.com/) | 2021.10.12 | another go hacker | English | 382 | | [朝花夕拾](https://neozhaoliang-github-io.vercel.app/) | 2021.10.20 | 图形学 | 太美了 | 383 | | [dgideas](https://dgideas.net/2020/hello-world/) | 2021.11.02 | 喜欢哲学 | 区块链 | 384 | | [Inoki](https://blog.inoki.cc/archives/) | 2021.11.04 | geek | 博士 | 385 | | [kainwen](https://kainwen.com/) | 2021.11.04 | 厉害 | 英雄无岁,江湖无辈 | 386 | | [4ra1n](https://4ra1n.love/archives/) | 2021.11.30 | 做安全厉害的真多 | 也是个少年 | 387 | | [虎哥的博客](https://bohutang.me/) | 2021.12.02 | 数据库 | 虎哥 | 388 | | [翁天信](https://www.dandyweng.com/) | 2021.12.13 | 有些震惊 | 理想的生活 | 389 | | [eatonphil](https://notes.eatonphil.com/) | 2021.12.28 | English | 希望有一天我也可以 | 390 | | [灵魂逻辑](https://soulogic.com/article/recent) | 2021.12.29 | 思考的人 | 今年最后一个 | 391 | 392 | --------------------------------------------------------------------------------