久しぶりに技術記事を書いた。
Git のエラー “object file is empty” や “loose object is corrupt” の直し方
昨日、ファイル監視機能を強化したと書いたが、実はまだ完璧ではなかった。ファイルの操作、git add、git commit を間髪入れずに実行すると元の状態に戻せなくなることが分かっていた。
\rm youtube.conf; git add --all; git commit -m "youtube.conf"
rm や git add で不正に変更したファイルは自動的に元に戻る仕組みにはなっているのだが、その変更が反映される前に git commit されてしまうと元に戻せない。ファイルの変更監視は即時実行されるが、それでも ; でつなぐとそっちのほうがわずかに先に実行されてしまうことがある。
この状態で Dnsmasq を再起動しようとしたらなんか分からないけどフリーズしてしまった。ちなみにこれは初めてではなく、数日前にも手動で再起動した際にフリーズしてしまった。原因はどちらも謎。
Raspberry Pi が再起動されて git status してみると、Git が壊れていた。これの直し方を紹介するのが今回の記事の趣旨だ。やっぱり変なことをすると変なことになるね。しかし仮に Dnsmasq の再起動が失敗していなかったら、いやそうじゃなくても youtube.conf の中身が壊れたせいで YouTube には無制限でアクセスできる状態が作れてしまったので、やはりここもさらに改修する必要がありそうだな。しかし git commit されちゃったものを元に戻すのはダルそうだな。
5:07 PM · Jul 14, 2023 (GMT+9)
昨日の夜に iOS のアップデートをしようとしたんだけど、ボタンをタップしたきり、特になんの変化もなくてアップデートされなかった。しかし今日起きて確認したらちゃんとアップデートされていた。たぶん夜間アップデートとかで自動でアップデートされたんだろうけど、操作した時点で無反応だとちょっと不安になるよね。しかも勝手にアップデートされると、深夜にコンビニ行って支払いするときだったりするとめっちゃ困るのでやめてほしい。
5:26 PM · Jul 14, 2023 (GMT+9)
DNA のサンプル、11 日に届いたんだけど、それから毎日チェックしても到着のステータスから先に進まなくてちょっと不安だったんだけど、今確認したら DNA の抽出中という次のステータスに進んでいた。
結果がわかるのは 8 月 9 日か。まあ 18 日かかるって言ってたからそれくらいになるのか。気長に待とう。
5:30 PM · Jul 14, 2023 (GMT+9)
これで不正なコミットを検出できそうだな。
git rev-list HEAD@{upstream}..HEAD
5:37 PM · Jul 14, 2023 (GMT+9)
I want to live more like a human being.
6:39 PM · Jul 14, 2023 (GMT+9)
今日の Ron とのレッスン:
前にバナナを買いすぎて残ってしまって真っ黒になったしまったものを見せて、これ食べられると思う? というくだらない質問から始まり、前回の Tevin とのレッスンと同じトピックである、自分の名前が英語っぽく聞こえるような単語を考えてもらった。
最初は coskay という前回と同じスペルが出たが、これはすでに取られていると説明し、いくつか候補を出してもらった。その中に、最後に e を追加した coskaye というスペルが出てきて、これは英語話者にとって自分の正しい発音に聞こえるような綴りなのですか? と聞いたら、aye というのがフランクな挨拶としてあるからたぶん正しく読めると思うと言われてなるほどなと思った。
そして Twitter でもこの文字列は取られていないからこれならありかもと思った。
7:49 PM · Jul 14, 2023 (GMT+9)
そのほか、cos の部分を cas に変えたものも候補として挙げてくれた。cos のほうは cost などがあるので /kɑːs/ と読めるが、もしかしたら /koʊs/ と読む人もいるからもしれない、だから cas のほうがより /kɑːs/ と読める確率が上がるかもと言っていた。
しかしむしろ自分の名前は /koʊs/ のほうが近いので cos のほうが良いんじゃないかと言って、それだったそっちのほうが良いかもという結論になった。
7:52 PM · Jul 14, 2023 (GMT+9)
昨日もまたワークアウトを忘れてしまったので今日は 6 分ワークアウトをやった。
- ランジ
- 膝上げ
- 腕立て伏せ
- リバースプランク
- スクワットジャンプ
- ニープルイン
そこまで負荷の高い種目はなかったが 2 日連続やっていなかったのと 6 分だったので汗かいた。
11:17 PM · Jul 14, 2023 (GMT+9)
そのあと 10 分瞑想をした。もう夜なので部屋を真っ暗にしてやった。意識がそれることが何回かあったけどその度に意識を戻すことができたし、後半はわりと呼吸に意識を集中し続けることができた。
11:29 PM · Jul 14, 2023 (GMT+9)
今のところのユーザネーム候補メモ:
11:30 PM · Jul 14, 2023 (GMT+9)
家の目の前の路地に G を含む虫が 4 〜 5 匹くらいいた。やっぱり好き勝手なタイミングでゴミを捨てるから湧いてきているんだろうか。
1:25 AM · Jul 15, 2023 (GMT+9)
コンビニ行ったんだけどなんか最近深夜でもやたら人が多い。正直うっとうしいしムカつく。何こっち見てんだよ、気持ち悪い面しやがって。
1:25 AM · Jul 15, 2023 (GMT+9)
冷蔵庫に長らく放置されていた納豆とリンゴを捨てた。あとバナナも真っ黒になっていたので処分した。結局たくさん買ったり食べる気もないのに買ったりするとこうなるんだよな。
1:30 AM · Jul 15, 2023 (GMT+9)
コンビニに行くときは隣の部屋の明かりはついていなかった気がするけど、返ってくるときにはついていた。もしや似たようなタイミングでコンビニに行っていたりするのか? だとしたらセブンで会っている可能性もあるな。
1:33 AM · Jul 15, 2023 (GMT+9)
これで不正なコミットを検出できそうだな。
git rev-list HEAD@{upstream}..HEAD
不正なコミットを抽出してリモートリポジトリとそろうところまで自動的に戻す機能も追加した。3 時過ぎて YouTube 見れなくなってから動作テストしてみたらちょっとバグってたけどそれも直したのでたぶん大丈夫だと思う。5 〜 6 時の間に git pull で反映されるからそのあとまた試そうと思う。どうせ今日も朝まで起きているだろうし。
ちなみに YouTube の制限を Superman の制限と同じ時間帯に変更した。やっぱ 30 分ごとに強い制限がかかるのは使いづらいと思った。その代わり週 4 から週 2 にすることで、楽しむときはちゃんと楽しめるようにした。
ちなみにちなみにすっかり書くのを忘れていたけど、昨晩は 8 時過ぎに寝て今日は 16 時前に起きた。この日記はもう 15 日になってから書いているので日付の概念がめちゃくちゃになっちゃっているけどまあ分かるでしょ、読んでいる自分。
4:13 AM · Jul 15, 2023 (GMT+9)
YouTube の制限がかかってもう無理だろっていうくらい頑丈に監視が効いているので不正なこともできなくなった。しかしここ数週間ずっと YouTube ばかり見続けていたせいで YouTube を見られなくなったときに何もすることがなくて手持ち無沙汰になってしまったので、2 分ワークアウトをやった。もう日付は 15 日になっているので、このあと寝て起きてからワークアウトをやらなくても記録が途切れないっていうのはちょっとずるい気もするけど。
- サイドプランク
- ローテーションプッシュアップ
- リバースプランク
- エクステンデッドプランク
- ジャンピングジャック
- マウンテンクライマー
↑ これ別に無理して書くことないかもな。自動で Streaks アプリに記録されているし。めんどくさいと思ったら書かなくてもいいか。
4:45 AM · Jul 15, 2023 (GMT+9)
そしてそのあと 10 分瞑想もした。気がそれることも何回かあったけど、ゾーンに入ることも何回かあって、全体的にはかなり集中モードに入っていた。こんなに瞑想で集中できたのは久しぶりかもな。
4:46 AM · Jul 15, 2023 (GMT+9)
逃げ恥のオープニングテーマ「進め、たまに逃げても」って、チャラン・ポ・ランタンの曲だったのか。知らなかった。最近また瀬戸さんの過去動画の関連でチャラン・ポ・ランタンの動画をちょっと見ていたので、へぇと思った。というかそれを見ていたからこそ関連にこの音楽が上がってきたんだと思う (YouTube のアルゴリズムが学習しただけだと思う) けど。
5:00 AM · Jul 15, 2023 (GMT+9)