<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/rss.xsl" type="text/xsl"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><generator>Typlog 3.1 (https://typlog.com)</generator><title><![CDATA[Chen ZiQiang's Blog]]></title><description><![CDATA[Hello, my name is Chen ZiQiang. Welcome to my blog, where I share my life experiences and thoughts.]]></description><link>https://czq.me/posts/</link><copyright><![CDATA[Copyright 2026 Chen ZiQiang's Blog]]></copyright><image><url>https://i.typlog.com/czqone/8230991847_584123.png?x-oss-process=style/sl</url><title><![CDATA[Chen ZiQiang's Blog]]></title><link>https://czq.me/posts/</link></image><atom:link href="https://czq.me/feed/post.xml" rel="self" type="application/rss+xml"/><atom:link href="https://pubsubhubbub.appspot.com/" rel="hub"/><pubDate>Thu, 16 Apr 2026 12:14:25 +0000</pubDate><item><title><![CDATA[懐かしのバブル時代]]></title><guid>https://czq.me/posts/huai-kashinobaburushi-dai-c53f9797</guid><link>https://czq.me/posts/huai-kashinobaburushi-dai-c53f9797</link><pubDate>Sat, 07 Mar 2026 05:57:00 +0000</pubDate><content:encoded><![CDATA[<p>バブル時代の歌はとても個性がはっきりしています、今のJpopと雰囲気は全然違います、バブル時代の歌は明るくて、未来にワクワクする。</p>
<p>３０代の私にとっても、どこか懐かしくて憧れます。</p>
<p><a href="https://www.youtube.com/watch?v=42yiDEEWQnQ">Won't Be Long -The Bubble Gum Brothers</a></p>
<p><a href="https://www.youtube.com/watch?v=_3gi46xH6XM">赤道小町ドキッ／山下久美子</a></p>
]]></content:encoded></item><item><title><![CDATA[「一橋桐子の犯罪日記」についての感想と終活の話]]></title><guid>https://czq.me/posts/yi-qiao-tong-zi-nofan-zui-ri-ji-nitsuitenogan-x-c409b335</guid><link>https://czq.me/posts/yi-qiao-tong-zi-nofan-zui-ri-ji-nitsuitenogan-x-c409b335</link><pubDate>Thu, 19 Feb 2026 14:06:57 +0000</pubDate><content:encoded><![CDATA[<h2>感想</h2>
<p>最近SSJの読書部で終活応援の本「一橋桐子の犯罪日記」を読みました。</p>
<p>桐子さんの老後生活の辛いさを感じました、お金の問題とか、人との関係とか、親の介護とか、部屋を借りるなら保証会社も難しくそうです、年を増えていくかクビになるかも知れません、いつか騙されるの詐欺もあります。</p>
<p>こういうらの問題を改善なら、国と社会からいろいろな手伝わなければならないです。日本とか低収入向けの給付金とか、いろんなNPOからの無料食料の配るとか、歳を取った人向けの部屋賃貸優待とか、これらの政策があれば、刑務所に入りたい人の気持ちが減っているかなと思います。これらの人たちももいい終活になるかも知れません。</p>
<h2>終活</h2>
<p>終活というのは自分の死に備えることです、他人に迷惑をかけないためようです。</p>
<p>初めて聴く時、驚きました、自分の死まで他の人に迷惑をかけないように、まさか日本人がすげーと思いました。</p>
<p>前の日本語学校での６０代の林先生は終活もう始まりましたと言われる時、びっくりしました。８０歳の時を始まるかなと思います、日本の平均年齢は８０何歳ですから。でも僕はその歳になったら、考えは変わるかも知れませんです。</p>
<p>中国であまりそいう議論がないかな、まだ日本の高齢化ようになっていないのためと思います、詳しくわからないですけど、僕の爺さんは九十歳ですけど、まだ自分でお金を管理している、耳と目も悪くて、銀行の手帳の字も見えないぐらいでも、自分で管理しています。</p>
<p>中国の高齢化進めていく、終活もどんどん広がっていくかも知れないです。</p>
<p>時々考えて、もし自分は何が事件が囲まれて、亡くなって、自分の財産とかはどうやって親に渡すか、まあ〜、難しいかな、パスワードとかさ、もっといい方法考え必要かも。</p>
]]></content:encoded></item><item><title><![CDATA[2025年の振り返りと2026年のゴール]]></title><guid>https://czq.me/posts/2025nian-nozhen-rifan-rito2026nian-nogoru-9ea289c0</guid><link>https://czq.me/posts/2025nian-nozhen-rifan-rito2026nian-nogoru-9ea289c0</link><pubDate>Wed, 11 Feb 2026 13:57:25 +0000</pubDate><content:encoded><![CDATA[<p>日本に３年目でした、少し慣れていましたけれども、今後の人生を考えて、もっと変えたいです、もっと自由の生活に頑張りたいです。</p>
<h2>2025年の振り返り</h2>
<p>一年間で目標なく、ただの普通の好きではない仕事をやっていました。</p>
<p>毎月必ずどこで遊びに行きます、イベントとか山とか海とか、遊びは楽しかったです。</p>
<p>ITエンジニアに関することはあまり勉強していない、AIのプログラミングはめっちゃ発達しています、いつかクビになるかも知れません。未来はどうなエンジニアが必要ですがもっと考えしないと、もしかしてみんなプログラミングができる、一人会社を作るかも知れません。</p>
<p>日本語のレベルあまり変わっていないかな。日本人の友達になるのは難しいと思います、時時林先生の居酒屋に行って、楽しいで日本語を喋ります、よく政治とか音楽の話をしています。</p>
<p>５月の時、フルテレワークの仕事から出勤する仕事になりました。</p>
<p>６月の時、副業として、二つことを試しました。</p>
<p>一つ目はAIを使ってショットビデオを作って、Youtubeに発信する、効果がありましたが、ショットビデオを作るのは大変だったです、初めの時は二、三時間で一本しか出さないです、そして自分はそれについての趣味はあまりないです、まだ二つ目のことに一緒にやっています、夜遅く朝二時ぐらい寝る、それでとまりました、いつか他の副業できないならば、もう一度試してみます。</p>
<p>二つ目Claude Codeを使って幾つのサイトを作りました、あまり効果が出なかったです。宣伝することが大事と言われましたが全然やっていない、これから宣伝のことしかり勉強しなければならないです。
今も役に立つのサイトを作っています、ほとんどAIで作ります、自分はリーダーような感じになりました、技術だけだはなく、どんな機能を持っているのはいいか、AIと交流して、決めます。</p>
<p>今年二回目実家に帰りました、親に世話することも大事です。</p>
<p>年末の新聞で日本の国籍法の帰化要件は日本に住んでいる５年から１０年に変えるつもりはずです、これからももっと考えが必要です。</p>
<p>多分唯一達成感のことは、今年五回目献血行きました、三年間で総献血数は十五回になりました。</p>
<h2>2026年のゴール</h2>
<p>32歳になりました、なんか緊張感がありました、社会と親からのプレッシャーの原因かな、それでなんの成果もない。技術もそう何うまくではない、日本語も中途半端です、全然うまくないです、英語はももっと悪いです。</p>
<p>よく考えています、自分として生き延びるはなんですか、これは大きな課題ようです、まだはっきり言うことができませんが、自由は一番の目標として頑張りたいです。</p>
<p>今年のゴールは以下になります。</p>
<ol>
<li>体の健康、健康はすべての基礎、これは特に力を入れたいです。</li>
<li>睡眠。毎週5日、８時間の睡眠を確保する。</li>
<li>運動。毎週3回以上、ジョギングをする。</li>
<li>飲食。高糖・高脂肪の飲食を控えたい、週2回までにする。</li>
<li>本業以外の収入の多様化、今年主にSaasを中心とした副業の立ち上げたいです、一円でもいいので、そいうフライホイールを作りたいです。（毎週６時間）</li>
<li>趣味関する分野と言語を勉強する。（毎週４時間時間）</li>
</ol>
<p>これからはもっと詳しくプランを展開します。</p>
<p>以上になります、これからの人生はもっと自分らしいになりたいと頑張っていきたいと思います。</p>
]]></content:encoded></item><item><title><![CDATA[SSJメンバーイベントの話]]></title><guid>https://czq.me/posts/ssjmenbaibentonohua-1d00898e</guid><link>https://czq.me/posts/ssjmenbaibentonohua-1d00898e</link><pubDate>Sun, 25 Jan 2026 13:30:37 +0000</pubDate><content:encoded><![CDATA[<h2>① 最近楽しかったこと</h2>
<p>昨日は千葉県の稲毛（いなげ）海浜（かいひん）公園に行きました。
めっちゃ綺麗な夕方（ゆうがた）を見ました。</p>
<h2>② 今年やりたいこと・行きたいところ</h2>
<p>神奈川県（かながわけん）の丹沢山（たんざわさん）を上り行きたいです。
立派な富士山を見えはずです。</p>
<h2>③ もし1か月休みがあったら？</h2>
<p>四国遍路（しこくへんろ）に歩きたいです。
八十八ヶ所のお寺があって、面白いそうです。</p>
<h2>④ 最近ハマっているもの</h2>
<p>カメラかな、登山の途中で素敵な風景を撮りたいです。</p>
<h2>⑤ 1年前の今ごろ、何をしていましたか？</h2>
<p>実家にテレワークの仕事をしていまし、一ヶ月ぐらいで滞在しました。</p>
<h2>⑥ 最近撮った写真を見せてください</h2>
<p>昨日の稲毛（いなげ）海浜（かいひん）公園です。</p>
<div class="gallery"><div class="gallery_column"><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_486396.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_486396.jpg" alt="P1240626.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_47662.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_47662.jpg" alt="P1240643.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_48154.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_48154.jpg" alt="P1240758.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_481162.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_481162.jpg" alt="P1240799.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure></div><div class="gallery_column"><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_478754.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_478754.jpg" alt="P1240851.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_478358.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_478358.jpg" alt="P1240874.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure><figure><picture><source srcset="https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230565362_316056.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230565362_316056.jpg" alt="P1240895.jpg"loading="lazy" decoding="async" width="5184" height="3888" /></picture></figure></div></div>
<h2>⑦ 最近ちょっと困ったこと</h2>
<p>日本の国籍法は変わるかも、帰化の条件は５年から１０年に変えるそうです。日本来る前に帰化する準備があって、この状況で厳しいに考えられます。</p>
]]></content:encoded></item><item><title><![CDATA[中日文化差异之公司内的称呼]]></title><guid>https://czq.me/posts/zhong-ri-wen-hua-chai-yi-zhi-gong-si-nei-cheng-h-4ce73b4a</guid><link>https://czq.me/posts/zhong-ri-wen-hua-chai-yi-zhi-gong-si-nei-cheng-h-4ce73b4a</link><pubDate>Fri, 23 Jan 2026 13:57:57 +0000</pubDate><content:encoded><![CDATA[<p>在中日公司内，大家互相的称呼不太一样。</p>
<p>在中国大家倾向于省略姓直接叫名字的部分，也有从姓名中取出一个字加上哥or姐。
在日本大家都是姓加上桑。
比如我的名字，在中国大家叫我，自强or强哥，在日本大家叫我陈桑。</p>
<p>在中国大家似乎习惯于通过称呼去拉近关系，有时候会聊聊私事，这样似乎好办事。在日本大家都是按照规则工作，个人之间保持距离，几乎不会聊私事。</p>
<p>我个人觉得两者互有优缺点，可能更倾向于前者，那也是我习惯的一种工作生活方式。</p>
]]></content:encoded></item><item><title><![CDATA[【スピーチ】大人になって気づいたこと]]></title><guid>https://czq.me/posts/supichi-da-ren-ninatsuteqi-duitakoto-11a3a97d</guid><link>https://czq.me/posts/supichi-da-ren-ninatsuteqi-duitakoto-11a3a97d</link><pubDate>Sun, 18 Jan 2026 10:30:00 +0000</pubDate><content:encoded><![CDATA[<p>初めこのテイマを見ると、椎名林檎の<a href="https://www.uta-net.com/song/241087/">人生は夢だらけ</a>という歌を思いました、その中に「大人になって」という歌詞があります。</p>
<p>大人になって気づいたこと、こちら三点を話したいです。</p>
<h2>一点目、自分の人生、自分の責任</h2>
<p>自分の人生の決定はどんな結果があても自分で責任を持ったなければならない。
それで、決まる前に一番悪い結果を想像して、その結果は受けることができるかどうか考えて決めます。</p>
<h2>二点目、資産運用</h2>
<p>資産運用（うんよう）は大事、最近の日本でも物価上昇（じょうしょう）しています、それに対してNISAとか、iDeCoとか、活用して負担を少し減っていくじゃないかなと思います。</p>
<h2>三点目、政治</h2>
<p>政治も大事、多分みんな知っている、中国では政治に関心することができません、でも、政治は自分の周りに多くことが繋がっている、例えば、歳をとった人に対するの高齢化政策とか。</p>
<p>以上になります。</p>
]]></content:encoded></item><item><title><![CDATA[Rubyの世界でパッケージ管理は二つツールになる原因]]></title><guid>https://czq.me/posts/ruby-world-package-manage-is-two-tools</guid><link>https://czq.me/posts/ruby-world-package-manage-is-two-tools</link><pubDate>Wed, 31 Jul 2024 14:57:09 +0000</pubDate><content:encoded><![CDATA[<p>パッケージ管理について、Node.jsとかGolangとか、Rustとか、一つツールで管理できる。</p>
<p>でもRubyはパッケージのインストール（gem）とパッケージの依存関係管理（bundle）、二つツールになりました。</p>
<p>初めてRubyを学びのとき、疑問がありました、どしてRubyは二つツールでパッケージ管理するか、一ついいじゃないか。</p>
<p>それで、最近もっと気になりました、調べました、ようやくわかりました。簡単に言うと、歴史の原因です、Rubyも古い言語になりました、Javaと同じ時代だ。</p>
<h2>原因</h2>
<p>２００３年RubyGemsは一つパッケージのインストール上手くできるために作られました。プロジェクトのパッケージの依存関係管理の要望がないでした。</p>
<p>その後、gemを使いどんどん増えると、gemバージョンコンフリクト(version conflict)の問題が厳しになりました。</p>
<p>２００９年Bundlerはパッケージの依存関係管理のために作られました。</p>
<p>その原因で、Rubyはパッケージ管理で二つツールになりました。</p>
<h2>現状</h2>
<p>今は、RubyGemsとBundlerは同じ<a href="https://github.com/rubygems/rubygems">プロジェクト</a>にマージになりましたけど、まだ別々のコマンドの状態です。</p>
<h2>参考</h2>
<p><a href="https://www.youtube.com/watch?v=4DqzaqeeMgY"> RubyConf 2015 - How does Bundler work, anyway? by Andre Arko </a></p>
]]></content:encoded></item><item><title><![CDATA[日本の大道芸面白い、好きな芸人を紹介]]></title><guid>https://czq.me/posts/daidougei-sukina-geininn-kanou</guid><link>https://czq.me/posts/daidougei-sukina-geininn-kanou</link><pubDate>Sun, 12 May 2024 14:03:43 +0000</pubDate><content:encoded><![CDATA[<p>先月高円寺びっくり大道芸２０２４に行きました、たくさん面白い芸人を見ました。好きな芸人を紹介します。</p>
<h2>加納真実</h2>
<p>いつも青いジャージや白い靴を着ます、観客とインタラクティブ力が強いの加納真実さんです。</p>
<p>最近もYoutubeでたくさん前の作品を見ました。</p>
<p>一番人気の作品は「仮面舞踏会」、歌舞伎ような白いマスクを着て、たくさんの人と一緒に踊ります、みんな盛り上げますね。</p>
<p>初め見ると、「やー、これは日本っぽいですね」、日本だけで見えます、という感想がでました。</p>
<h3>好きの点</h3>
<p>一、作品は日本古い音楽を使って、聴いてないですけど、懐かしの感覚があります。</p>
<p>二、観客も作品を参加することができます。みんなと一緒に、やはり一番魅力です。</p>
<p>それで、作品の面白さは観客によって違います、同じ作品見っても、面白いものがあります。</p>
<h3>仮面舞踏会（高円寺びっくり大道芸２０２４）</h3>
<p><a href="https://www.youtube.com/shorts/axBqJwGMOJ8">短ビデオを撮影しました</a></p>
<p><a href="https://www.youtube.com/watch?v=9Wx7-ljzbbQ">別の人の撮影、同じ回の作品</a></p>
]]></content:encoded></item><item><title><![CDATA[在 Ruby 中如何创建不转义的多行字符串]]></title><guid>https://czq.me/posts/zai-ruby-zhong-ru-he-chuang-jian-bu-zhuan-yi-de-29998513</guid><link>https://czq.me/posts/zai-ruby-zhong-ru-he-chuang-jian-bu-zhuan-yi-de-29998513</link><pubDate>Tue, 16 Apr 2024 07:47:18 +0000</pubDate><content:encoded><![CDATA[<p>今天遇到的字符串转义问题，开始的路走错了，总想把转义后的字符串解析成不转义的字符串。理论应该也可以做到，应该要看到字符串内部任何解析的了。</p>
<h2>问题</h2>
<p>在解决 <a href="https://adventofcode.com/2015/day/8">这个问题</a> 的时候，我需要计算字符串在没有转义之前的长度。</p>
<p>因为我要解析的文本是一个多行的字符串，所以我打算在运行时把转义后的字符串解析成非转义的字符串。</p>
<p>但是似乎很难做到，即使替换反斜杠 \ 到 \ 也没有作用。想想还是要在输入的就写成不转义的字符串。</p>
<p>我们知道在 Ruby 中，不转义字符串使用单引号来创建。</p>
<div class="block-code" data-language="rb"><div class="highlight"><pre><span></span><code><div class="line"><span class="nb">puts</span> <span class="s1">&#39;</span><span class="se">\x27</span><span class="s1">&#39;</span>
</div><div class="line"><span class="c1"># \x27</span>
</div></code></pre></div>
</div>
<p>但是多行如何创建呢。</p>
<h2>Heredoc 多行字符串</h2>
<div class="block-code" data-language="rb"><div class="highlight"><pre><span></span><code><div class="line"><span class="n">example</span> <span class="o">=</span> <span class="o">&lt;&lt;~</span><span class="sh">&#39;</span><span class="dl">END</span><span class="sh">&#39;</span>
</div><div class="line"><span class="sh">    &quot;&quot;</span>
</div><div class="line"><span class="sh">    &quot;abc&quot;</span>
</div><div class="line"><span class="sh">    &quot;aaa\&quot;aaa&quot;</span>
</div><div class="line"><span class="sh">    &quot;\x27&quot;</span>
</div><div class="line"><span class="dl">END</span>
</div></code></pre></div>
</div>
<p>通过给 Heredoc 块的标识加上单引号即可以转变为不转义的字符串。</p>
<p><a href="https://ruby-doc.org/core-2.5.0/doc/syntax/literals_rdoc.html#label-Here+Documents">参考文档</a></p>
<h2>文件读取</h2>
<div class="block-code" data-language="rb"><div class="highlight"><pre><span></span><code><div class="line"><span class="no">File</span><span class="o">.</span><span class="n">binread</span><span class="p">(</span><span class="s2">&quot;puzzle_input.txt&quot;</span><span class="p">)</span>
</div></code></pre></div>
</div>
<p>通过使用 IO 类的 binread 二进制读取方法来获得不转义的字符串。</p>
]]></content:encoded></item><item><title><![CDATA[Ruby 中的 `Array.new` 中的默认值参数，指向的同一个对象]]></title><guid>https://czq.me/posts/ruby-zhong-de-array-new-zhong-de-mo-ren-zhi-can-984fb634</guid><link>https://czq.me/posts/ruby-zhong-de-array-new-zhong-de-mo-ren-zhi-can-984fb634</link><pubDate>Thu, 11 Apr 2024 06:32:42 +0000</pubDate><content:encoded><![CDATA[<p>今天写 Ruby 遇到的小坑，最后在测试下发现问题，仔细查看文档发现是我理解错了。</p>
<h2>What</h2>
<p>在做 Advent Of Code <a href="https://adventofcode.com/2015/day/6">这一题</a>的时候，需要构建一个比较大的初始值为 false 的二维数组。</p>
<p>本来打算双重循环构建的，但想想 Ruby 的语法糖这么多的语言应该有更加便利的方式。</p>
<p>于是找到了，<code>Array.new</code>，构建了如下的初始化表达式。</p>
<p><code>Array.new(1000, Array.new(1000, false))</code></p>
<p>但是遇到一个奇怪的问题，在修改二维数组中某一个值的时候，导致其他二维数组的同一个位置也会跟着修改。</p>
<h2>Why</h2>
<p>重现问题并验证。</p>
<div class="block-code" data-language="rb"><div class="highlight"><pre><span></span><code><div class="line"><span class="n">a</span> <span class="o">=</span> <span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="kp">false</span><span class="p">))</span>
</div><div class="line"><span class="c1"># =&gt; [[false, false, false], [false, false, false], [false, false, false]]</span>
</div><div class="line"><span class="n">a</span><span class="o">[</span><span class="mi">0</span><span class="o">][</span><span class="mi">0</span><span class="o">]</span> <span class="o">=</span> <span class="kp">true</span>
</div><div class="line"><span class="c1"># =&gt; [[true, false, false], [true, false, false], [true, false, false]]</span>
</div><div class="line"><span class="n">a</span><span class="o">[</span><span class="mi">0</span><span class="o">].</span><span class="n">equal?</span><span class="p">(</span><span class="n">a</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">)</span>
</div><div class="line"><span class="c1"># true</span>
</div></code></pre></div>
</div>
<p>子数组是同一个数组，导致修改一个子数组，其他数组也会跟着修改。</p>
<p>查看<a href="https://ruby-doc.org/3.2.2/Array.html#method-c-new">原始文档</a>，发现确实是说默认值是同一个。</p>
<h2>How</h2>
<div class="block-code" data-language="rb"><div class="highlight"><pre><span></span><code><div class="line"><span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span> <span class="p">{</span> <span class="nb">Array</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="mi">1000</span><span class="p">,</span> <span class="kp">false</span><span class="p">)</span> <span class="p">}</span>
</div></code></pre></div>
</div>
<h2>Summary</h2>
<p>导致理解错了的原因可能是，我还没有转化到 Ruby 中一切皆对象的思维，不再区分什么是基础类型，对象类型。在这个例子中我还在下意识的认为会对传统意义上的对象做特殊处理。</p>
<p>还是 Ruby 代码写的太少了，要多写写，习惯这种一切皆对象的思维方式。</p>
]]></content:encoded></item><item><title><![CDATA[在日本使用汉字姓名的手续]]></title><guid>https://czq.me/posts/zai-ri-ben-shi-yong-yi-zi-xing-ming-de-shou-xu-30a8e633</guid><link>https://czq.me/posts/zai-ri-ben-shi-yong-yi-zi-xing-ming-de-shou-xu-30a8e633</link><pubDate>Sun, 29 Oct 2023 15:07:43 +0000</pubDate><content:encoded><![CDATA[<p>中国护照上的名字是拼音的形式，到了日本默认的名字也是拼音的字母形式。如果想使用汉字的话，需要提交变更申请。</p>
<h2>中国汉字如何转换成日本汉字</h2>
<p>在留管理局提供了一个网站<a href="http://lapse-immi.moj.go.jp:50122/">正字検索システム</a>可以查询到中国汉字对应的可使用日本汉字。</p>
<p>有时候会存在多种情况，应该可以任选其一。</p>
<p>有些日本汉字分为旧字和新字，区别是字形有些不一样，外国人的名字中似乎只能使用旧字。</p>
<p>比如我的名字中的「强」字，日语中类似的常用字是「強」，但是工作人员和我说「強」这个字不可以用，但是可以用「强」字。</p>
<p>后来我找了一篇文章<a href="https://dictionary.sanseido-publ.co.jp/column/%E7%AC%AC105%E5%9B%9E-%E3%80%8C%E5%BC%B7%E3%80%8D%E3%81%A8%E3%80%8C%E5%BC%BA%E3%80%8D">人名用漢字の新字旧字 第105回「強」と「强」</a>，人名中的使用有一些讲究的。</p>
<div class="blockquote"><blockquote><p>その一方で法務省は、平成23年12月26日に入国管理局正字13287字を告示しました。入国管理局正字は、日本に住む外国人が住民票や在留カード等の氏名に使える漢字で、別表第一に旧字の「强」を収録していました。この結果、日本で生まれた外国人の子供の出生届には、新字の「強」に加え、旧字の「强」が書けるようになりました。でも、日本人の子供の出生届には、新字の「強」はOKですが、旧字の「强」はダメなのです。</p>
</blockquote></div>
<p>所以还是使用上面的系统查询比较方便，自己转换会有一些问题。</p>
<h2>费用</h2>
<p>费用的话，如果和在留更新一起提交的话是免费的，单独申请的话是 1600 日元。</p>
<h2>参考</h2>
<p><a href="https://www.moj.go.jp/isa/applications/guide/kanji.html">在留カードの漢字氏名表記について</a></p>
<p><a href="https://www.moj.go.jp/isa/applications/procedures/nyuukokukanri10_00019.html">在留カード漢字氏名表記申出</a></p>
]]></content:encoded></item><item><title><![CDATA[スピーチ「おすすめのアニメあしたのジョー」]]></title><guid>https://czq.me/posts/ashitanojyo-speech</guid><link>https://czq.me/posts/ashitanojyo-speech</link><pubDate>Tue, 26 Sep 2023 03:55:55 +0000</pubDate><content:encoded><![CDATA[<p>日本語学校のクラスでスピーチをしました。内容は以下となります。</p>
<h2>初めのまとめ</h2>
<p>おすすめのアニメといえば、皆さんが何が思いますか、異世界〇〇ですか、魔法〇〇ですか。</p>
<p>私は紹介したいアニメは五十年前昭和時代のボクシング運動についてのアニメ、名前はあしたのジョー。</p>
<p>主人公矢吹丈（やぶき　じょう）は不良（ふりょう）少年から世界一のボクシング選手になったというストーリー。</p>
<h2>おすすめのポイント</h2>
<p>おすすめのポイント四点があります。</p>
<p>ポイント１　主人公の成長が見えます、不良少年から夢を持つ少年に変化した、何度も倒れた、何度も立ち上がります、死ぬまで戦い。</p>
<p>ポイント２　古くて、独特(どくとく)の画面(がめん)。今の時代より画面が豊富じゃないですけど、その時代の独特のスタイルの画面が見えます。</p>
<p>ポイント３　素晴らしい音楽。いろんな特点（とくてん）があります、昭和風とか、ロックとか、シンフォニーとか、音楽から人物のきもちがよく表しました。</p>
<p>ポイント４　太平洋戦争が終わったの日本が見えます、その時急に経済(けいざい)成長が起こった時、社会問題や環境問題を分かれます。</p>
<h2>最後のまとめ</h2>
<p>矢吹丈倒れないの精神に勉強しました、自分の人生も倒れないように続けます。</p>
<p>以上お勧めしたアニメあしたのジョー、趣味がある方、是非見てみてください。</p>
<h2>リファレンス</h2>
<p><a href="https://core-choco.com/news/1838.html">写真から</a></p>
]]></content:encoded></item><item><title><![CDATA[使用 chezmoi 来做 dotfiles 管理]]></title><guid>https://czq.me/posts/shi-yong-chezmoi-lai-zuo-dotfiles-guan-li-7875d2f1</guid><link>https://czq.me/posts/shi-yong-chezmoi-lai-zuo-dotfiles-guan-li-7875d2f1</link><pubDate>Sat, 18 Mar 2023 08:45:00 +0000</pubDate><content:encoded><![CDATA[<p>管理 dotfiles 是个比较麻烦的事情，特别是在多系统下，现在还有在容器中（ devcontainer ，GitHub Codespaces ）开发，如何快速一键的配置自己的环境。之前使用过好几个工具 homeshick mackup 等等，去年开始也把包管理工具切换到 Nix 上，不过 Nix 在 MacOS 的体验有些差，MacOS 上还是好好用 Brew 吧。</p>
<p>最近又搜索相关管理工具，看到 <a href="https://www.chezmoi.io/">chezmoi</a> 这个工具，是个不错的选择，支持多系统上非常好。</p>
<p>我今天在 MacOS 上做了一个初始的<a href="https://github.com/jikyou/dotfiles">配置</a>，也可以在 GitHub Codespaces 中使用。</p>
<p>Arch Linux 的 <a href="https://wiki.archlinux.org/title/Dotfiles#Tools">Wiki</a> 总结了一些常用的 dotfiles 管理工具。</p>
]]></content:encoded></item><item><title><![CDATA[如何测试对当前时间有强依赖的应用]]></title><guid>https://czq.me/posts/ru-he-ce-shi-dui-dang-qian-shi-jian-you-qiang-yi-587e0949</guid><link>https://czq.me/posts/ru-he-ce-shi-dui-dang-qian-shi-jian-you-qiang-yi-587e0949</link><pubDate>Fri, 17 Mar 2023 12:31:35 +0000</pubDate><content:encoded><![CDATA[<p>之前做过的系统中，有些功能对当前时间有非常强的依赖。比如：任务系统中，每日刷新，每周刷新，每月刷新之类的。</p>
<p>整个迭代周期很短，留个开发和测试的时间都不多，真实的时间肯定要测试，但大量的测试还是需要依赖一个假的时间。</p>
<h2>Mock 时间</h2>
<h3>修改系统时间</h3>
<p>修改系统时间虽然比较简单，但会带来一些问题。</p>
<ol>
<li>对开发和测试都不够友好。<ol>
<li>对开发来说，需要写大量的单元测试，不可能依赖这种方式来测试功能。</li>
<li>测试需要登陆测试环境不断设置时间。</li>
</ol>
</li>
<li>集群模式下需要修改整个集群的时间，如果集群部署在一台机器上还好，但是我们使用 k8s ，只修改一个容器的时间，会导致整个集群出现问题，甚至挂掉。</li>
</ol>
<h3>修改应用的时间</h3>
<p>这个对开发和测试比较友好。</p>
<ol>
<li>单元测试非常好写。</li>
<li>并提供环境变量来注入，方便测试同学修改时间测试。</li>
</ol>
<p>Node.js 中，在应用启动的时候，把 Date 时间库包装一下就可以解决。当然社区中也有现成的包 <a href="https://www.npmjs.com/package/timeshift-js">timeshift-js</a> 解决。</p>
]]></content:encoded></item><item><title><![CDATA[阿里云集群模式下的 Redis 对 Lua 脚本存在限制]]></title><guid>https://czq.me/posts/a-li-yun-ji-qun-mo-shi-xia-de-redis-dui-lua-jiao-a1619c75</guid><link>https://czq.me/posts/a-li-yun-ji-qun-mo-shi-xia-de-redis-dui-lua-jiao-a1619c75</link><pubDate>Fri, 17 Mar 2023 10:54:35 +0000</pubDate><content:encoded><![CDATA[<p>去年年初工作时的一篇记录。</p>
<p>遇到一个关于 Redis 集群模式下的问题，是阿里云对 Lua 脚本的限制导致的，但是 <code>node-redlock</code> 包把错误吞掉了，抛出了一个重试失败的错误，导致我定位了好久…</p>
<p>被吞掉的错误信息：</p>
<div class="block-code"><pre><code>-ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array</code></pre></div>
<p><a href="https://help.aliyun.com/document_detail/92942.htm?spm=a2c4g.11186623.0.0.2c555c7dYsASSH#section-8f7-qgv-dlv">https://help.aliyun.com/document_detail/92942.htm?spm=a2c4g.11186623.0.0.2c555c7dYsASSH#section-8f7-qgv-dlv</a></p>
<h2>解决方式</h2>
<ol>
<li>在阿里云后台关闭 <code>script_check_enable</code> 这个设置。</li>
<li>或者改造脚本，只向 Redis 传递对 KEYS 的引用，而不是变量。</li>
</ol>
<h2>反思自我的问题</h2>
<p>未知的错误，网上搜索不到直接的解决方案，加上定位问题的时间不够，导致我没有定位问题的耐心，非常焦躁，希望有人可以帮我解决掉问题...</p>
<p>另一方面没有从原理的角度去思考，<code>node-redlock</code> 只是调用 Redis 的库，他的问题会有哪些地方。</p>
]]></content:encoded></item><item><title><![CDATA[有状态服务改造到无状态服务注意点]]></title><guid>https://czq.me/posts/you-zhuang-tai-fu-wu-gai-zao-dao-wu-zhuang-tai-f-53d324a4</guid><link>https://czq.me/posts/you-zhuang-tai-fu-wu-gai-zao-dao-wu-zhuang-tai-f-53d324a4</link><pubDate>Wed, 15 Feb 2023 13:07:33 +0000</pubDate><content:encoded><![CDATA[<p>之前在摩西科技工作时候的小反思，现在总结一下。</p>
<h2>为什么要做有状态服务</h2>
<ol>
<li>为了快速处理高并发的问题，我们把有竞争关系的请求都转发到同一个服务上（根据用户 id 或者竞争资源的 id 来转发），同时利用 Node.js 的单进程模型，在内存中操作数据，并异步保存。因为操作内存不会有 IO 操作，所以请求的处理顺序就是请求的到来顺序。</li>
<li>异步保存会存在数据丢失的可能性，不过我们的业务没有直接和钱相关的，所以暂时降低了可用性的考量。</li>
</ol>
<h2>为什么又要改造成无状态服务</h2>
<ol>
<li>我们希望可以接入 k8s，让 k8s 来管理日益增多的微服务，并提供动态扩缩容能力。</li>
<li>k8s 也可以做有状态服务，但是会很复杂，所以我们决定改造成无状态服务。</li>
</ol>
<h2>改造注意点</h2>
<ol>
<li>之前把有竞争关系的请求到转发到同一个服务上，现在需要通过加锁或者让 Redis lua 脚本处理竞争问题。</li>
<li>为了解决在扩容之后对数据库的压力，通过 Redis 来缓存数据，一般我们使用 Cache Aside Pattern 来读取和更新数据，更新的时候先把数据保存到数据库，再把缓存失效。</li>
<li>在内存中缓存包含其他服务的数据一定要小心。</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[区块链的无需许可 Permissionless 和终局性 Finality]]></title><guid>https://czq.me/posts/qu-kuai-lian-de-wu-xu-xu-ke-permissionless-he-zh-f3fe6331</guid><link>https://czq.me/posts/qu-kuai-lian-de-wu-xu-xu-ke-permissionless-he-zh-f3fe6331</link><pubDate>Sun, 25 Dec 2022 13:46:43 +0000</pubDate><content:encoded><![CDATA[<p>很久没关注区块链了，最近听了两期播客，学到了两个词无需许可和终局性，对区块链的理解也更加深刻了。</p>
<h2>无需许可 Permissionless</h2>
<p>无需许可的意思是参与区块链出块是否需要别人许可。</p>
<p>在 POW 中只要你购买矿机和电力就可以参与共识。而在 POS 中参与共识是需要发起交易的，而现有的节点有作恶的可能性不广播你的交易，让你无法参与共识。</p>
<p>POW 比 POS 更加具有无需许可，更加去中心化，也更具抗审查能力。</p>
<p>但是 POS 也更加符合监管的需要，也许 CKB 在 Layer1 坚持 POW，在 Layer2 去选择 POS 是更好的一条路，兼顾了无需许可的参与性和监管的需要，让区块链真的变成基础设施。</p>
<h2>终局性 Finality</h2>
<p>终局性的意思是我的这笔交易是不是真的被确认了，不会被 Revert 了。</p>
<p>POW 没有终局性，因为在理论上只要有足够的算力是可以从自己认可的区块高度开始重新出块，而达到最长链，导致其他人的出的块被丢弃，但是这是理论上。所以我们会说超过 6 个区块后，可以认为 99.99% 不会被 Revert 了。</p>
<p>终局性是很多强一致性的应用需求，比如金融类的应用。</p>
<h2>References</h2>
<p><a href="https://talk.nervos.org/t/pow-vs-pos/1732">PoW vs. PoS</a></p>
<p><a href="https://talk.nervos.org/t/fork-it-22-pow-vs-pos/6731">文字稿｜Fork It #22: PoW vs. PoS</a></p>
<p><a href="https://talk.nervos.org/t/fork-it-23-pos/6751">文字稿｜Fork It #23：PoS 是谎言么？</a></p>
]]></content:encoded></item><item><title><![CDATA[2022年9月日本語の宿題の作文]]></title><guid>https://czq.me/posts/2022nian-9yue-ri-ben-yu-nosu-ti-nozuo-wen-75689086</guid><link>https://czq.me/posts/2022nian-9yue-ri-ben-yu-nosu-ti-nozuo-wen-75689086</link><pubDate>Mon, 24 Oct 2022 13:20:09 +0000</pubDate><content:encoded><![CDATA[<h2>2022-09-07</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821737_032169.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821737_032169.jpg" alt="2022-09-07.jpg"loading="lazy" decoding="async" width="3024" height="4032" /></picture></figure></div><h2>2022-09-11</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821737_032499.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821737_032499.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_032499.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821737_032499.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821737_032499.jpg" alt="2022-09-11.jpg"loading="lazy" decoding="async" /></picture></figure></div><h2>2022-09-18</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821737_019785.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821737_019785.jpg" alt="2022-09-18.jpg"loading="lazy" decoding="async" width="3024" height="3024" /></picture></figure></div><h2>2022-09-19</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821737_011075.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821737_011075.jpg" alt="2022-09-19.jpg"loading="lazy" decoding="async" width="3024" height="3024" /></picture></figure></div><h2>2022-09-21</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821737_01878.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821737_01878.jpg" alt="2022-09-21.jpg"loading="lazy" decoding="async" width="3024" height="3024" /></picture></figure></div><h2>2022-09-25</h2>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230821736_825072.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230821736_825072.jpg" alt="2022-09-25.jpg"loading="lazy" decoding="async" width="3024" height="3024" /></picture></figure></div>]]></content:encoded></item><item><title><![CDATA[2022年8月日本語の宿題の作文]]></title><guid>https://czq.me/posts/2022nian-8yue-ri-ben-yu-nosu-ti-nozuo-wen-01768190</guid><link>https://czq.me/posts/2022nian-8yue-ri-ben-yu-nosu-ti-nozuo-wen-01768190</link><pubDate>Sat, 20 Aug 2022 00:34:37 +0000</pubDate><content:encoded><![CDATA[<h2>2022-08-04 おすすめのレストラン</h2>
<p>レストラン紫オレンジ食堂</p>
<p>紫オレンジ食堂は中華料理の食堂です</p>
<p>料理が安くて、便利なのでよく行きます</p>
<p>この店で私がいつも食べるのはとりの唐揚（からあ）げとマーラータンです</p>
<p>この店は、とても便利なところにあります</p>
<p>やかったら行ってみてください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_338751.jpg" alt="2022-08-04.jpg" /></picture></figure></div><h2>2022-08-08 旅行についての質問</h2>
<p>青木先生</p>
<p>こんにちはお元気ですか</p>
<p>島根県で足立美術館にいてみたいんですが、八月はどうですか</p>
<p>どんなえがおすすめですか</p>
<p>みているとき、写真を撮った方がいいですか</p>
<p>時間がある時、教えてください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_335264.jpg" alt="2022-08-08.jpg" /></picture></figure></div><h2>2022-08-11 ボランテイアのもうしこみ</h2>
<p>青木さま</p>
<p>初めまして私はチェンと言います</p>
<p>にほんぼん踊りのボランテイアをしたいと思っています</p>
<p>私は日本の歴史と文化にとても興味があります</p>
<p>日本語は上手ないですが、かんたんな日本語だったらはなせます</p>
<p>がんばりますのでよろしくおねがいします</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_110197.jpg" alt="2022-08-11.jpg" /></picture></figure></div><h2>2022-08-18 季節のお祝い</h2>
<p>青木さん</p>
<p>今年はどんな年でしたか</p>
<p>私は留学の準備が忙しかったです</p>
<p>そしてコロナがいつもあるから、どこへも行けなくて、残念でした</p>
<p>来年は日本に行きたいです</p>
<p>どうそよいねをむかえください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_314362.jpg" alt="2022-08-18.jpg" /></picture></figure></div><h2>2022-08-22 電気製品についてのしつもん</h2>
<p>青木さん</p>
<p>こんにちはちょっと教えてください</p>
<p>いつも使ったスマホが壊れしまいました</p>
<p>昨日新しいのをかった、でもスクリーンショットの方はわかりません</p>
<p>青木さんが使っているのはどうですか</p>
<p>知るなら、ぜひ教えてください</p>
<p>チェん</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_311943.jpg" alt="2022-08-22.jpg" /></picture></figure></div><h2>2022-08-25 私の街の歴史と文化</h2>
<p>これはおんきんきんじょうというしろです、南京にあります。</p>
<p>14世紀にしゅげんしょうによって立てられました、城が長くて、綺麗な城門がたくさなります。</p>
<p>歩くのとき、色々なう風景があります、にぎやかなまちや、学校で遊ぶこどもたちや、静かな公園をみて、楽しめます。</p>
<p>ぜひいてみてください。</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_316646.jpg" alt="2022-08-25.jpg" /></picture></figure></div><h2>2022-08-31 私のエコ活動</h2>
<p>私はごみを減らすために、できるだけスーパーで必要なものだけ買うようにしています</p>
<p>それから、空気を汚さないように電車や自転車を使うようにしています</p>
<p>できることを少しずつしたいと思います</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230821288_312723.jpg" alt="2022-08-31.jpg" /></picture></figure></div>]]></content:encoded></item><item><title><![CDATA[2022年7月日本語の宿題の作文]]></title><guid>https://czq.me/posts/2022nian-7yue-ri-ben-yu-nosu-ti-nozuo-wen-1700aeff</guid><link>https://czq.me/posts/2022nian-7yue-ri-ben-yu-nosu-ti-nozuo-wen-1700aeff</link><pubDate>Mon, 11 Jul 2022 10:24:16 +0000</pubDate><content:encoded><![CDATA[<h2>2022-07-01 遅れます</h2>
<p>すみません</p>
<p>ねすごして、十分ぐらい遅れます</p>
<p>昨日ちょっと疲れましたから</p>
<p>じゃあ、また後で</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_112408.jpg" alt="2022-07-01.jpg" /></picture></figure></div><h2>2022-07-10 私の外国語</h2>
<p>私は仕事がない時、日本語を勉強しています</p>
<p>日本語は中国語と違います</p>
<p>日本語はカタカナの単語を書くのが難しいです</p>
<p>でも日本語の漢字は簡単です</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_106328.jpg" alt="2022-07-10.jpg" /></picture></figure></div><h2>2022-07-13 来週の食事</h2>
<p>ワンさん</p>
<p>来週の鍋（なべ）パーティー楽しみですね</p>
<p>私は飲みものを持って行きます</p>
<p>ワンさんはコーラとジュースとどちらでがいいですか</p>
<p>教えてください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_106789.jpg" alt="2022-07-13.jpg" /></picture></figure></div><h2>2022-07-19 出張</h2>
<p>青木先生</p>
<p>メールありがとうございました</p>
<p>私はちょっと忙しいですが、元気です</p>
<p>来週の出張よろしく御願いします</p>
<p>出発時間は午前九時、到着時間は午後八時、フライトはJF071です</p>
<p>青木先生は中国のビールを飲んだことがありますか</p>
<p>出張の時、お土産に持って行きます</p>
<p>チェン</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_103792.jpg" alt="2022-07-19.jpg" /></picture></figure></div><h2>2022-07-22 健康の相談</h2>
<p>運動をするといいですよ</p>
<p>ちょうと汗をかくのがいいですから</p>
<p>私は時々ジョギングをします</p>
<p>それから温かいお風呂に入るといいですよ</p>
<p>それから長い時間寝るといいですよ</p>
<p>良かったらやってみてください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_112902.jpg" alt="2022-07-22.jpg" /></picture></figure></div><h2>2022-07-29 私の趣味</h2>
<p>私はよく音楽を聞きます</p>
<p>いつもアップルミュージックで聞いています</p>
<p>フェスティバルに行って、生で音楽を聞いてみたいです</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820992_113949.jpg" alt="2022-07-29.jpg" /></picture></figure></div>]]></content:encoded></item><item><title><![CDATA[2022年6月日本語の宿題の作文]]></title><guid>https://czq.me/posts/2022nian-6yue-ri-ben-yu-nosu-ti-nozuo-wen-71c5d13b</guid><link>https://czq.me/posts/2022nian-6yue-ri-ben-yu-nosu-ti-nozuo-wen-71c5d13b</link><pubDate>Tue, 05 Jul 2022 14:23:00 +0000</pubDate><content:encoded><![CDATA[<h2>2022-06-01 私の趣味</h2>
<p>私の趣味</p>
<p>こんにちは、私はチェです</p>
<p>私の趣味は音楽です</p>
<p>とくにロックとJポップと広東ごの歌が好きです</p>
<p>よくうちと会社で音楽を聴きます</p>
<p>ジョギングは時々します</p>
<p>どうぞよろしくお願いします</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_519764.jpg" alt="2022-06-01.jpg" /></picture></figure></div><h2>2022-06-06 うちから実家(じっか)まで</h2>
<p>うちから実家まで</p>
<p>私はうちがらビンカン駅まで歩いて行きます</p>
<p>ビンカン駅からこうじゅう東駅まで地下鉄で行きます</p>
<p>こうじゅう東駅で高速鉄道に乗ります</p>
<p>ドンタイ駅で高速鉄道をおります</p>
<p>ドンタイ駅から実家までバスで行きます</p>
<p>うちから実家まで五時間です</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_523397.jpg" alt="2022-06-06.jpg" /></picture></figure></div><h2>2022-06-09 先月の買い物</h2>
<p>私は先月買い物に行きました</p>
<p>インタネットでパンとストックを買いました</p>
<p>インタネットで牛乳とスキンケア商品を買いました</p>
<p>母にあげました</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_515296.jpg" alt="2022-06-09.jpg" /></picture></figure></div><h2>2022-06-16 休みの日</h2>
<p>先週の日曜日の午前うちにしました</p>
<p>うちで掃除をしました</p>
<p>そして午後会社に行きました</p>
<p>会社で日本語が勉強しました</p>
<p>会社で勉強すると、私はもっと集中（しゅうちゅう）できます。</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_519389.jpg" alt="2022-06-16.jpg" /></picture></figure></div><h2>2022-06-20 て形の作り方</h2>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_345596.jpg" alt="2022-06-20.jpg" /></picture></figure></div><h2>2022-06-22 私の家族</h2>
<p>私の家族</p>
<p>家族は四人です</p>
<p>父と母と祖父と私です</p>
<p>父の仕事は建設労働者です</p>
<p>建築会社で働いています</p>
<p>建築会社にでんどうじてんしゃで行きます</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_516557.jpg" alt="2022-06-22.jpg" /></picture></figure></div><h2>2022-06-27 好きな季節</h2>
<p>好きな季節</p>
<p>こうしゅうには季節が四つあります</p>
<p>春、夏、秋、冬です</p>
<p>私は暖かいのが好きですから、春が好きです</p>
<p>でも暑いのは好きじゃないですから、夏は好きじゃないです</p>
<p>春は三月から五月ごろです</p>
<p>夏は六月から九月ごろです</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_324758.jpg" alt="2022-06-27.jpg" /></picture></figure></div><h2>2022-06-30 私の町</h2>
<p>私の街</p>
<p>ここは飛来峰です</p>
<p>近いはれいいんじやせいこなどがあります</p>
<p>綺麗で人気があります</p>
<p>ぜひ行ってみてください</p>
<div class="photo"><figure><picture><img src="https://i.typlog.com/czqone/8230820692_523304.jpg" alt="2022-06-30.jpg" /></picture></figure></div>]]></content:encoded></item><item><title><![CDATA[2022年5月日本語の宿題の作文]]></title><guid>https://czq.me/posts/2022nian-5yue-ri-ben-yu-nosu-ti-nozuo-wen-a32b3acb</guid><link>https://czq.me/posts/2022nian-5yue-ri-ben-yu-nosu-ti-nozuo-wen-a32b3acb</link><pubDate>Tue, 05 Jul 2022 13:04:00 +0000</pubDate><content:encoded><![CDATA[<h2>2022-05-16 私の朝ごはん</h2>
<p>私はいつもごはんを食べます。</p>
<p>野菜と肉も食べます。</p>
<p>豆腐はあまり食べせん。</p>
<p>よくコーラを飲みます。</p>
<p>お茶はあまりすきじゃないです。</p>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230820510_480685.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230820510_480685.jpg" alt="2022-05-16.jpg"loading="lazy" decoding="async" width="3024" height="4032" /></picture></figure></div><h2>2022-05-23 私の家</h2>
<p>私の家は江蘇省あります。</p>
<p>私の家は一戸建てです。</p>
<p>私の家は新しくないです、じゅうきゅうねんの歴史があります。</p>
<p>私の父は祖父とすんでいます。</p>
<p>猫はいません。ほかの人の犬が時々遊びに来ます。</p>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230820510_476328.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230820510_476328.jpg" alt="2022-05-23.jpg"loading="lazy" decoding="async" width="3024" height="4032" /></picture></figure></div><h2>2022-05-28 私の一日</h2>
<p>これは私の一日</p>
<p>七時に起きます。</p>
<p>九時に会社に行きます。</p>
<p>九時十分に朝ご飯を食べます。</p>
<p>夜七時ごろうちに帰ります。</p>
<p>日本語を勉強します。</p>
<p>時々ユーチューブを見ます。</p>
<p>十一時にシャワーを浴びます。</p>
<p>十二時ごろ寝ます。</p>
<div class="photo"><figure><picture><source srcset="https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500/format,webp 1x, https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000/format,webp 2x" media="(min-width: 1500px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1500 1x, https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_3000 2x" media="(min-width: 1500px)"><source srcset="https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800/format,webp 1x, https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600/format,webp 2x" media="(min-width: 800px)" type="image/webp"><source srcset="https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_800 1x, https://i.typlog.com/czqone/8230820510_444244.jpg?x-oss-process=image/auto-orient,1/interlace,1/quality,q_90/resize,m_lfit,w_1600 2x" media="(min-width: 800px)"><img src="https://i.typlog.com/czqone/8230820510_444244.jpg" alt="2022-05-28.jpg"loading="lazy" decoding="async" width="3024" height="3024" /></picture></figure></div>]]></content:encoded></item><item><title><![CDATA[JS 中实现循环固定次数的语法糖]]></title><guid>https://czq.me/posts/js-zhong-shi-xian-xun-huan-gu-ding-ci-shu-de-yu-49362a46</guid><link>https://czq.me/posts/js-zhong-shi-xian-xun-huan-gu-ding-ci-shu-de-yu-49362a46</link><pubDate>Sun, 29 May 2022 12:57:48 +0000</pubDate><content:encoded><![CDATA[<p>有一些场景需要循环固定次数来执行一些操作，比如失败重试固定次数，制造固定数量的假数据等。</p>
<p>在 JS 中实现的时候，我一直使用最简单的 for 版本，但是一方面他是我代码中为数不多的声明式的循环写法，同时也产生了不必要的变量，相比声明式的写法可读性也稍微差一些。</p>
<p>之前一直使用的循环版本。</p>
<div class="block-code" data-language="js"><div class="highlight"><pre><span></span><code><div class="line"><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">10</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
</div><div class="line"><span class="w">    </span><span class="nx">doSomething</span><span class="p">();</span><span class="w"></span>
</div><div class="line"><span class="p">}</span><span class="w"></span>
</div></code></pre></div>
</div>
<p>在其他语言中，比如 Ruby 中可以这么实现：</p>
<div class="block-code" data-language="ruby"><div class="highlight"><pre><span></span><code><div class="line"><span class="mi">5</span><span class="o">.</span><span class="n">times</span> <span class="p">{</span> <span class="nb">print</span> <span class="s2">&quot;1&quot;</span> <span class="p">}</span>
</div></code></pre></div>
</div>
<p>在 Python3 中可以这么实现：</p>
<div class="block-code" data-language="py"><div class="highlight"><pre><span></span><code><div class="line"><span class="kn">import</span> <span class="nn">itertools</span>
</div><div class="line">
</div><div class="line"><span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">repeat</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
</div><div class="line">    <span class="n">foo</span><span class="p">()</span>
</div></code></pre></div>
</div>
<p>最近在写 JS 中又遇到这个问题，搜索一番，综合各家方案，我选择一个具有声明式，同时可读性也不差的写法。</p>
<div class="block-code" data-language="js"><div class="highlight"><pre><span></span><code><div class="line"><span class="nb">Array</span><span class="p">.</span><span class="kr">from</span><span class="p">({</span><span class="nx">length</span><span class="o">:</span><span class="w"> </span><span class="mf">3</span><span class="p">}).</span><span class="nx">map</span><span class="p">(()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">doSomething</span><span class="p">());</span><span class="w"></span>
</div></code></pre></div>
</div>
<p>当然所有简化写法的目标都是围绕着制造一个有固定数量的 undefined 元素的数组而做的。</p>
<p>更简洁但是可读性差一些的方案。</p>
<div class="block-code" data-language="js"><div class="highlight"><pre><span></span><code><div class="line"><span class="p">[...</span><span class="nb">Array</span><span class="p">(</span><span class="mf">3</span><span class="p">)].</span><span class="nx">map</span><span class="p">(()</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">doSomething</span><span class="p">());</span><span class="w"></span>
</div></code></pre></div>
</div>
<h2>References</h2>
<p><a href="https://stackoverflow.com/questions/30452263/is-there-a-mechanism-to-loop-x-times-in-es6-ecmascript-6-without-mutable-varia">https://stackoverflow.com/questions/30452263/is-there-a-mechanism-to-loop-x-times-in-es6-ecmascript-6-without-mutable-varia</a></p>
]]></content:encoded></item><item><title><![CDATA[在 Bash 中快速执行历史命令的小技巧]]></title><guid>https://czq.me/posts/zai-bash-zhong-kuai-su-zhi-xing-li-shi-ming-ling-778ab45b</guid><link>https://czq.me/posts/zai-bash-zhong-kuai-su-zhi-xing-li-shi-ming-ling-778ab45b</link><pubDate>Mon, 04 Apr 2022 07:58:00 +0000</pubDate><content:encoded><![CDATA[<p>最简单的方式是使用 <code>Ctrl + r</code> 快速搜索已经执行过的历史命令，然后回车就可以快速执行命令了。</p>
<h2>reverse-search-history</h2>
<p>19 年的时候，我购买了 <a href="https://twitter.com/linuxtoy">Linuxtoy</a> 出的一个关于命令行的使用指南<a href="https://selfhostedserver.com/usingcli-book">「像黑客一样使用命令行」</a>。从中学到了一个小技巧就一直使用到了现在。</p>
<p>这个小技巧就是 reverse-search-history 。通过在 Bash 中 <code>Ctrl + r</code> 快速搜索已经执行过的历史命令，然后回车就可以达到快速执行命令了。</p>
<p><a href="https://www.gnu.org/software/bash/manual/html_node/Commands-For-History.html">reverse-search-history</a>，可以追溯的文档是在 关于 Bash 的手册 <a href="https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html">manual</a> 。</p>
<p>目前 Bash 和 Zsh 都支持这个操作，但是 <a href="https://fishshell.com/">Fish Shell</a> 不支持这个特性，参考 <a href="https://github.com/fish-shell/fish-shell/issues/602">Issues</a> ，所以那时候我又用回 Zsh 了。</p>
<h2>fzf - fuzzy finder</h2>
<p><code>Ctrl + r</code> 快捷键搜索的好处是 Bash 自带的，适合在服务器上使用，不用安装任何插件，缺点是但是对搜索不够友好，不能够模糊搜索。</p>
<p>而 <a href="https://github.com/junegunn/fzf">fzf</a> 可以做到模糊搜索，适合在本地开发机使用。安装和使用可以参考 Github 的文档。</p>
<h2>Auto suggestions</h2>
<p>有些插件或者 shell 可以根据历史执行过的命令，自动建议命令，触发条件是需要先在命令行输入需要执行命令。插件会根据前缀匹配出最近的一条历史命令，通过 <code>Ctrl + e</code> 加回车执行命令。当然缺点也是只能根据输入的前缀来匹配命令，和之前的方案相比各有用途。</p>
<ol>
<li>zsh 插件 <a href="https://github.com/zsh-users/zsh-autosuggestions">zsh-autosuggestions</a> 。</li>
<li>fish shell 自带 Autosuggestions。</li>
</ol>
<h2>Reference</h2>
<p><a href="https://www.baeldung.com/linux/bash-using-history-efficiently">Bash – Using History Efficiently</a></p>
]]></content:encoded></item><item><title><![CDATA[[10, 2, 1].sort() 在 JS 中会输出什么]]></title><guid>https://czq.me/posts/10-2-1-sort-zai-js-zhong-hui-shu-chu-shi-yao-b9942a48</guid><link>https://czq.me/posts/10-2-1-sort-zai-js-zhong-hui-shu-chu-shi-yao-b9942a48</link><pubDate>Wed, 16 Mar 2022 14:40:56 +0000</pubDate><content:encoded><![CDATA[<p>在准备面试题的时候，想起了一个在 18 年掉过的坑。关于 JavaScript 中 <code>Array.prototype.sort()</code> 的默认排序数据类型。</p>
<p>（希望问别人这个问题，不会在背后被人骂。）</p>
<h2>是什么</h2>
<p>一些没掉过坑的同学，可能会说当然是 <code>[1, 2, 10]</code> 啦。</p>
<p>但是如果你看过 MDN 的关于 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort"><code>Array.prototype.sort()</code></a> 的文档，你就会知道这个结果是错误的，文档中的第一句话和第二例子就是对这个问题的描述。</p>
<p>那么，答案是什么呢，答案是 <code>[ 1, 10, 2 ]</code>。</p>
<p>为什么呢，看 MDN 原文：</p>
<div class="blockquote"><blockquote><p>The default sort order is ascending, built upon converting the elements into strings, then comparing their sequences of UTF-16 code units values.</p>
</blockquote></div>
<p><code>sort()</code> 函数的默认排序是正序，以及排序的的时候会把所有元素都转化成字符串，然后再排序。字符串排序首先是按照第一个字符进行排序的，再者第一个字符相同的排第二个字符，所以最后的结果是 <code>[ 1, 10, 2 ]</code>。</p>
<p>然而编译器为什么要这么做呢？</p>
<h2>为什么</h2>
<p>首先当然是语言的标准定义这么做的，编译器只是对标准的实现。在 JS 中这个标准就是 <a href="https://tc39.es/ecma262/multipage/">ECMAScript</a> 。</p>
<p>在 <a href="https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.sort"><code>Array.prototype.sort()</code></a> 的标准定义中说：</p>
<div class="block-code" data-language="md"><div class="highlight"><pre><span></span><code><div class="line">d. If comparefn is not undefined, then
</div><div class="line">    i. Let v be ? ToNumber(? Call(comparefn, undefined, « x, y »)).
</div><div class="line">    ii. If v is NaN, return +0𝔽.
</div><div class="line">    iii. Return v.
</div><div class="line">e. Let xString be ? ToString(x).
</div><div class="line">f. Let yString be ? ToString(y).
</div><div class="line">g. Let xSmaller be ! IsLessThan(xString, yString, true).
</div></code></pre></div>
</div>
<p>上面的意思是说，如果 sort 中没有传入比较函数，那么就将需要比较的元素，进行 <code>ToString()</code> 转化后在比较。</p>
<p>那么为什么标准需要这么处理呢？</p>
<p>这里我大胆的猜一猜，找一找借口...。</p>
<ol>
<li>首先 <code>sort()</code> 函数并不是指针对数字进行排序的，还有其他所有类型都可以传入，为了保证函数的语意明确，统一进行 <code>ToString()</code> 操作。</li>
<li>其次我们看下 <a href="https://tc39.es/ecma262/multipage/abstract-operations.html#sec-tostring"><code>ToString()</code></a> 在规范中的定义，除了对 Symbol 类型调用 <code>ToString()</code> 会抛异常，其他类型都是可以使用 <code>ToString()</code> 转化的，所以这也是一个的把未知转化成已知类型的操作，非常干净。</li>
</ol>
<p>所以为什么不对数字进行特殊处理呢？这就不知道了，不过我们可以站语言标准的制定者的角度思考的问题角度，你愿意在标准中让一些方法对一个类型进行特殊处理吗？</p>
<p>题外话，基于以上 <code>ToString()</code> 的例子，我想到有些很奇怪的面试考就是考你，对特殊类型进行加号操作会输出什么，不外呼就是转型成 String 后拼接。</p>
<h2>怎么做</h2>
<p>那么就传入排序函数吧。</p>
<div class="block-code" data-language="js"><div class="highlight"><pre><span></span><code><div class="line"><span class="p">[</span><span class="mf">10</span><span class="p">,</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span><span class="w"> </span><span class="mf">1</span><span class="p">].</span><span class="nx">sort</span><span class="p">((</span><span class="nx">a</span><span class="p">,</span><span class="w"> </span><span class="nx">b</span><span class="p">)</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">a</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">b</span><span class="p">);</span><span class="w"></span>
</div></code></pre></div>
</div>
]]></content:encoded></item></channel></rss>