Bo2SS

Bo2SS

#2 | 居家隔離の新発見(効率的な料理、多倉庫ブランチ管理の自動化を実現……)

宝子たち、ここは Bo2SS の新シリーズで、普段の考えを共有します。生活に関することも、技術的なこともあります。以前の技術的な長文に比べて、このシリーズは全体的に軽快なスタイルです。(友情提示:文末に多リポジトリブランチ管理スクリプトの例がありますので、最後までスクロールして、必要かどうか見てみてください。)

「帰るべき人は帰りなさい、出てこないで。帰るべき人は帰りなさい、出てこないで……」

火曜日の朝 7:30、私は繰り返し流れるスピーカーの音で目を覚まし、最初の反応は地域のグループを確認することでした。

そうです、喜んで「隔離大礼包」を受け取りました。

image

最近の食事#

実は、平日に料理をする時間があるとは思ってもみませんでした。一般的には週末に料理をして、自分を労わる程度です。

image

image

image

image

image

image

image

しかし隔離初日、夜に家族とのビデオ通話で「外食は不衛生」と言われ、さらにその日の外食が本当にまずかったので、私は翌日から自分で料理をすることに決めました。

まず、私が感じた自分で料理する利点についてお話しします:

  • 美味しい(お腹いっぱい)、儀式感がある(幸福感の一つの源)、家族に自分が良い生活をしていると思わせる(実際そうです)……

  • もっと重要なのは、この過程で、より高い次元で問題を考えることができ、細部に陥らないことに気づいたことです。

本来、家庭料理を作るのにそれほど頭を使う必要はないので、脳には考える余地が残っています。

また、パソコンの前に座っている時と比べて、料理をしている時は無駄な情報の干渉が少なく、むしろ問題の核心に集中しやすくなります。

言うまでもなく、実際に私たちがシャワーを浴びたり、トイレに行ったりしている時にも、インスピレーションを得やすいのは同じ理由です。

image

正に「得るものがあれば失うものもある」と言いますが、これだけの利点を得たからには、何かを失わなければなりません。そう、私たちは時間とエネルギーを多く費やさなければなりません。

しかし、実際には上記の美味しい料理を作るのにそれほど時間はかかりません。

ここで、私が自分で料理をするのと外食をするのにかかる時間を比較してみます:

自分で料理外食勝者(時間が短い方)
1. 選択美団で肉と野菜を選ぶ美団で注文基本的に同じ
2. 受け取り一度で一日の分を受け取れる二食で二回受け取る自分で料理
3. 調理ご飯を炊く + 炒める調理不要外食
4. 後片付け食器を洗うほとんど不要外食

外食の方が優れているように見えますが、実際にはご飯を炊く + 炒める時間は「無視できる」ほどです:

  • ご飯を炊く: Stretchlyという休憩リマインダーを利用して、普段の仕事のリズムは、30 分ごとに 20 秒休憩し、1 時間半ごとに 4 分休憩するので、4 分の休憩中にご飯を炊くことができます

  • 炒める:美団で「象大厨」や「農耕記」のクイック料理を選ぶと、調理過程を 10~20 分に抑えることができます。

    • クイック料理には、洗浄済み、切り済みの食材が用意されており(心配な場合は自分で再度洗っても良い)、油や調味料も用意されています(心配な場合は自分の油や調味料を使っても良い、調味料は一般的に生抽と塩で代用できます)。さらに、炒める手順のガイドも用意されており、レゴブロックを組み立てるように順番にフライ返しを動かすだけで済みます。

    • 賞味期限が数日であるものを選ぶと、一般的に新鮮です。

次に、洗い物という新たな項目を見てみましょう:

  • 食後や 4 分の休憩時間に行うことができ、細切れの時間を有効に活用できます。

  • 時々油が多いと感じる場合は、まず皿を水で流してから浸して洗います。

  • さらに、洗い物をしている時、手を前後に動かす動作は、フィットネスでの押す(胸を鍛える)と引く(背中を鍛える)動作と同じ効果があることに気づきました。したがって、洗い物は私が普段持つべき運動量を補うことができます(実際、観察によれば、自分の胸筋と広背筋には明らかな減少の兆候は見られません🐶)。

image

時間の消費に加えて、先ほども言ったように、エネルギーを多く費やす必要があるのは避けられません。特に料理を学び始めたばかりの時は。

しかし、「失うものがあれば得るものもある」と言うように、時間とエネルギーを消費することで、別の価値を得ることができます。

最近の娯楽#

自分で作った料理を食べながら、紅軍の歴史を見ています。とても快適です。

image

最近見ているのは高希希監督の『毛沢東』で、特に若き日の毛沢東を演じる俳優侯京健のあの気迫が好きです。

image

私が特に好きなシーンをいくつかお話しします~

1)外出して学ぶ

ある日、いとこの文運昌が毛沢東の家に来て、湘乡県立高等小学堂に行って勉強できることを教えてくれました。そこでは多くの新しい知識を学べます。

毛沢東は当時、父親が見つけた穀物店で見習いをしていましたが、商売には興味がなかったので、父親の同意を求めました。

彼の父親は実際には毛沢東に早くお金を稼いで家計を支えてほしかっただけで、家には二人の弟と一人の妹がいるため、彼を学校に通わせるためにお金を使うことは考えていませんでした。

しかし、毛沢東の強い説得の結果、父親は最終的に渋々同意しました。

こうして毛沢東は故郷を離れ、「孩儿立志出乡关,学不成名誓不还。埋骨何须桑梓地,人生无处不青山」という七言絶句を父親に送ります。

17 歳の毛沢東は小学一年生でしたが、分からないことは学び、分からないことは質問し、とても早く学びました。

2)書店を開く

当時、毛沢東たちは新しい思想を広めるために書店(文化書社)を開きました。

しかし、書店のスタートアップ資金は限られており、財務担当者は文化関連の書籍を販売するだけでなく、ベストセラーや俗書も販売して収入を増やすことを提案しました。

この提案は毛沢東によって却下されました。彼は書店の目的は志を同じくする人々を集め、彼らの思想に賛同する人々を集めることだと考えていました。もしベストセラーや俗書を売るなら、入ってくる読者を見分けることが難しくなります。

この点は私が公衆アカウントを書く上で非常に示唆に富んでいます。私は人目を引く内容を書くことを望まず、ここで自分の考えをゆっくりと皆さんと共有し、趣味が合う人々と出会いたいと思っています。

さらに、毛沢東は今日でも「流量大咖」であることは間違いありません。当時、この書社の開店には湖南省の省長を招待してテープカットを行いました。

3)毛沢東が排除される

毛沢東の「農村包囲都市」戦略とゲリラ戦の 16 字方針(「敵進我退、敵駐我扰、敵疲我打、敵退我追」)は何度も成功し、紅軍に多くの勝利をもたらしました。

しかし、上海にいる党中央は功績を急ぎ、紅軍が大都市を攻撃する力があると考え、何度も大都市攻撃の命令を出しました。

党中央の命令には逆らえませんが、毛沢東は紅軍の現在の力が不足していることを知っていたため、多くの場合は形だけの行動をしました。

しかし、毛沢東はそのために「逃げる主義者」という右派のレッテルを貼られ、党中央から排除され続けました。

第五次反囲剿の後、党中央は博古(比較的若く、実戦経験がほとんどない)を書記長に、李徳(ドイツ人で、秘密保持のために中国名を付けた)を軍事顧問に任命し、彼らの「堡塁対堡塁」の硬直した戦略は紅軍に大きな損失をもたらしました。

その後、毛沢東は徐々に正しい位置に戻りました。

4)飛奪泸定橋

image

私が卒業後の川西の旅で泸定橋を通った時、大渡河の下で水の流れる音を聞くだけで背筋が寒くなります。

当時、敵は紅軍が渡河するのを防ぐために、事前に板をすべて外して、鉄索だけが残されていました。

紅軍は渡河するために、対岸の機関銃の下で、一隊が突撃し、ロープを踏んで火力を引きつけ、一隊が橋の板を敷き、一隊が板を渡し、後ろの人が渡河しました。

当時、南京にいた蒋介石が部下に「なぜ橋を爆破しないのか?」と尋ねると、部下は「紅軍が板を敷きながら前進することを全く考えていなかった」と答えました。

蒋介石はため息をつき、「毛沢東と戦う時は、常識的な思考で彼らの行動を予測してはいけない」と言いました。しかし、彼は後に紅軍が雪山を越えることを予想できませんでした。

毛沢東の戦いを見ていると、いつも諸葛亮を思い出します(以前、三国について書いた記事があります:歴史 | 三国演義の人物がインターネットに応募するなら、誰を選びますか?)。一見すると差が大きい戦いでも、彼らは常に状況に応じて変化し、絶体絶命の状況を乗り越えることができ、とても素晴らしいです。


このドラマの動画リソースについては、私は西瓜视频で見るのが好きです。なぜなら、ここではコメントがとても多く、雰囲気がとても良いからです。

  • 時々、出てくるこの人の業績を紹介してくれる人がいます。例えば、国民党の薛岳を見た時、もちろん彼を敵として扱いますが、コメントで彼が抗日名将だと言われると、すぐに敬意を表します🫡。

  • また、ある出来事に対する異なる見解や、見落とされがちな背景についても意見が述べられます……

一方、bilibiliは比較的静かで、これはおそらく後に配信されたためです。


さて、前半では生活の中でのいくつかの体験についてお話ししましたが、次は技術的な考えについてお話しします。

最近の考え:多リポジトリブランチ管理の自動化 V1.0#

とりあえず V1.0 と呼んでおきましょう。現在行っている自動ブランチ作成機能に加えて、さらに多くの機能が展開できるはずですので、必要な時に再度改良します。

最終結果:複数のリポジトリに自動でブランチを作成する🌲。

  1. 自動化前:それぞれのリポジトリに行き、関連パラメータを入力し、ボタンをクリックします。

  2. 自動化後:それぞれのリポジトリに行く、関連パラメータを入力し、ボタンをクリックします。


皆さんはこんな状況に遭遇したことはありませんか?製品が新しい段階に達するたびに、コードに新しいブランチを作成する必要があります。例えば、テスト用のブランチです。

一つのリポジトリにブランチを作成するのはまだ良いですが、私たちのグループには五、六個の関連リポジトリがあるため、各リポジトリに対してこの単純で退屈な繰り返し作業(ブランチ作成)を行う必要があります。プログラマーとして、私はこのような状況を許すことはできません。


そこで、私は継続的インテグレーションツール Jenkins(他の人が使いやすいように)と Shell スクリプト言語を利用して、上記のプロセスを自動化しました。

今では、上記のプロセスを簡単に 2 ステップで完了できます:

1)Jenkins プロジェクトに入り、2 つのビルドパラメータを入力します:現在のバージョン、前のバージョン

image

⚠️:

  1. 私たちのブランチ名はバージョン名に基づいています;

  2. 私たちは前のバージョンの release ブランチに基づいて現在のバージョンの test ブランチを作成します。

2)Build ボタンをクリックし、結果を待ちます

ここでは、自分の 2 つの Github リポジトリで実験を行い、関連するログは以下の通りです:

image

✌️:ログは操作のプロセスと結果を明確に示しています。

⚠️:操作するリポジトリは Configure > Source Code Management > Git > Repositories で設定されています。新しいリポジトリを追加する必要がある場合は、設定に追加するだけで、スクリプトを変更する必要はありません。


V1.0 の Shell スクリプトは以下の通りです(具体的な説明があります):

# 主なプロセス
main() {
  #1
    set +ex  # e:異常時に終了しない;x:実行コマンドを表示しない
    declare -a success_list  # 成功したリポジトリを記録
    declare -a failure_list  # 失敗したリポジトリを記録
    echo "========================⚙️準備作業完了⚙️========================\n"
    
    #2
    echo "========================🆒正式に開始🆒========================"
    remote_hosts=`git remote`
    echo "🌿操作するリポジトリは:\n${remote_hosts}\n"
    
    # ️管理しているリモートリポジトリをループ処理、リポジトリはSource Code Management > Git > Repositoriesに追加
    # ⚠️Advanced > Nameでリポジトリのエイリアスを設定し、ログを確認しやすくすることができます
    for remote_host in ${remote_hosts}; do
        CreateAndPushTestBranch ${remote_host}
    done
    
    #3
    echo "========================🌲結果出力🌲========================"
    echo "✅成功したリポジトリ:${success_list[*]}"
    echo "❌失敗したリポジトリ:${failure_list[*]}"
    echo "\n\n"
}

# testブランチを作成してプッシュ
# 入力パラメータ1:リモートリポジトリのエイリアス
CreateAndPushTestBranch() {
    echo "========================💼リポジトリ操作開始:$1💼========================"
    target_host=$1  # リポジトリのエイリアスを記録
    
    echo "1. ブランチを作成 git checkout -b"
    # current_version、last_versionはビルドパラメータで、Generalで定義
    git checkout -b test/${current_version} ${target_host}/release/${last_version}
  
    echo "2. ブランチをプッシュ git push"
    git push ${target_host} HEAD
    if [ $? -eq 0 ]; then
        success_list+="${target_host} "
        result="成功✅"
    else
        failure_list+="${target_host} "
        result="失敗❌"
    fi

    echo "3. ブランチをクリーンアップ git branch -D"
    git -c advice.detachedHead=false checkout ${target_host}/release/${last_version} # -c advice.detachedHead=falseでdetachedHead警告を一時的に無効化
    git branch -D test/${current_version}
    
    echo "\n👉${target_host}リポジトリにtest/${current_version}ブランチを作成してプッシュしました:${result}\n"
}

main; exit

結び#

考えを持ち続け、大胆に実践してください。この文章があなたに役立つことを願っています~

ここは Bo2SS です。このシリーズに関する提案があれば、宝子たちのコメントをお待ちしています。また次回お会いしましょう~

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。