diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-31 20:42:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-31 20:42:06 +0900 |
| commit | 2ed4720c79db817401e739a4d333c6cf5b59087a (patch) | |
| tree | b87119776576451466e7d0cf8044261682400b8b | |
| parent | 9d4c7d916a9477a0cb635197b02a51befe2cd0ad (diff) | |
| download | nsfisis.dev-2ed4720c79db817401e739a4d333c6cf5b59087a.tar.gz nsfisis.dev-2ed4720c79db817401e739a4d333c6cf5b59087a.tar.zst nsfisis.dev-2ed4720c79db817401e739a4d333c6cf5b59087a.zip | |
style(nuldoc): unify indentation to 4 spaces
129 files changed, 568 insertions, 578 deletions
diff --git a/services/nuldoc/.editorconfig b/services/nuldoc/.editorconfig index a036f907..fd8a4017 100644 --- a/services/nuldoc/.editorconfig +++ b/services/nuldoc/.editorconfig @@ -5,6 +5,10 @@ charset = utf-8 end_of_line = lf insert_final_newline = true -[*.dj] +[*.md] indent_style = space -indent_size = 2 +indent_size = 4 + +[*.toml] +indent_style = space +indent_size = 4 diff --git a/services/nuldoc/content/posts/2021-03-05/my-first-post.md b/services/nuldoc/content/posts/2021-03-05/my-first-post.md index 2732b209..dbd7da0f 100644 --- a/services/nuldoc/content/posts/2021-03-05/my-first-post.md +++ b/services/nuldoc/content/posts/2021-03-05/my-first-post.md @@ -35,22 +35,22 @@ mollit anim id est laborum. * list item 1 * list item 2 - * list item 2.a - * list item 2.b + * list item 2.a + * list item 2.b * list item 3 * list item 3 1. list item 1 1. list item 2 - 1. list item 2.a - 1. list item 2.b + 1. list item 2.a + 1. list item 2.b 1. list item 3 1. list item 3 * [ ] list item 1 * [ ] list item 2 - * [ ] list item 2.a - * [ ] list item 2.b + * [ ] list item 2.a + * [ ] list item 2.b * [ ] list item 3 * [ ] list item 3 diff --git a/services/nuldoc/content/posts/2021-03-30/phperkaigi-2021.md b/services/nuldoc/content/posts/2021-03-30/phperkaigi-2021.md index 40df7065..e6096c83 100644 --- a/services/nuldoc/content/posts/2021-03-30/phperkaigi-2021.md +++ b/services/nuldoc/content/posts/2021-03-30/phperkaigi-2021.md @@ -4,9 +4,9 @@ uuid = "3fbe0b8c-216e-48f6-b905-c0d361b94542" title = "PHPerKaigi 2021" description = "2021-03-26 から 2021-03-28 にかけて開催された、PHPerKaigi 2021 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md b/services/nuldoc/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md index 5072a13c..70068754 100644 --- a/services/nuldoc/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md +++ b/services/nuldoc/content/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md @@ -4,7 +4,7 @@ uuid = "69863d75-ef21-42db-b743-5958f7c86827" title = "【C++】 属性構文の属性名にはキーワードが使える" description = "C++ の属性構文の属性名には、キーワードが使える。ネタ記事。" tags = [ - "cpp", + "cpp", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2021-10-02/python-unbound-local-error.md b/services/nuldoc/content/posts/2021-10-02/python-unbound-local-error.md index 78f7370d..642afc09 100644 --- a/services/nuldoc/content/posts/2021-10-02/python-unbound-local-error.md +++ b/services/nuldoc/content/posts/2021-10-02/python-unbound-local-error.md @@ -4,7 +4,7 @@ uuid = "e1aff84c-d6d4-4dea-bc45-9c41e6445006" title = "【Python】 クロージャとUnboundLocalError: local variable 'x' referenced before assignment" description = "Python における UnboundLocalError の理由と対処法。" tags = [ - "python", + "python", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2021-10-02/ruby-detect-running-implementation.md b/services/nuldoc/content/posts/2021-10-02/ruby-detect-running-implementation.md index fd721024..1552b176 100644 --- a/services/nuldoc/content/posts/2021-10-02/ruby-detect-running-implementation.md +++ b/services/nuldoc/content/posts/2021-10-02/ruby-detect-running-implementation.md @@ -4,7 +4,7 @@ uuid = "e1456a50-4fc6-42ef-89f3-8be78e01da13" title = "【Ruby】 自身を実行している処理系の種類を判定する" description = "Ruby には複数の実装があるが、自身を実行している処理系の種類をスクリプト上からどのように判定すればよいだろうか。" tags = [ - "ruby", + "ruby", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2021-10-02/ruby-then-keyword-and-case-in.md b/services/nuldoc/content/posts/2021-10-02/ruby-then-keyword-and-case-in.md index 74ea919e..e53a6bd4 100644 --- a/services/nuldoc/content/posts/2021-10-02/ruby-then-keyword-and-case-in.md +++ b/services/nuldoc/content/posts/2021-10-02/ruby-then-keyword-and-case-in.md @@ -4,7 +4,7 @@ uuid = "87455008-fe5b-49bf-af5a-b875264f8326" title = "【Ruby】 then キーワードと case in" description = "Ruby 3.0 で追加される case in 構文と、then キーワードについて" tags = [ - "ruby", + "ruby", ] [[article.revisions]] @@ -218,6 +218,6 @@ end # まとめ {#outro} * `if` や `case` の条件の後ろには `then`、`;`、改行のいずれかが必要 - * 通常は改行しておけばよい + * 通常は改行しておけばよい * 3.0 で入る予定の `case` - `in` でも `then` 等が必要になる * Ruby の構文を正確に知るには (現状) `parse.y` を直接読めばよい diff --git a/services/nuldoc/content/posts/2021-10-02/rust-where-are-primitive-types-from.md b/services/nuldoc/content/posts/2021-10-02/rust-where-are-primitive-types-from.md index ab7345eb..cb8a77a8 100644 --- a/services/nuldoc/content/posts/2021-10-02/rust-where-are-primitive-types-from.md +++ b/services/nuldoc/content/posts/2021-10-02/rust-where-are-primitive-types-from.md @@ -4,7 +4,7 @@ uuid = "91c61980-c262-4e8d-89b0-4304e7f6d644" title = "Rust のプリミティブ型はどこからやって来るか" description = "Rust のプリミティブ型は予約語ではなく普通の識別子である。どのようにこれが名前解決されるのかを調べた。" tags = [ - "rust", + "rust", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md b/services/nuldoc/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md index 945e2703..722c1fd0 100644 --- a/services/nuldoc/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md +++ b/services/nuldoc/content/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md @@ -4,7 +4,7 @@ uuid = "44171f75-c312-4c92-9927-3d260e162175" title = "【Vim】 autocmd events の BufWrite/BufWritePre の違い" description = "Vim の autocmd events における BufWrite/BufWritePre がどう違うのかを調べた結果、違いはないことがわかった。" tags = [ - "vim", + "vim", ] [[article.revisions]] @@ -101,13 +101,13 @@ FileEncoding Obsolete. It still works and is equivalent 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 * `BufAdd`/`BufCreate` - * → `BufCreate` は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (`BufAdd`) を使う + * → `BufCreate` は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (`BufAdd`) を使う * `BufRead`/`BufReadPost` - * → `BufReadPre` との対称性のため、あるいは `BufWritePost` との対称性のため `BufReadPost` を使う + * → `BufReadPre` との対称性のため、あるいは `BufWritePost` との対称性のため `BufReadPost` を使う * `BufWrite`/`BufWritePre` - * → `BufWritePost` との対称性のため、あるいは `BufReadPre` との対称性のため `BufWritePre` を使う + * → `BufWritePost` との対称性のため、あるいは `BufReadPre` との対称性のため `BufWritePre` を使う * `FileEncoding`/`EncodingChanged` - * → `FileEncoding` は "Obsolete" と明言されているので、`EncodingChanged` を使う + * → `FileEncoding` は "Obsolete" と明言されているので、`EncodingChanged` を使う ところでこの調査で知ったのだが、`BufRead` と `BufWrite` は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら diff --git a/services/nuldoc/content/posts/2021-10-02/vim-swap-order-of-selected-lines.md b/services/nuldoc/content/posts/2021-10-02/vim-swap-order-of-selected-lines.md index 6f4ca34d..b71bef0a 100644 --- a/services/nuldoc/content/posts/2021-10-02/vim-swap-order-of-selected-lines.md +++ b/services/nuldoc/content/posts/2021-10-02/vim-swap-order-of-selected-lines.md @@ -4,7 +4,7 @@ uuid = "665de47e-0ed6-405e-ad30-81c3c4592d45" title = "Vimで選択した行の順番を入れ替える" description = "Vim で選択した行の順番を入れ替える方法。" tags = [ - "vim", + "vim", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-04-09/phperkaigi-2022-tokens.md b/services/nuldoc/content/posts/2022-04-09/phperkaigi-2022-tokens.md index e5f55419..b164812a 100644 --- a/services/nuldoc/content/posts/2022-04-09/phperkaigi-2022-tokens.md +++ b/services/nuldoc/content/posts/2022-04-09/phperkaigi-2022-tokens.md @@ -4,9 +4,9 @@ uuid = "f4985d54-0907-4449-8101-0fcd382f9e02" title = "PHPerKaigi 2022 トークン問題の解説" description = "PHPerKaigi 2022 で私が作成した PHPer チャレンジ問題を解説する。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-05-01/phperkaigi-2022.md b/services/nuldoc/content/posts/2022-05-01/phperkaigi-2022.md index 915cc115..e46d5951 100644 --- a/services/nuldoc/content/posts/2022-05-01/phperkaigi-2022.md +++ b/services/nuldoc/content/posts/2022-05-01/phperkaigi-2022.md @@ -4,9 +4,9 @@ uuid = "9211e1fe-bca3-43c4-ba4e-c67d62f3fed0" title = "PHPerKaigi 2022" description = "2022-04-09 から 2022-04-11 にかけて開催された、PHPerKaigi 2022 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-08-27/php-conference-okinawa-code-golf.md b/services/nuldoc/content/posts/2022-08-27/php-conference-okinawa-code-golf.md index 36d9a05b..eb40444e 100644 --- a/services/nuldoc/content/posts/2022-08-27/php-conference-okinawa-code-golf.md +++ b/services/nuldoc/content/posts/2022-08-27/php-conference-okinawa-code-golf.md @@ -4,10 +4,10 @@ uuid = "bb71bb5d-361b-44cb-9753-81d14583d860" title = "PHP カンファレンス沖縄で出題されたコードゴルフの問題を解いてみた" description = "PHP カンファレンス沖縄の懇親会 LT で出題されたコードゴルフの問題を解いてみた。" tags = [ - "code-golf", - "conference", - "php", - "phpconokinawa", + "code-golf", + "conference", + "php", + "phpconokinawa", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md b/services/nuldoc/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md index 3665b7f5..edfe94ff 100644 --- a/services/nuldoc/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md +++ b/services/nuldoc/content/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md @@ -4,7 +4,7 @@ uuid = "42f0b29b-1e44-4dbe-9864-69abe3bb1e6e" title = "【PHP】 fizzbuzz を書く。1行あたり2文字で。" description = "PHP で fizzbuzz を書いた。ただし、1行あたりに使える文字数は2文字まで。" tags = [ - "php", + "php", ] [[article.revisions]] @@ -27,10 +27,10 @@ remark = "小さな文言の修正・変更" PHP で、次のような制約の下に fizzbuzz を書いた。 * 1行あたりの文字数は2文字までに収めること (ただし `<?php` タグは除く) - * 厳密な定義: `<?php` タグ以降のソースコードが、2 byte ごとにラインフィード (LF) で区切られること + * 厳密な定義: `<?php` タグ以降のソースコードが、2 byte ごとにラインフィード (LF) で区切られること * スペースやタブを使用しないこと * ループのアンロールをしないこと - * 100 回ループの代わりに 100 回コードをコピペ、というのは禁止 + * 100 回ループの代わりに 100 回コードをコピペ、というのは禁止 * PHP 7.4〜8.1 で動作すること * 実行時に Notice や Warning が出ないこと * 標準的なインストール構成の PHP で実現できること (デフォルトで有効になっていない拡張等を使わないこと) diff --git a/services/nuldoc/content/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md b/services/nuldoc/content/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md index c28df518..d0e12ad3 100644 --- a/services/nuldoc/content/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md +++ b/services/nuldoc/content/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md @@ -4,8 +4,8 @@ uuid = "46e0d5db-b17e-464c-a723-8c3e01af7d1d" title = "PHPerKaigi 2023: ボツになったトークン問題 その 1" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 1)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md b/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md index 4af88548..725ee96b 100644 --- a/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md +++ b/services/nuldoc/content/posts/2022-10-28/setup-server-for-this-site.md @@ -4,7 +4,7 @@ uuid = "673cb872-af2d-41a3-9fb0-60f1afcedb0d" title = "【備忘録】 このサイト用の VPS をセットアップしたときのメモ" description = "GitHub Pages でホストしていたこのサイトを VPS へ移行したので、そのときにやったことのメモ。99 % 自分用。" tags = [ - "note-to-self", + "note-to-self", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md b/services/nuldoc/content/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md index 95024890..05e1b10a 100644 --- a/services/nuldoc/content/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md +++ b/services/nuldoc/content/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md @@ -4,8 +4,8 @@ uuid = "10fe9c47-7029-4874-82bd-b4dc50e07809" title = "PHPerKaigi 2023: ボツになったトークン問題 その 2" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 2)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md b/services/nuldoc/content/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md index c55cf5ba..f65161c2 100644 --- a/services/nuldoc/content/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md +++ b/services/nuldoc/content/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md @@ -4,8 +4,8 @@ uuid = "89722cfb-7f4b-4e96-80bc-e0096e5eeef6" title = "PHPerKaigi 2023: ボツになったトークン問題 その 3" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 3)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2023-04-04/phperkaigi-2023-report.md b/services/nuldoc/content/posts/2023-04-04/phperkaigi-2023-report.md index 64ca8964..63b2b721 100644 --- a/services/nuldoc/content/posts/2023-04-04/phperkaigi-2023-report.md +++ b/services/nuldoc/content/posts/2023-04-04/phperkaigi-2023-report.md @@ -4,9 +4,9 @@ uuid = "21ce39f0-d613-45f2-a760-89c368892d77" title = "PHPerKaigi 2023 参加レポ" description = "2023-03-23 から 2023-03-25 にかけて開催された、PHPerKaigi 2023 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] @@ -32,13 +32,13 @@ remark = "トークセッションの記事版の執筆を中止" これまでとの最大の違いとして、今回はスピーカーとして登壇した。まずはそれについて書く。2つのセッションで登壇した。 * 詳説「参照」:PHP 処理系の実装から参照を理解する - * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/95e4dd94-5fc7-40fe-9e1a-230e36404cbe) - * [スライド](/slides/2023-03-24/phperkaigi-2023/) - * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた + * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/95e4dd94-5fc7-40fe-9e1a-230e36404cbe) + * [スライド](/slides/2023-03-24/phperkaigi-2023/) + * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた * PHPerチャレンジ解説セッション - デジタルサーカス株式会社 - * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/524c9dca-1d70-4b32-a939-9c73ffe5cb48) - * [スライド](/slides/2023-03-25/phperkaigi-2023-tokens/) - * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた + * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/524c9dca-1d70-4b32-a939-9c73ffe5cb48) + * [スライド](/slides/2023-03-25/phperkaigi-2023-tokens/) + * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた PHPer チャレンジの話については後述する。 参照については、PHP を書き始めた頃からずっと疑問に思っていたので、仕組みを理解する良い機会となった。 diff --git a/services/nuldoc/content/posts/2023-06-25/phpconfuk-2023-report.md b/services/nuldoc/content/posts/2023-06-25/phpconfuk-2023-report.md index e830162f..93eed30f 100644 --- a/services/nuldoc/content/posts/2023-06-25/phpconfuk-2023-report.md +++ b/services/nuldoc/content/posts/2023-06-25/phpconfuk-2023-report.md @@ -4,9 +4,9 @@ uuid = "e1568c4c-9bdd-47b9-8b39-939ade4f3ba0" title = "PHP カンファレンス福岡 2023 参加レポ" description = "2023-06-24 に開催された、PHP カンファレンス福岡に参加した。" tags = [ - "conference", - "php", - "phpconfuk", + "conference", + "php", + "phpconfuk", ] [[article.revisions]] @@ -26,23 +26,23 @@ remark = "公開" ※セッションの題名と発表者名は、 [前夜祭イベントの connpass ページ](https://connpass.com/event/282285/) から引用。 * スクラム(の一部)を導入してよくなったこと (asumikam さん) - * スクラムの「一部」を導入されたということでしたが、理想的な形で改善が進んでいるように見受けられました。特に、ブランチ運用やデプロイ頻度、フィードバックサイクルに大きく変化が起きているのは驚くべき成果だと感じました。 + * スクラムの「一部」を導入されたということでしたが、理想的な形で改善が進んでいるように見受けられました。特に、ブランチ運用やデプロイ頻度、フィードバックサイクルに大きく変化が起きているのは驚くべき成果だと感じました。 * 地方の小さな勉強会を一番の活動舞台にする (tomio さん) - * すさまじいほどの「熱」を感じました。私自身、最近になってカンファレンスや勉強会への参加・登壇を活発におこなうようになったことで、頷く点が多かったです。 + * すさまじいほどの「熱」を感じました。私自身、最近になってカンファレンスや勉強会への参加・登壇を活発におこなうようになったことで、頷く点が多かったです。 ## カンファレンス {#conference} ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/phpconfukuoka-2023/proposal/accepted) から引用。 * [育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り - (岡嵜 雄平 さん)](https://fortee.jp/phpconfukuoka-2023/proposal/df5f06e8-900e-4e71-94d7-d0c3cc57a0ac) - * ちょうど弊チームに新規メンバがジョインしたばかりで、オンボーディングプロセスについて考えていたところの発表でした。すぐにすべてを取り入れるというわけにはいきませんが、弊社での新人育成プロセスの改善につながるヒントをいくつか得られたと思います。 + * ちょうど弊チームに新規メンバがジョインしたばかりで、オンボーディングプロセスについて考えていたところの発表でした。すぐにすべてを取り入れるというわけにはいきませんが、弊社での新人育成プロセスの改善につながるヒントをいくつか得られたと思います。 * オブジェクト指向は本当に必要か? (たなかひさてる さん、こいほげ さん) - * ※当日 D ホールでおこなわれたアンカンファレンスセッションのため、正式タイトル・リンクなし - * 私自身、「オブジェクト指向」については色々と言いたいことがあるのですが、だいたいツイートしたこれとこれです。 - * 「オブジェクト指向の話は、パラダイムの異なる複数の言語に触れているかどうかで見え方がまったく異なる印象がある。OOPはどうでもいいです (※個人の感想です)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672502935983656960) ) - * 「OOPは現代の言語で考える意味はほぼない古いパラダイムだよという立場ですが、OOPについてあまり大っぴらに話してると色んなところから刺されそうなんですよね (Twitterは大っぴらじゃないんですか?)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672504892244787201) ) + * ※当日 D ホールでおこなわれたアンカンファレンスセッションのため、正式タイトル・リンクなし + * 私自身、「オブジェクト指向」については色々と言いたいことがあるのですが、だいたいツイートしたこれとこれです。 + * 「オブジェクト指向の話は、パラダイムの異なる複数の言語に触れているかどうかで見え方がまったく異なる印象がある。OOPはどうでもいいです (※個人の感想です)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672502935983656960) ) + * 「OOPは現代の言語で考える意味はほぼない古いパラダイムだよという立場ですが、OOPについてあまり大っぴらに話してると色んなところから刺されそうなんですよね (Twitterは大っぴらじゃないんですか?)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672504892244787201) ) * [その説明、コードコメントに書く?コミットメッセージに書く?プルリクエストに書く? (おかしょい/岡田正平 さん)](https://fortee.jp/phpconfukuoka-2023/proposal/ae71f3a7-4c3c-4c87-8816-8426bcc8d325) - * Twitter にもツイートしましたが、完全に自分の意見と一致していたので、とても共感できました。今後は社内のコードレビュー時に、こちらの資料を貼りつけることにします。 + * Twitter にもツイートしましたが、完全に自分の意見と一致していたので、とても共感できました。今後は社内のコードレビュー時に、こちらの資料を貼りつけることにします。 # おわりに {#outro} diff --git a/services/nuldoc/content/posts/2023-10-02/compile-php-runtime-to-wasm.md b/services/nuldoc/content/posts/2023-10-02/compile-php-runtime-to-wasm.md index 3751f205..464b7910 100644 --- a/services/nuldoc/content/posts/2023-10-02/compile-php-runtime-to-wasm.md +++ b/services/nuldoc/content/posts/2023-10-02/compile-php-runtime-to-wasm.md @@ -4,8 +4,8 @@ uuid = "0ed1ccc8-d437-481c-8cca-2131ce800cc0" title = "PHP の処理系を Emscripten で WebAssembly にコンパイルする" description = "PHP の処理系 (php/php-src) を Emscripten で WebAssembly にコンパイルし、任意のコードを隔離された環境で評価できるようにした。" tags = [ - "php", - "wasm", + "php", + "wasm", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2023-10-13/i-entered-the-open-university-of-japan.md b/services/nuldoc/content/posts/2023-10-13/i-entered-the-open-university-of-japan.md index 18dd11a5..68c5b034 100644 --- a/services/nuldoc/content/posts/2023-10-13/i-entered-the-open-university-of-japan.md +++ b/services/nuldoc/content/posts/2023-10-13/i-entered-the-open-university-of-japan.md @@ -4,7 +4,7 @@ uuid = "78419bf2-a1e6-421f-875b-3d93e777b04f" title = "放送大学に入学しました" description = "放送大学に入学しました。頑張ります。" tags = [ - "ouj", + "ouj", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2023-12-03/isucon-13.md b/services/nuldoc/content/posts/2023-12-03/isucon-13.md index e945e9a3..a996f7df 100644 --- a/services/nuldoc/content/posts/2023-12-03/isucon-13.md +++ b/services/nuldoc/content/posts/2023-12-03/isucon-13.md @@ -4,7 +4,7 @@ uuid = "d0c404bb-4700-4a6f-9911-621e9872d8c6" title = "ISUCON 13 に参加した" description = "ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点" tags = [ - "isucon", + "isucon", ] [[article.revisions]] @@ -26,9 +26,9 @@ ISUCON への参加は今回が初めてとなる。 今回は初参加ということもあり、目標を以下のように定めた。 * 正のスコアを取る - * ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる + * ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる * 速度改善以外に時間を浪費しない (= ハマらない) - * プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする + * プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする # 戦略 {#strategy} diff --git a/services/nuldoc/content/posts/2023-12-31/2023-reflections.md b/services/nuldoc/content/posts/2023-12-31/2023-reflections.md index 5e89bfee..daa0a037 100644 --- a/services/nuldoc/content/posts/2023-12-31/2023-reflections.md +++ b/services/nuldoc/content/posts/2023-12-31/2023-reflections.md @@ -20,17 +20,17 @@ remark = "公開" LT 等も含めて計 11 回の登壇をおこなった。 * PHP 勉強会@東京での登壇 (計 8 回) - * [第 148 回](/slides/2023-01-18/phpstudy-tokyo-148/) - * [第 149 回](/slides/2023-02-15/phpstudy-tokyo-149/) - * [第 150 回](/slides/2023-03-15/phpstudy-tokyo-150/) - * [第 151 回](/slides/2023-04-12/phpstudy-tokyo-151/) - * [第 153 回](/slides/2023-06-21/phpstudy-tokyo-153/) - * [第 154 回](/slides/2023-07-26/phpstudy-tokyo-154/) - * [第 155 回](/slides/2023-08-24/phpstudy-tokyo-155/) - * [第 157 回](/slides/2023-10-25/phpstudy-tokyo-157/) + * [第 148 回](/slides/2023-01-18/phpstudy-tokyo-148/) + * [第 149 回](/slides/2023-02-15/phpstudy-tokyo-149/) + * [第 150 回](/slides/2023-03-15/phpstudy-tokyo-150/) + * [第 151 回](/slides/2023-04-12/phpstudy-tokyo-151/) + * [第 153 回](/slides/2023-06-21/phpstudy-tokyo-153/) + * [第 154 回](/slides/2023-07-26/phpstudy-tokyo-154/) + * [第 155 回](/slides/2023-08-24/phpstudy-tokyo-155/) + * [第 157 回](/slides/2023-10-25/phpstudy-tokyo-157/) * PHPerKaigi 2023 での登壇 - * [レギュラートーク](/slides/2023-03-24/phperkaigi-2023/) - * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) + * [レギュラートーク](/slides/2023-03-24/phperkaigi-2023/) + * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) * PHPerKaigi 2023 での当日スタッフ業 * [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) @@ -44,7 +44,7 @@ LT 等も含めて計 11 回の登壇をおこなった。 * 社外記事 (このブログ): 8本 * 社内記事: 34本 - * 年間で最も記事を書いた人として社内表彰された + * 年間で最も記事を書いた人として社内表彰された # 作ったもの {#coding} diff --git a/services/nuldoc/content/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md b/services/nuldoc/content/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md index 5abef80b..000ef308 100644 --- a/services/nuldoc/content/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md +++ b/services/nuldoc/content/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md @@ -4,8 +4,8 @@ uuid = "05cb16e1-05bc-4359-bc06-88ac20510740" title = "【Neovim】 空の PHP ファイルに namespace 宣言を挿入する" description = "Neovim で空の PHP ファイルを開いたとき、ディレクトリの構造に基づいて自動的に namespace 宣言を挿入するようにする。" tags = [ - "neovim", - "php", + "neovim", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-02-03/install-wireguard-on-personal-server.md b/services/nuldoc/content/posts/2024-02-03/install-wireguard-on-personal-server.md index 8b8741b0..da70a08e 100644 --- a/services/nuldoc/content/posts/2024-02-03/install-wireguard-on-personal-server.md +++ b/services/nuldoc/content/posts/2024-02-03/install-wireguard-on-personal-server.md @@ -4,8 +4,8 @@ uuid = "210673d0-c19e-4195-a280-968a0729dd41" title = "【備忘録】 個人用サーバに WireGuard を導入する" description = "個人用サービスのセルフホストに使っているサーバに WireGuard を導入する作業をしたメモ" tags = [ - "note-to-self", - "wireguard", + "note-to-self", + "wireguard", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-02-10/yapcjapan-2024-report.md b/services/nuldoc/content/posts/2024-02-10/yapcjapan-2024-report.md index dbe2df9d..6db539c3 100644 --- a/services/nuldoc/content/posts/2024-02-10/yapcjapan-2024-report.md +++ b/services/nuldoc/content/posts/2024-02-10/yapcjapan-2024-report.md @@ -4,9 +4,9 @@ uuid = "230a0048-93c0-4aac-91ef-bb3108f3e587" title = "YAPC::Hiroshima 2024 参加レポ" description = "2024-02-10 に開催された、YAPC::Hiroshima 2024 に参加した。" tags = [ - "conference", - "perl", - "yapc", + "conference", + "perl", + "yapc", ] [[article.revisions]] @@ -22,12 +22,12 @@ remark = "公開" ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/yapc-hiroshima-2024) から引用。 * [VISAカードの裏側と "手が掛かる" 決済システムの育て方 (三谷 さん)](https://fortee.jp/yapc-hiroshima-2024/proposal/c0e77f91-f856-48a0-9741-b9afb662cd30) - * ベストスピーカー賞にも選ばれていましたが、大変面白い発表でした。私自身はカード決済の知識がまったくなかったのですが、巧みな説明により、「わかったような気がする」状態になれました。 + * ベストスピーカー賞にも選ばれていましたが、大変面白い発表でした。私自身はカード決済の知識がまったくなかったのですが、巧みな説明により、「わかったような気がする」状態になれました。 * [awkでつくってわかる、Webアプリケーション (やんまー さん)](https://fortee.jp/yapc-hiroshima-2024/proposal/0e545260-61e1-465e-951c-91d6afb7782c) - * ゲームでもプログラミングでも縛りプレイほど楽しいものはないと思います。発表中ではさらっと流されていましたが、データベースとの通信や TLS、GitHub の SSO など、およそ awk で書かれたとは思えぬ機能が多数実装されており、カンファレンスなどの場でしかなかなか味わうことのない狂気に触れることができました。 + * ゲームでもプログラミングでも縛りプレイほど楽しいものはないと思います。発表中ではさらっと流されていましたが、データベースとの通信や TLS、GitHub の SSO など、およそ awk で書かれたとは思えぬ機能が多数実装されており、カンファレンスなどの場でしかなかなか味わうことのない狂気に触れることができました。 * キーノート (杜甫々 さん) - * ※ 招待講演のため fortee のプロポーザルページなし - * 私が小学6年生のとき、プログラミングを始めようと最初に開いたのが「 [とほほの Java 入門](https://www.tohoho-web.com/java/) 」でした。私の人生の道を決定したその第一歩目のサイトの運営者が今まさに目の前で話しているというのは、感動などという言葉ではとても言い尽くせません。これだけで、広島まで来る価値があったと断言できます。 + * ※ 招待講演のため fortee のプロポーザルページなし + * 私が小学6年生のとき、プログラミングを始めようと最初に開いたのが「 [とほほの Java 入門](https://www.tohoho-web.com/java/) 」でした。私の人生の道を決定したその第一歩目のサイトの運営者が今まさに目の前で話しているというのは、感動などという言葉ではとても言い尽くせません。これだけで、広島まで来る価値があったと断言できます。 # おわりに {#outro} diff --git a/services/nuldoc/content/posts/2024-02-22/phpkansai-2024-report.md b/services/nuldoc/content/posts/2024-02-22/phpkansai-2024-report.md index 38a91603..3dcb46c5 100644 --- a/services/nuldoc/content/posts/2024-02-22/phpkansai-2024-report.md +++ b/services/nuldoc/content/posts/2024-02-22/phpkansai-2024-report.md @@ -4,9 +4,9 @@ uuid = "fd8fcb03-8e4d-4ca7-8499-0674accc51a9" title = "PHPカンファレンス関西 2024 参加レポ" description = "2024-02-11 に開催された、PHPカンファレンス関西 2024 に参加した。" tags = [ - "conference", - "php", - "phpkansai", + "conference", + "php", + "phpkansai", ] [[article.revisions]] @@ -22,11 +22,11 @@ remark = "公開" ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/phpcon-kansai2024) から引用。 * [RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド (曽根 壮大 さん)](https://fortee.jp/phpcon-kansai2024/proposal/4e03491c-2a97-40aa-8ff9-a68593b0e847) - * アンチパターンとして紙の上での知識だけあるものの、実際にどう設計すべきなのか、あるいは今すでに使われている場合にどう直していくべきなのかについては、知識がまったく足りていなかったため、よい機会となりました。データベース分野については、今後も知識のインプットと経験が必要だと感じています。 + * アンチパターンとして紙の上での知識だけあるものの、実際にどう設計すべきなのか、あるいは今すでに使われている場合にどう直していくべきなのかについては、知識がまったく足りていなかったため、よい機会となりました。データベース分野については、今後も知識のインプットと経験が必要だと感じています。 * [PHPコミュニティ、その魅力と熱狂をあなたにも!!! (ことみん さん)](https://fortee.jp/phpcon-kansai2024/proposal/c903c4be-77bb-47b9-85a1-5bfdfd61c1aa) - * もしこの記事を読んでいるあなたがまだ一度もカンファレンスや勉強会に参加したことがないなら、この記事はどうでもいいのでスライドを見てください。伝えるべきことは以上です。 + * もしこの記事を読んでいるあなたがまだ一度もカンファレンスや勉強会に参加したことがないなら、この記事はどうでもいいのでスライドを見てください。伝えるべきことは以上です。 * [ほげ言語にあってPHPにない機能 (田中ひさてる さん)](https://fortee.jp/phpcon-kansai2024/proposal/0e0befdb-2028-42c8-98e2-b19e434f5a82) - * 私はプログラミング言語の比較が大好きなので、非常に楽しかったです。UFCS (Uniform Function Call Syntax) の知名度の低さには驚きましたが、D言語er で会場が埋め尽くされていたらそれはそれで驚きなのでやむなしかもしれません。個人的に「ほげ言語にあってPHPにない機能」の中で一番ほしいのは代数的データ型です。 + * 私はプログラミング言語の比較が大好きなので、非常に楽しかったです。UFCS (Uniform Function Call Syntax) の知名度の低さには驚きましたが、D言語er で会場が埋め尽くされていたらそれはそれで驚きなのでやむなしかもしれません。個人的に「ほげ言語にあってPHPにない機能」の中で一番ほしいのは代数的データ型です。 # おわりに {#outro} diff --git a/services/nuldoc/content/posts/2024-03-17/phperkaigi-2024-report.md b/services/nuldoc/content/posts/2024-03-17/phperkaigi-2024-report.md index 2c789baa..49c5b1ae 100644 --- a/services/nuldoc/content/posts/2024-03-17/phperkaigi-2024-report.md +++ b/services/nuldoc/content/posts/2024-03-17/phperkaigi-2024-report.md @@ -4,9 +4,9 @@ uuid = "750be5c8-ca52-4cbd-86fe-5645b06bde95" title = "PHPerKaigi 2024 参加レポ" description = "2024-03-07 から 2024-03-09 にかけて開催された、PHPerKaigi 2024 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] @@ -33,9 +33,8 @@ remark = "Wasm ランタイムの進捗について追記" 昨年に続き、スピーカーとして登壇をおこなった。 * WebAssembly を理解する 〜VM の作成を通して〜 - - * [プロポーザル](https://fortee.jp/phperkaigi-2024/proposal/bc5dc153-17af-4079-8f1b-2660af97e2c8) - * [スライド](/slides/2024-03-08/phperkaigi-2024/) + * [プロポーザル](https://fortee.jp/phperkaigi-2024/proposal/bc5dc153-17af-4079-8f1b-2660af97e2c8) + * [スライド](/slides/2024-03-08/phperkaigi-2024/) WebAssembly の VM を PHP で実装し、実装に至るまでの道程や WebAssembly の特徴、言語処理系を作る楽しさについて語った。 タイトルにある「WebAssembly を理解する」という目的が達成できるようなトークだったかと言われると疑問は残るものの、実際に作った人にしかできない話をすることはできたと思う。 diff --git a/services/nuldoc/content/posts/2024-04-14/phpcon-odawara-2024-report.md b/services/nuldoc/content/posts/2024-04-14/phpcon-odawara-2024-report.md index 3b6d4a50..dbf458f5 100644 --- a/services/nuldoc/content/posts/2024-04-14/phpcon-odawara-2024-report.md +++ b/services/nuldoc/content/posts/2024-04-14/phpcon-odawara-2024-report.md @@ -4,9 +4,9 @@ uuid = "be9c896d-7efa-42dd-a50a-dda5fd3a7f5c" title = "PHP カンファレンス小田原 2024 参加レポ" description = "2024-04-13 に開催された、PHP カンファレンス小田原 2024 に参加した。" tags = [ - "conference", - "php", - "phpcon-odawara", + "conference", + "php", + "phpcon-odawara", ] [[article.revisions]] @@ -26,8 +26,8 @@ remark = "セッションの感想を追加" PHP 処理系の JIT コンパイルにおける PHP 8.4 での変更について、登壇をおこなった。 * 来る新 JIT エンジンについて知った気になる - * [プロポーザル](https://fortee.jp/phpconodawara-2024/proposal/bc9669f6-6583-489c-aa6a-1b68abf7c291) - * [スライド](/slides/2024-04-13/phpcon-odawara-2024/) + * [プロポーザル](https://fortee.jp/phpconodawara-2024/proposal/bc9669f6-6583-489c-aa6a-1b68abf7c291) + * [スライド](/slides/2024-04-13/phpcon-odawara-2024/) 今回、どこから話を始めるか大いに迷ったのだが、最終的には PHP 処理系の opcode や VM といった概念は既知のものとし、そこから JIT コンパイルへ繋げるといった構成にした。 @@ -49,14 +49,14 @@ Tracing JIT の発火条件や、IR を使って実現される最適化方法 発表タイトルと発表者名は fortee より引用 * FigmaとPHPで作る、1ミリたりとも表示崩れしない最強の帳票印刷ソリューション (たつきち さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0 - * 感想: 最初のアイデアから途中の泥臭いワークアラウンドまで非常におもしろかったです。帳票には何度か苦しめられているので、機会があれば試してみたいです。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0 + * 感想: 最初のアイデアから途中の泥臭いワークアラウンドまで非常におもしろかったです。帳票には何度か苦しめられているので、機会があれば試してみたいです。 * PHPの次期バージョンはこの時期どうなっているのか、Internalsの開発体制について (てきめん さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/740b034a-81f0-4b7a-90e9-cd3fa01c651f - * 感想: 前々から出そうとしている RFC があるので、RFC についての日本語情報が増えるのは大変ありがたいです。あとは作業を進めなければ……。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/740b034a-81f0-4b7a-90e9-cd3fa01c651f + * 感想: 前々から出そうとしている RFC があるので、RFC についての日本語情報が増えるのは大変ありがたいです。あとは作業を進めなければ……。 * Architecture Decision Record を一年運用してみた (富所 亮 さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/56218b4f-b724-4199-82f1-67497501a9ef - * 感想: 今回最も楽しみにしていた発表の一つです。設計指針の調査・共有等には課題を感じていたので、弊チームでも導入のために動いていこうと思います。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/56218b4f-b724-4199-82f1-67497501a9ef + * 感想: 今回最も楽しみにしていた発表の一つです。設計指針の調査・共有等には課題を感じていたので、弊チームでも導入のために動いていこうと思います。 # おわりに {#outro} diff --git a/services/nuldoc/content/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md b/services/nuldoc/content/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md index 41b9513c..14703018 100644 --- a/services/nuldoc/content/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md +++ b/services/nuldoc/content/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md @@ -4,8 +4,8 @@ uuid = "a4c326a6-5ffe-450c-abf2-45833c5efb6a" title = "【GitLab】 GitLab CI/CD 上での bash/sh は pipefail が有効になっている" description = "GitLab CI/CD で bash/sh スクリプトを動かすと、pipefail オプションが有効になった状態で実行される。" tags = [ - "ci-cd", - "gitlab", + "ci-cd", + "gitlab", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md b/services/nuldoc/content/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md index bae8416b..2b2180b4 100644 --- a/services/nuldoc/content/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md +++ b/services/nuldoc/content/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md @@ -4,9 +4,9 @@ uuid = "9b26c1ed-45c3-4cad-9476-cbf2cf2e4de7" title = "【Zsh】 Composer のカスタムコマンドに対する Zsh 補完で引数にファイルを補完させる" description = "Zsh の Composer に対する補完はカスタムコマンドやその引数を補完しない。カスタムコマンドの引数としてファイルを補完させる方法を調べた。" tags = [ - "composer", - "php", - "zsh", + "composer", + "php", + "zsh", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-05-11/phpconkagawa-2024-report.md b/services/nuldoc/content/posts/2024-05-11/phpconkagawa-2024-report.md index bddf2e27..0e00ee07 100644 --- a/services/nuldoc/content/posts/2024-05-11/phpconkagawa-2024-report.md +++ b/services/nuldoc/content/posts/2024-05-11/phpconkagawa-2024-report.md @@ -4,9 +4,9 @@ uuid = "f13aa9d6-4533-4a15-872a-c298ab2090db" title = "PHP カンファレンス香川 2024 参加レポ" description = "2024-05-11 に開催された、PHP カンファレンス香川 2024 に参加した。" tags = [ - "conference", - "php", - "phpconkagawa", + "conference", + "php", + "phpconkagawa", ] [[article.revisions]] @@ -20,21 +20,21 @@ remark = "公開" # セッション感想 {#session-thoughts} * 泥まみれの技術革新: あなたの[ PHPバージョンアップ | 新フレームワーク採用 | アーキテクチャ刷新 | … ]を後押しするために by nrslib - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/7f4622af-03b6-4b83-a0ef-e1cfc7b7c930 - * 感想: ちょうどとあるマイグレーション作業をしているので、頷きながら拝聴しました。結局は誰しも移行作業は根気と腕力なのだということに勇気をもらえました。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/7f4622af-03b6-4b83-a0ef-e1cfc7b7c930 + * 感想: ちょうどとあるマイグレーション作業をしているので、頷きながら拝聴しました。結局は誰しも移行作業は根気と腕力なのだということに勇気をもらえました。 * PHP 9 に備えよ - 動的プロパティ、どうすればいぃ? by 荒瀬 泰輔 - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/039ebb21-d104-4df2-86bb-be2680979b7b - * 感想: これも上と同じく移行作業の話ではあり、結局のところは「頑張って地道にやっていく」しかないところもあります (とはいえこちらは静的解析である程度潰せますが)。PHP 言語のコミュニティ全体で頑張っていきましょう。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/039ebb21-d104-4df2-86bb-be2680979b7b + * 感想: これも上と同じく移行作業の話ではあり、結局のところは「頑張って地道にやっていく」しかないところもあります (とはいえこちらは静的解析である程度潰せますが)。PHP 言語のコミュニティ全体で頑張っていきましょう。 * 1人プロ・ペアプロ・モブプロの効果的な使い分け by まきまき - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/db3e9634-4a79-46c1-84fd-8ffa4d495a13 - * 感想: 今会社でペアプロを部分的に取り入れているものの、迷うところが多く、楽しみにしていた発表です。まずは何か一つ変えないことには始まらないので、発表から得たヒントを自分たちのチームに反映すべく、何かやりかたを変えてみる予定です。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/db3e9634-4a79-46c1-84fd-8ffa4d495a13 + * 感想: 今会社でペアプロを部分的に取り入れているものの、迷うところが多く、楽しみにしていた発表です。まずは何か一つ変えないことには始まらないので、発表から得たヒントを自分たちのチームに反映すべく、何かやりかたを変えてみる予定です。 * mb_trim関数を作りました - PHPに新しい関数を追加しました - by てきめん - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/0ec36f50-c4b7-4aa4-abef-006f8bab3931 - * 感想: RFC を必要とするような機能追加のプロセスを日本語で解説する資料がどんどんと増えていくのは、ハードルを下げるという意味で非常にありがたいです。私も以前から出そう出そうと考えている書きかけの RFC があるのですが、具体的なプロセスが明示されるとやはりやる気になりますね。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/0ec36f50-c4b7-4aa4-abef-006f8bab3931 + * 感想: RFC を必要とするような機能追加のプロセスを日本語で解説する資料がどんどんと増えていくのは、ハードルを下げるという意味で非常にありがたいです。私も以前から出そう出そうと考えている書きかけの RFC があるのですが、具体的なプロセスが明示されるとやはりやる気になりますね。 * (「PHPカンファレンス小田原2024」を実行委員長がふりかえる by asumikam) - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/c1efd828-72c9-4719-93f7-2ca3f8f20ac1 - * 備考: ちょっとしたトラブルにより午前中の発表が見られなかったので、生で拝聴したわけではなく、スライドを拝見して感想を書いています。 - * 感想: Thanks のスライド非常に嬉しかったです。こちらこそ素晴らしいカンファレンスの場をありがとうございました!スタッフ募集あれば来年も是非参加させてください。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/c1efd828-72c9-4719-93f7-2ca3f8f20ac1 + * 備考: ちょっとしたトラブルにより午前中の発表が見られなかったので、生で拝聴したわけではなく、スライドを拝見して感想を書いています。 + * 感想: Thanks のスライド非常に嬉しかったです。こちらこそ素晴らしいカンファレンスの場をありがとうございました!スタッフ募集あれば来年も是非参加させてください。 # 懇親会 LT {#lightning-talk} diff --git a/services/nuldoc/content/posts/2024-06-19/scalamatsuri-2024-report.md b/services/nuldoc/content/posts/2024-06-19/scalamatsuri-2024-report.md index a551aa1c..2d15f75d 100644 --- a/services/nuldoc/content/posts/2024-06-19/scalamatsuri-2024-report.md +++ b/services/nuldoc/content/posts/2024-06-19/scalamatsuri-2024-report.md @@ -4,9 +4,9 @@ uuid = "8d6f3690-3da3-4235-a81b-b9707cee22ad" title = "ScalaMatsuri 2024 参加レポ" description = "2024-06-08 から 2024-06-09 にかけて開催された、ScalaMatsuri 2024 に参加した。" tags = [ - "conference", - "scala", - "scalamatsuri", + "conference", + "scala", + "scalamatsuri", ] [[article.revisions]] @@ -24,9 +24,9 @@ Day 2 には当日参加できなかったため、day 2 のセッションの 特に印象に残ったセッションを、day 1 と day 2 で一つずつ選んだ (タイトルと登壇者名は [公式ホームページの「プログラム」](https://2024.scalamatsuri.org/ja/programs) から引用)。 * [Scala to WebAssembly: 動機と方法](https://2024.scalamatsuri.org/ja/programs/SESSION_DAY_1_02) (Rikito Taniguchi さん) - * [最近 WebAssembly の処理系を作った](/posts/2024-03-17/phperkaigi-2024-report/#section--as-speaker) こともあって、気になっていたセッションです。私の処理系は WasmGC proposal を実装していないので動かせないのですが、いつかサポートして動かしてみたいですね。 + * [最近 WebAssembly の処理系を作った](/posts/2024-03-17/phperkaigi-2024-report/#section--as-speaker) こともあって、気になっていたセッションです。私の処理系は WasmGC proposal を実装していないので動かせないのですが、いつかサポートして動かしてみたいですね。 * [作って学ぶ Extensible Effects](https://2024.scalamatsuri.org/ja/programs/SESSION_DAY_2_04) (Kory さん・hsjoihs さん) - * 今回一番楽しみにしていたセッションです。Day 2 当日は参加できず、後日アーカイブ動画を視聴したのですが、期待を裏切らない濃厚なセッションでした。後日開かれた [NB-Scala レトロスペクティブ (非公式後夜祭)](https://nextbeat.connpass.com/event/315988/) の発表も拝聴したのですが、どちらも非常に面白かったです。 + * 今回一番楽しみにしていたセッションです。Day 2 当日は参加できず、後日アーカイブ動画を視聴したのですが、期待を裏切らない濃厚なセッションでした。後日開かれた [NB-Scala レトロスペクティブ (非公式後夜祭)](https://nextbeat.connpass.com/event/315988/) の発表も拝聴したのですが、どちらも非常に面白かったです。 # その他感想 {#others} diff --git a/services/nuldoc/content/posts/2024-07-19/reparojson-fix-only-json-formatter.md b/services/nuldoc/content/posts/2024-07-19/reparojson-fix-only-json-formatter.md index b9590c53..8157c423 100644 --- a/services/nuldoc/content/posts/2024-07-19/reparojson-fix-only-json-formatter.md +++ b/services/nuldoc/content/posts/2024-07-19/reparojson-fix-only-json-formatter.md @@ -4,8 +4,8 @@ uuid = "222488dd-cf07-4961-83aa-a014b05369ff" title = "reparojson: 文法エラーを直すだけの JSON フォーマッタを作った" description = "文法エラーだけを直し、空白の削除や挿入といった整形処理を一切おこなわない JSON フォーマッタを作成した。Neovim と連携させる設定例も紹介する。" tags = [ - "neovim", - "vim", + "neovim", + "vim", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md b/services/nuldoc/content/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md index c982145f..45ff690e 100644 --- a/services/nuldoc/content/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md +++ b/services/nuldoc/content/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md @@ -4,7 +4,7 @@ uuid = "eed112e4-3227-4b3f-9991-7e11c288ee2b" title = "【Go】 text/template の with や range の内側から外側の \".\" にアクセスする" description = "Go言語の text/template における with や range は \".\" を上書きする。これらの内側から外側の \".\" にアクセスする方法を調べた。" tags = [ - "go", + "go", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-09-28/mncore-challenge-1.md b/services/nuldoc/content/posts/2024-09-28/mncore-challenge-1.md index 4c5bbbd9..d76eb740 100644 --- a/services/nuldoc/content/posts/2024-09-28/mncore-challenge-1.md +++ b/services/nuldoc/content/posts/2024-09-28/mncore-challenge-1.md @@ -4,8 +4,8 @@ uuid = "ee7289ee-ff2e-439d-b343-7f87504192fd" title = "MN-Core Challenge #1 参加レポ" description = "2024-08-28 から 2024-09-24 にかけて開催された MN-Core Challenge #1 に参加した。" tags = [ - "code-golf", - "mncore-challenge", + "code-golf", + "mncore-challenge", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-12-04/cohackpp-report.md b/services/nuldoc/content/posts/2024-12-04/cohackpp-report.md index 60e33e4e..6b049626 100644 --- a/services/nuldoc/content/posts/2024-12-04/cohackpp-report.md +++ b/services/nuldoc/content/posts/2024-12-04/cohackpp-report.md @@ -4,8 +4,8 @@ uuid = "ea0593d3-691c-4e08-8db4-98b8925717ec" title = "紅白ぺぱ合戦に参加<しました" description = "2024-11-30 に開催された紅白ぺぱ合戦に参加し、ぺ陣営のメンバとして LT しました。" tags = [ - "cohackpp", - "php", + "cohackpp", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2024-12-33/2024-reflections.md b/services/nuldoc/content/posts/2024-12-33/2024-reflections.md index 807856d8..5cc53426 100644 --- a/services/nuldoc/content/posts/2024-12-33/2024-reflections.md +++ b/services/nuldoc/content/posts/2024-12-33/2024-reflections.md @@ -28,12 +28,12 @@ LT 等も含めて計 8 回の登壇をおこなった。 * [YAPC::Hiroshima 2024 参加](/posts/2024-02-10/yapcjapan-2024-report/) * [PHPカンファレンス関西 2024 参加](/posts/2024-02-22/phpkansai-2024-report/) * PHPerKaigi 2024 - * [登壇](/slides/2024-03-08/phperkaigi-2024/) - * コアスタッフとして参加 + * [登壇](/slides/2024-03-08/phperkaigi-2024/) + * コアスタッフとして参加 * [Ya8 2024 登壇](/slides/2024-03-15/ya8-2024/) * PHP カンファレンス小田原 2024 - * [登壇](/slides/2024-04-13/phpcon-odawara-2024/) - * 当日スタッフとして参加 + * [登壇](/slides/2024-04-13/phpcon-odawara-2024/) + * 当日スタッフとして参加 * [PHP 勉強会@東京 第 163 回 LT で登壇](/slides/2024-04-25/phpstudy-tokyo-163/) * [PHP カンファレンス香川 2024 参加](/posts/2024-05-11/phpconkagawa-2024-report/) * [ScalaMatsuri 2024 参加](/posts/2024-06-19/scalamatsuri-2024-report/) @@ -51,7 +51,7 @@ LT 等も含めて計 8 回の登壇をおこなった。 * 社外記事 (このブログ): 15本 * 社内記事: 22本 - * 年間で最も記事を書いた人として社内表彰された + * 年間で最も記事を書いた人として社内表彰された # 作ったもの {#coding} diff --git a/services/nuldoc/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.md b/services/nuldoc/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.md index 407e558f..d075c6a0 100644 --- a/services/nuldoc/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.md +++ b/services/nuldoc/content/posts/2025-01-08/phperkaigi-2023-tokens-q1.md @@ -4,10 +4,10 @@ uuid = "ce8f20e8-c79f-48f8-982d-53edd4d20483" title = "PHPerKaigi 2023 トークン問題解説 (1/5)" description = "PHPerKaigi 2023 でデジタルサーカス株式会社から出題した問題を解説する。全5問中の第1問。" tags = [ - "conference", - "php", - "phperkaigi", - "piet", + "conference", + "php", + "phperkaigi", + "piet", ] [[article.revisions]] @@ -284,13 +284,13 @@ QR コード中央のカラフルな部分が Piet の命令になっている それぞれの部分はおおよそ次のようなことをやっている (再検証・再読解はしていないので大嘘かもしれない)。 * 左上: 入力受け付け - * 標準入力から1文字ずつ読み込み、入力がなくなるまでスタックに積む。多分。 + * 標準入力から1文字ずつ読み込み、入力がなくなるまでスタックに積む。多分。 * 上辺、右辺: パスワードの検証 - * 入力がパスワードと一致するか (= `#iwillblog` かどうか) を調べる。多分。 + * 入力がパスワードと一致するか (= `#iwillblog` かどうか) を調べる。多分。 * 下辺、左辺、上辺の3列目、右辺の3列目、下辺の2列目: トークンの出力 - * パスワードと一致していればここに飛んでくる。正解のトークンを出力する。多分。 + * パスワードと一致していればここに飛んでくる。正解のトークンを出力する。多分。 * 右辺の2列目、上辺の2列目: 不正解のメッセージ出力 - * パスワードと一致していなければここに飛んでくる。不正解のときのメッセージを出力する。多分。 + * パスワードと一致していなければここに飛んでくる。不正解のときのメッセージを出力する。多分。 ところで、先ほど掲載した Piet のインタプリタのソースコード末尾には次のような箇所がある。 diff --git a/services/nuldoc/content/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md b/services/nuldoc/content/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md index 531a99e1..42642cbc 100644 --- a/services/nuldoc/content/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md +++ b/services/nuldoc/content/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md @@ -4,7 +4,7 @@ uuid = "da2a0cec-74b3-4c5e-b2a2-47fe79ef49f9" title = "【YAML】YAML 1.1 と YAML 1.2 の主な破壊的変更" description = "データ記述言語 YAML におけるバージョン 1.1 と 1.2 の主な破壊的変更をまとめた。" tags = [ - "yaml", + "yaml", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2025-02-24/phpcon-nagoya-2025-report.md b/services/nuldoc/content/posts/2025-02-24/phpcon-nagoya-2025-report.md index ff2399b7..f5f433c7 100644 --- a/services/nuldoc/content/posts/2025-02-24/phpcon-nagoya-2025-report.md +++ b/services/nuldoc/content/posts/2025-02-24/phpcon-nagoya-2025-report.md @@ -4,9 +4,9 @@ uuid = "13174dc7-c1a3-465f-9ba6-14f0bc6f5961" title = "PHP カンファレンス名古屋 2025 参加レポ" description = "2025-02-22 に開催された、PHP カンファレンス名古屋 2025 に参加した。" tags = [ - "conference", - "php", - "phpcon-nagoya", + "conference", + "php", + "phpcon-nagoya", ] [[article.revisions]] @@ -22,9 +22,9 @@ remark = "公開" 特に印象に残ったセッションを二つピックアップした (タイトルと発表者名は fortee のプロポーザルページによる)。 * [PHPで印刷所に入稿できる名札データを作る by 長谷川智希 さん](https://fortee.jp/phpcon-nagoya-2025/proposal/26795bcc-78dd-431e-9538-7450779fa2cf) - * PHPerKaigi や iOSDC の名札は品質が高いので、他の勉強会やカンファレンスでもついつい使ってしまうのですが、その裏側を覗くことができ面白かったです。カンファレンスの1セッションという形でなければ触れることのないような話が聴けるのはカンファレンスに参加する醍醐味の一つだと思います。 + * PHPerKaigi や iOSDC の名札は品質が高いので、他の勉強会やカンファレンスでもついつい使ってしまうのですが、その裏側を覗くことができ面白かったです。カンファレンスの1セッションという形でなければ触れることのないような話が聴けるのはカンファレンスに参加する醍醐味の一つだと思います。 * [PHP 製 OSS のメモリ問題を辻斬りしていく by sji さん](https://fortee.jp/phpcon-nagoya-2025/proposal/d3ecbb68-318d-4b03-abfe-9ecccc6beb81) - * 今回一番楽しみにしていた発表です。 [Reli](https://github.com/reliforp/reli-prof) は以前 [自作の WebAssembly 処理系を高速化するのに使ったのもあり](/slides/2024-03-15/ya8-2024/) その強力さについてはある程度知っていたつもりでしたが、実際に広く使われているライブラリでの調査過程を見ると唸るばかりです。これをすべて (FFI こそ使っているものの) pure PHP で実装しているとは俄に信じられません。 + * 今回一番楽しみにしていた発表です。 [Reli](https://github.com/reliforp/reli-prof) は以前 [自作の WebAssembly 処理系を高速化するのに使ったのもあり](/slides/2024-03-15/ya8-2024/) その強力さについてはある程度知っていたつもりでしたが、実際に広く使われているライブラリでの調査過程を見ると唸るばかりです。これをすべて (FFI こそ使っているものの) pure PHP で実装しているとは俄に信じられません。 # 登壇したセッション {#my-session} diff --git a/services/nuldoc/content/posts/2025-03-27/zip-function-like-command-paste-command.md b/services/nuldoc/content/posts/2025-03-27/zip-function-like-command-paste-command.md index 8a0807b3..51800330 100644 --- a/services/nuldoc/content/posts/2025-03-27/zip-function-like-command-paste-command.md +++ b/services/nuldoc/content/posts/2025-03-27/zip-function-like-command-paste-command.md @@ -4,7 +4,7 @@ uuid = "99111377-27e7-427b-9dc5-a23f621fa826" title = "zip 関数のようなコマンド paste" description = "zip 関数のような動きをする paste コマンドについてのメモ。" tags = [ - "note-to-self", + "note-to-self", ] toc = false diff --git a/services/nuldoc/content/posts/2025-03-28/http-1-1-send-multiple-same-headers.md b/services/nuldoc/content/posts/2025-03-28/http-1-1-send-multiple-same-headers.md index d4aae453..bf284cab 100644 --- a/services/nuldoc/content/posts/2025-03-28/http-1-1-send-multiple-same-headers.md +++ b/services/nuldoc/content/posts/2025-03-28/http-1-1-send-multiple-same-headers.md @@ -4,7 +4,7 @@ uuid = "046e4412-bee8-4ffe-9876-6cbeaa0caf6b" title = "【HTTP】HTTP/1.1 で同じヘッダを2回送るとどうなるか" description = "HTTP/1.1 で同じヘッダを2回送ったときの挙動について仕様を読んでまとめた。" tags = [ - "http", + "http", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md b/services/nuldoc/content/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md index f7f7679a..2e092519 100644 --- a/services/nuldoc/content/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md +++ b/services/nuldoc/content/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md @@ -4,10 +4,10 @@ uuid = "039b3dff-3b75-46b7-a731-9a3a0ff8e21f" title = "RubyKaigi 2025 の TRICK で入賞した" description = "RubyKaigi 2025 で開催された TRICK において、『最もRuby on Ruby賞』として審査員賞をいただいた。" tags = [ - "conference", - "ruby", - "rubykaigi", - "trick", + "conference", + "ruby", + "rubykaigi", + "trick", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md b/services/nuldoc/content/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md index 09e9fe8c..1e6be89d 100644 --- a/services/nuldoc/content/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md +++ b/services/nuldoc/content/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md @@ -4,9 +4,9 @@ uuid = "087e98f2-743c-48d8-9f67-e9b57e354845" title = "【Composer】 composer-patches v2 では macOS でも GNU patch のインストールが不要になる (予定)" description = "composer-patches は BSD patch に対応しておらず、一部のパッチの適用に失敗する。現在ベータ版である v2 では patch コマンドに依存しなくなり、macOS で使うときのストレスが解消される見込み。" tags = [ - "composer", - "macos", - "php", + "composer", + "macos", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md b/services/nuldoc/content/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md index b1ce56ae..cac69e68 100644 --- a/services/nuldoc/content/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md +++ b/services/nuldoc/content/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md @@ -4,7 +4,7 @@ uuid = "64f5e1a6-2f5c-4d5d-b1c8-8346a66c1d40" title = "セルフホスト可能な C コンパイラを作った" description = "ゴールデンウィークを使って、セルフホストできる C コンパイラを開発した。" tags = [ - "c", + "c", ] [[article.revisions]] @@ -34,68 +34,68 @@ C コンパイラと言えば、世界三大自作したいソフトウェアの 今回は次のような設計とした (compilerbook の設計を踏襲しているものは除く)。 * 宣言の文法を単純にパースできるものに絞る - * `typedef` をサポートしない - * 構造体には必ず `struct` キーワードを書く - * 配列型をサポートしない - * 常にヒープに確保してポインタ経由で扱う - * 以上の制限により、型に関する情報が必ず変数名の前に来る + * `typedef` をサポートしない + * 構造体には必ず `struct` キーワードを書く + * 配列型をサポートしない + * 常にヒープに確保してポインタ経由で扱う + * 以上の制限により、型に関する情報が必ず変数名の前に来る * 無くてもなんとかなる構文糖を実装しない。ソースを書くときに頑張る - * インクリメント・デクリメント演算子 (1足したり引いたりする) - * 複合代入演算子 (左辺と右辺で 2回書く) - * なお、`+=` と `-=` はセルフホスト達成後に実装された - * `while` (`for` で置き換える) - * なお、`while` はセルフホスト達成後に実装された - * `switch` (`if` で置き換える) - * ほか多数 + * インクリメント・デクリメント演算子 (1足したり引いたりする) + * 複合代入演算子 (左辺と右辺で 2回書く) + * なお、`+=` と `-=` はセルフホスト達成後に実装された + * `while` (`for` で置き換える) + * なお、`while` はセルフホスト達成後に実装された + * `switch` (`if` で置き換える) + * ほか多数 * プリプロセッサのほとんどを実装しない - * 数値または識別子へ置換する単純な `#define` のみサポートする - * 特に、`#include` をサポートしないのは重要な設計判断。すべて 1ファイルでおこなう + * 数値または識別子へ置換する単純な `#define` のみサポートする + * 特に、`#include` をサポートしないのは重要な設計判断。すべて 1ファイルでおこなう * グローバル変数を用いない - * `stdin`、`stdout`、`stderr` を含む - * これは compilerbook とは大きく設計が変わった部分 - * これにより、トップレベルに来るのは関数か構造体の定義/宣言のみとなった + * `stdin`、`stdout`、`stderr` を含む + * これは compilerbook とは大きく設計が変わった部分 + * これにより、トップレベルに来るのは関数か構造体の定義/宣言のみとなった * 変数のシャドウイングを実装しない - * 変数は常に関数スコープ - * グローバル変数もないので、スコープチェーンの実装が不要になる + * 変数は常に関数スコープ + * グローバル変数もないので、スコープチェーンの実装が不要になる ## 言語機能 {#language-features} 最終的にサポートされた機能は以下のとおり。 * 文 - * `if` / `else` - * `for` - * `break` - * `continue` - * `return` - * `while` (実装はセルフホスト達成後) + * `if` / `else` + * `for` + * `break` + * `continue` + * `return` + * `while` (実装はセルフホスト達成後) * 式 - * 二項演算 - * `+` / `-` / `*` / `/` / `%` - * `==` / `!=` - * `<` / `<=` / `>` / `>=` - * `&&` / `||` - * 代入 - * `=` - * `+=` / `-=` (実装はセルフホスト達成後) - * 単項演算: `-` / `!` / `*` / `&` / `sizeof` - * 関数呼び出し: `f(a, b)` - * 配列アクセス: `a[b]` - * メンバ呼び出し: `a.b` / `a->b` - * 整数リテラル - * 文字列リテラル + * 二項演算 + * `+` / `-` / `*` / `/` / `%` + * `==` / `!=` + * `<` / `<=` / `>` / `>=` + * `&&` / `||` + * 代入 + * `=` + * `+=` / `-=` (実装はセルフホスト達成後) + * 単項演算: `-` / `!` / `*` / `&` / `sizeof` + * 関数呼び出し: `f(a, b)` + * 配列アクセス: `a[b]` + * メンバ呼び出し: `a.b` / `a->b` + * 整数リテラル + * 文字列リテラル * 型 - * `char` - * `int` - * `long` - * `void` - * `struct` - * それらのポインタ + * `char` + * `int` + * `long` + * `void` + * `struct` + * それらのポインタ * 宣言・定義 - * 関数 - * 構造体 + * 関数 + * 構造体 * プリプロセッサ - * 引数なし `#define` + * 引数なし `#define` # 開発 {#development} diff --git a/services/nuldoc/content/posts/2025-06-14/baba-is-you.md b/services/nuldoc/content/posts/2025-06-14/baba-is-you.md index 8a626ec3..ebbfa9de 100644 --- a/services/nuldoc/content/posts/2025-06-14/baba-is-you.md +++ b/services/nuldoc/content/posts/2025-06-14/baba-is-you.md @@ -4,7 +4,7 @@ uuid = "127019eb-e83f-4c9e-ab54-2021124f1bbb" title = "最高のパズルゲーム Baba Is You をやれ" description = "Baba Is You という最高のパズルゲームをクリアした。是非プレイしてほしい。" tags = [ - "game", + "game", ] [[article.revisions]] @@ -40,13 +40,13 @@ Baba Is You の特異な点は、倉庫番のルールが盤面上で動かせ ここには次のようなルールがある。 * `BABA` `IS` `YOU` - * Baba はあなた (操作キャラ) + * Baba はあなた (操作キャラ) * `ROCK` `IS` `PUSH` - * 岩は押せる + * 岩は押せる * `WALL` `IS` `STOP` - * 壁は止まる (押せない) + * 壁は止まる (押せない) * `FLAG` `IS` `WIN` - * 旗は勝ち + * 旗は勝ち 最初の状態では、`YOU` である baba (うさぎや猫のような白い生き物) が `WIN` である旗に触れることで勝利条件を満たしクリアとなる。 @@ -54,12 +54,12 @@ Baba Is You の特異な点は、倉庫番のルールが盤面上で動かせ この面なら一例として次のようなルールが作れるだろう。 * `FLAG` `IS` `YOU` - * 旗が操作キャラになり、キー入力で動かせる + * 旗が操作キャラになり、キー入力で動かせる * `ROCK` `IS` `STOP` - * 岩が押せなくなる + * 岩が押せなくなる * `BABA` `IS` `WALL` - * Baba が壁へと変化し、操作不能になる - * `WALL` `IS` `YOU` を同時に作っていればその限りでない! + * Baba が壁へと変化し、操作不能になる + * `WALL` `IS` `YOU` を同時に作っていればその限りでない! この「ルール自体を変えられる」という性質により、パズルの難易度・複雑さが大きく上がっている。 プレイヤーは、どのオブジェクトを `YOU` にするのか、`WIN` にすべきは何か、どれに `PUSH` を付けるべきか、いつどの順番でルールを変えるのか、今の手札で作れるルールは何か等と悩みながら、次第に難しくなるパズルと格闘しなければならない。 @@ -147,8 +147,7 @@ Steam の場合、全実績解除と読み替えてもよい。 * `BABA`: テキストとしての `BABA` * Baba: オブジェクトとしての baba * `A`、`B` など: 任意のテキスト - * そういうテキストが出てくる面もあるがその面の話はしない - + * そういうテキストが出てくる面もあるがその面の話はしない * A、B など: 任意のオブジェクト * `A/B`: `A` と `B` のテキストが重なった状態 diff --git a/services/nuldoc/content/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md b/services/nuldoc/content/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md index 3d0ea07f..3566e549 100644 --- a/services/nuldoc/content/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md +++ b/services/nuldoc/content/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md @@ -4,8 +4,8 @@ uuid = "39d3d137-f18d-4d88-8ef6-7be9cc2f3f0b" title = "浮動小数点数の半開区間で単一値を表現する" description = "IEEE 754 の nextUp 操作を用いて、浮動小数点数の半開区間で単一値を表現するテクニックを紹介する。" tags = [ - "float", - "php", + "float", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md b/services/nuldoc/content/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md index 0d143224..0d65516d 100644 --- a/services/nuldoc/content/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md +++ b/services/nuldoc/content/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md @@ -4,7 +4,7 @@ uuid = "68ce6d2f-81ba-47ca-93d3-26553fc73807" title = "ルービックキューブを目隠しで揃えることに初成功した" description = "ルービックキューブの目隠し競技 (BLD) に挑戦し、5 日目で初成功した。" tags = [ - "speedcubing", + "speedcubing", ] [[article.revisions]] @@ -36,21 +36,21 @@ OP 法では PLL の Y-perm (を少し変形させたもの) を使うため、 私は次のように学習を進めた。 * 1 日目 - * エッジを揃える手順を学ぶ + * エッジを揃える手順を学ぶ * 2 日目 - * エッジ手順を復習する - * コーナーを揃える手順を学ぶ - * パリティを解消する手順を学ぶ + * エッジ手順を復習する + * コーナーを揃える手順を学ぶ + * パリティを解消する手順を学ぶ * 3 日目 - * エッジ手順を復習する - * コーナー手順を復習する - * パリティ手順を復習する + * エッジ手順を復習する + * コーナー手順を復習する + * パリティ手順を復習する * 4 日目 - * 目を開けた状態で崩して揃える - * ナンバリングと分析を学ぶ + * 目を開けた状態で崩して揃える + * ナンバリングと分析を学ぶ * 5 日目 - * 分析を紙に書き起こし、それを見ながらキューブは見ずに揃える - * **本番に挑戦** + * 分析を紙に書き起こし、それを見ながらキューブは見ずに揃える + * **本番に挑戦** 5 日目の 4 回目のトライで、19 分 6 秒かけて初成功した。 diff --git a/services/nuldoc/content/posts/2025-11-27/anybatross-writeup.md b/services/nuldoc/content/posts/2025-11-27/anybatross-writeup.md index 1f315741..56eee256 100644 --- a/services/nuldoc/content/posts/2025-11-27/anybatross-writeup.md +++ b/services/nuldoc/content/posts/2025-11-27/anybatross-writeup.md @@ -4,10 +4,10 @@ uuid = "2ed2d400-b3f6-48bc-af27-19d9042875a0" title = "カヤックさん開催のコードゴルフコンテスト Anybatross に参加して優勝した" description = "YAPC::Fukuoka 2025 に際してカヤックさんが開催されていたコードゴルフコンテスト、Anybatross に参加して優勝した。" tags = [ - "code-golf", - "perl", - "ruby", - "yapc", + "code-golf", + "perl", + "ruby", + "yapc", ] [[article.revisions]] diff --git a/services/nuldoc/content/posts/2026-01-16/development-environment-2026.md b/services/nuldoc/content/posts/2026-01-16/development-environment-2026.md index 88f87cd4..8bd757d1 100644 --- a/services/nuldoc/content/posts/2026-01-16/development-environment-2026.md +++ b/services/nuldoc/content/posts/2026-01-16/development-environment-2026.md @@ -4,7 +4,7 @@ uuid = "8ef2ea79-97b7-4d9e-9ddb-0aa5423e6da9" title = "開発環境現状確認 2026" description = "2026 年 1 月時点での開発環境まとめ" tags = [ - "note-to-self", + "note-to-self", ] [[article.revisions]] diff --git a/services/nuldoc/content/slides/2023-01-18/phpstudy-tokyo-148.toml b/services/nuldoc/content/slides/2023-01-18/phpstudy-tokyo-148.toml index 3187cb85..3f10bd8f 100644 --- a/services/nuldoc/content/slides/2023-01-18/phpstudy-tokyo-148.toml +++ b/services/nuldoc/content/slides/2023-01-18/phpstudy-tokyo-148.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第148 回" talkType = "LT" link = "/slides/2023-01-18/phpstudy-tokyo-148/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-02-15/phpstudy-tokyo-149.toml b/services/nuldoc/content/slides/2023-02-15/phpstudy-tokyo-149.toml index 00ee1788..be0a2c04 100644 --- a/services/nuldoc/content/slides/2023-02-15/phpstudy-tokyo-149.toml +++ b/services/nuldoc/content/slides/2023-02-15/phpstudy-tokyo-149.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第149 回" talkType = "LT" link = "/slides/2023-02-15/phpstudy-tokyo-149/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-03-15/phpstudy-tokyo-150.toml b/services/nuldoc/content/slides/2023-03-15/phpstudy-tokyo-150.toml index 29c9a36f..2a82a6cd 100644 --- a/services/nuldoc/content/slides/2023-03-15/phpstudy-tokyo-150.toml +++ b/services/nuldoc/content/slides/2023-03-15/phpstudy-tokyo-150.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第150 回" talkType = "LT" link = "/slides/2023-03-15/phpstudy-tokyo-150/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-03-24/phperkaigi-2023.toml b/services/nuldoc/content/slides/2023-03-24/phperkaigi-2023.toml index cee55c44..69ed02d0 100644 --- a/services/nuldoc/content/slides/2023-03-24/phperkaigi-2023.toml +++ b/services/nuldoc/content/slides/2023-03-24/phperkaigi-2023.toml @@ -5,9 +5,9 @@ event = "PHPerKaigi 2023" talkType = "レギュラートーク" link = "/slides/2023-03-24/phperkaigi-2023/slide.pdf" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-03-25/phperkaigi-2023-tokens.toml b/services/nuldoc/content/slides/2023-03-25/phperkaigi-2023-tokens.toml index 44ff65b3..c03d773b 100644 --- a/services/nuldoc/content/slides/2023-03-25/phperkaigi-2023-tokens.toml +++ b/services/nuldoc/content/slides/2023-03-25/phperkaigi-2023-tokens.toml @@ -5,9 +5,9 @@ event = "PHPerKaigi 2023" talkType = "トークン解説セッション" link = "/slides/2023-03-25/phperkaigi-2023-tokens/slide.pdf" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-04-12/phpstudy-tokyo-151.toml b/services/nuldoc/content/slides/2023-04-12/phpstudy-tokyo-151.toml index 4c516043..66de967f 100644 --- a/services/nuldoc/content/slides/2023-04-12/phpstudy-tokyo-151.toml +++ b/services/nuldoc/content/slides/2023-04-12/phpstudy-tokyo-151.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第151 回" talkType = "LT" link = "/slides/2023-04-12/phpstudy-tokyo-151/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-06-21/phpstudy-tokyo-153.toml b/services/nuldoc/content/slides/2023-06-21/phpstudy-tokyo-153.toml index 2b6da889..26120ffc 100644 --- a/services/nuldoc/content/slides/2023-06-21/phpstudy-tokyo-153.toml +++ b/services/nuldoc/content/slides/2023-06-21/phpstudy-tokyo-153.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第153 回" talkType = "LT" link = "/slides/2023-06-21/phpstudy-tokyo-153/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-06-23/phpconfuk-2023-eve.toml b/services/nuldoc/content/slides/2023-06-23/phpconfuk-2023-eve.toml index 58f822b4..10800f7a 100644 --- a/services/nuldoc/content/slides/2023-06-23/phpconfuk-2023-eve.toml +++ b/services/nuldoc/content/slides/2023-06-23/phpconfuk-2023-eve.toml @@ -5,8 +5,8 @@ event = "PHP カンファレンス福岡 2023 前夜祭 (非公式)" talkType = "レギュラートーク" link = "/slides/2023-06-23/phpconfuk-2023-eve/slide.pdf" tags = [ - "php", - "phpconfuk", + "php", + "phpconfuk", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-07-26/phpstudy-tokyo-154.toml b/services/nuldoc/content/slides/2023-07-26/phpstudy-tokyo-154.toml index 4a3e6719..c7c64377 100644 --- a/services/nuldoc/content/slides/2023-07-26/phpstudy-tokyo-154.toml +++ b/services/nuldoc/content/slides/2023-07-26/phpstudy-tokyo-154.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第154 回" talkType = "レギュラートーク" link = "/slides/2023-07-26/phpstudy-tokyo-154/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-08-24/phpstudy-tokyo-155.toml b/services/nuldoc/content/slides/2023-08-24/phpstudy-tokyo-155.toml index 7b1addd7..e042723d 100644 --- a/services/nuldoc/content/slides/2023-08-24/phpstudy-tokyo-155.toml +++ b/services/nuldoc/content/slides/2023-08-24/phpstudy-tokyo-155.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第155 回" talkType = "LT" link = "/slides/2023-08-24/phpstudy-tokyo-155/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2023-10-25/phpstudy-tokyo-157.toml b/services/nuldoc/content/slides/2023-10-25/phpstudy-tokyo-157.toml index 6845d885..b5fdbfe2 100644 --- a/services/nuldoc/content/slides/2023-10-25/phpstudy-tokyo-157.toml +++ b/services/nuldoc/content/slides/2023-10-25/phpstudy-tokyo-157.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第157 回" talkType = "LT" link = "/slides/2023-10-25/phpstudy-tokyo-157/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-01-24/phpstudy-tokyo-160.toml b/services/nuldoc/content/slides/2024-01-24/phpstudy-tokyo-160.toml index 3cbae0f3..937aa391 100644 --- a/services/nuldoc/content/slides/2024-01-24/phpstudy-tokyo-160.toml +++ b/services/nuldoc/content/slides/2024-01-24/phpstudy-tokyo-160.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第160 回" talkType = "レギュラートーク" link = "/slides/2024-01-24/phpstudy-tokyo-160/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-03-08/phperkaigi-2024.toml b/services/nuldoc/content/slides/2024-03-08/phperkaigi-2024.toml index 22c1e1d3..0ab7bf6a 100644 --- a/services/nuldoc/content/slides/2024-03-08/phperkaigi-2024.toml +++ b/services/nuldoc/content/slides/2024-03-08/phperkaigi-2024.toml @@ -5,10 +5,10 @@ event = "PHPerKaigi 2024" talkType = "レギュラートーク (40分)" link = "/slides/2024-03-08/phperkaigi-2024/slide.pdf" tags = [ - "conference", - "php", - "phperkaigi", - "wasm", + "conference", + "php", + "phperkaigi", + "wasm", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-03-15/ya8-2024.toml b/services/nuldoc/content/slides/2024-03-15/ya8-2024.toml index d610d542..f57531e9 100644 --- a/services/nuldoc/content/slides/2024-03-15/ya8-2024.toml +++ b/services/nuldoc/content/slides/2024-03-15/ya8-2024.toml @@ -5,9 +5,9 @@ event = "Ya8 2024" talkType = "レギュラートーク (60分)" link = "/slides/2024-03-15/ya8-2024/slide.pdf" tags = [ - "conference", - "wasm", - "ya8", + "conference", + "wasm", + "ya8", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-04-13/phpcon-odawara-2024.toml b/services/nuldoc/content/slides/2024-04-13/phpcon-odawara-2024.toml index ef2ea477..e9e24e77 100644 --- a/services/nuldoc/content/slides/2024-04-13/phpcon-odawara-2024.toml +++ b/services/nuldoc/content/slides/2024-04-13/phpcon-odawara-2024.toml @@ -5,9 +5,9 @@ event = "PHP カンファレンス小田原 2024" talkType = "レギュラートーク (15分)" link = "/slides/2024-04-13/phpcon-odawara-2024/slide.pdf" tags = [ - "conference", - "php", - "phpcon-odawara", + "conference", + "php", + "phpcon-odawara", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-04-25/phpstudy-tokyo-163.toml b/services/nuldoc/content/slides/2024-04-25/phpstudy-tokyo-163.toml index cec48c94..9c4655b1 100644 --- a/services/nuldoc/content/slides/2024-04-25/phpstudy-tokyo-163.toml +++ b/services/nuldoc/content/slides/2024-04-25/phpstudy-tokyo-163.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第163回" talkType = "LT" link = "/slides/2024-04-25/phpstudy-tokyo-163/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-07-18/phpstudy-tokyo-166.toml b/services/nuldoc/content/slides/2024-07-18/phpstudy-tokyo-166.toml index cc08e13c..39b32f8b 100644 --- a/services/nuldoc/content/slides/2024-07-18/phpstudy-tokyo-166.toml +++ b/services/nuldoc/content/slides/2024-07-18/phpstudy-tokyo-166.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第166回" talkType = "レギュラートーク (20分)" link = "/slides/2024-07-18/phpstudy-tokyo-166/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-10-30/phpstudy-tokyo-169.toml b/services/nuldoc/content/slides/2024-10-30/phpstudy-tokyo-169.toml index 87bfcd61..48c0bc33 100644 --- a/services/nuldoc/content/slides/2024-10-30/phpstudy-tokyo-169.toml +++ b/services/nuldoc/content/slides/2024-10-30/phpstudy-tokyo-169.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第169回" talkType = "レギュラートーク (20分)" link = "/slides/2024-10-30/phpstudy-tokyo-169/slide.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2024-11-30/cohackpp.toml b/services/nuldoc/content/slides/2024-11-30/cohackpp.toml index d62d6c2e..51d01e29 100644 --- a/services/nuldoc/content/slides/2024-11-30/cohackpp.toml +++ b/services/nuldoc/content/slides/2024-11-30/cohackpp.toml @@ -5,8 +5,8 @@ event = "紅白ぺぱ合戦" talkType = "LT" link = "/slides/2024-11-30/cohackpp/slides.pdf" tags = [ - "cohackpp", - "php", + "cohackpp", + "php", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-02-22/phpcon-nagoya-2025.toml b/services/nuldoc/content/slides/2025-02-22/phpcon-nagoya-2025.toml index 45f37de1..ab9fdfd2 100644 --- a/services/nuldoc/content/slides/2025-02-22/phpcon-nagoya-2025.toml +++ b/services/nuldoc/content/slides/2025-02-22/phpcon-nagoya-2025.toml @@ -5,9 +5,9 @@ event = "PHP カンファレンス名古屋 2025" talkType = "レギュラートーク (30分)" link = "/slides/2025-02-22/phpcon-nagoya-2025/slides.pdf" tags = [ - "conference", - "php", - "phpcon-nagoya", + "conference", + "php", + "phpcon-nagoya", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-03-23/phperkaigi-2025.toml b/services/nuldoc/content/slides/2025-03-23/phperkaigi-2025.toml index bce8b119..ac2e84ec 100644 --- a/services/nuldoc/content/slides/2025-03-23/phperkaigi-2025.toml +++ b/services/nuldoc/content/slides/2025-03-23/phperkaigi-2025.toml @@ -5,9 +5,9 @@ event = "PHPerKaigi 2025" talkType = "レギュラートーク (40分)" link = "/slides/2025-03-23/phperkaigi-2025/slides.pdf" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-04-12/phpcon-odawara-2025.toml b/services/nuldoc/content/slides/2025-04-12/phpcon-odawara-2025.toml index 6bdd8f3d..aca67ab5 100644 --- a/services/nuldoc/content/slides/2025-04-12/phpcon-odawara-2025.toml +++ b/services/nuldoc/content/slides/2025-04-12/phpcon-odawara-2025.toml @@ -5,9 +5,9 @@ event = "PHP カンファレンス小田原 2025" talkType = "レギュラートーク (20分)" link = "/slides/2025-04-12/phpcon-odawara-2025/slides.pdf" tags = [ - "conference", - "php", - "phpcon-odawara", + "conference", + "php", + "phpcon-odawara", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-07-26/techramen-25-conf.toml b/services/nuldoc/content/slides/2025-07-26/techramen-25-conf.toml index 8d9cfc84..1f6ec8d9 100644 --- a/services/nuldoc/content/slides/2025-07-26/techramen-25-conf.toml +++ b/services/nuldoc/content/slides/2025-07-26/techramen-25-conf.toml @@ -5,9 +5,9 @@ event = "TechRAMEN 2025 Conference" talkType = "40 分" link = "/slides/2025-07-26/techramen-25-conf/slides.pdf" tags = [ - "c", - "conference", - "techramen", + "c", + "conference", + "techramen", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-10-29/phpstudy-tokyo-180.toml b/services/nuldoc/content/slides/2025-10-29/phpstudy-tokyo-180.toml index c96636d9..4f1b8cb1 100644 --- a/services/nuldoc/content/slides/2025-10-29/phpstudy-tokyo-180.toml +++ b/services/nuldoc/content/slides/2025-10-29/phpstudy-tokyo-180.toml @@ -5,8 +5,8 @@ event = "PHP 勉強会@東京 第180回" talkType = "レギュラートーク (20分)" link = "/slides/2025-10-29/phpstudy-tokyo-180/slides.pdf" tags = [ - "php", - "phpstudy-tokyo", + "php", + "phpstudy-tokyo", ] [[slide.revisions]] diff --git a/services/nuldoc/content/slides/2025-11-24/phpconkagawa-2025.toml b/services/nuldoc/content/slides/2025-11-24/phpconkagawa-2025.toml index e4dbb69f..4876ebf0 100644 --- a/services/nuldoc/content/slides/2025-11-24/phpconkagawa-2025.toml +++ b/services/nuldoc/content/slides/2025-11-24/phpconkagawa-2025.toml @@ -5,9 +5,9 @@ event = "PHP カンファレンス香川 2025" talkType = "レギュラートーク (30分)" link = "/slides/2025-11-24/phpconkagawa-2025/slides.pdf" tags = [ - "conference", - "php", - "phpconkagawa", + "conference", + "php", + "phpconkagawa", ] [[slide.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-03-05/my-first-post.md b/services/nuldoc/public/blog/posts/2021-03-05/my-first-post.md index 2732b209..dbd7da0f 100644 --- a/services/nuldoc/public/blog/posts/2021-03-05/my-first-post.md +++ b/services/nuldoc/public/blog/posts/2021-03-05/my-first-post.md @@ -35,22 +35,22 @@ mollit anim id est laborum. * list item 1 * list item 2 - * list item 2.a - * list item 2.b + * list item 2.a + * list item 2.b * list item 3 * list item 3 1. list item 1 1. list item 2 - 1. list item 2.a - 1. list item 2.b + 1. list item 2.a + 1. list item 2.b 1. list item 3 1. list item 3 * [ ] list item 1 * [ ] list item 2 - * [ ] list item 2.a - * [ ] list item 2.b + * [ ] list item 2.a + * [ ] list item 2.b * [ ] list item 3 * [ ] list item 3 diff --git a/services/nuldoc/public/blog/posts/2021-03-30/phperkaigi-2021.md b/services/nuldoc/public/blog/posts/2021-03-30/phperkaigi-2021.md index 40df7065..e6096c83 100644 --- a/services/nuldoc/public/blog/posts/2021-03-30/phperkaigi-2021.md +++ b/services/nuldoc/public/blog/posts/2021-03-30/phperkaigi-2021.md @@ -4,9 +4,9 @@ uuid = "3fbe0b8c-216e-48f6-b905-c0d361b94542" title = "PHPerKaigi 2021" description = "2021-03-26 から 2021-03-28 にかけて開催された、PHPerKaigi 2021 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md b/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md index 5072a13c..70068754 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes.md @@ -4,7 +4,7 @@ uuid = "69863d75-ef21-42db-b743-5958f7c86827" title = "【C++】 属性構文の属性名にはキーワードが使える" description = "C++ の属性構文の属性名には、キーワードが使える。ネタ記事。" tags = [ - "cpp", + "cpp", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-10-02/python-unbound-local-error.md b/services/nuldoc/public/blog/posts/2021-10-02/python-unbound-local-error.md index 78f7370d..642afc09 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/python-unbound-local-error.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/python-unbound-local-error.md @@ -4,7 +4,7 @@ uuid = "e1aff84c-d6d4-4dea-bc45-9c41e6445006" title = "【Python】 クロージャとUnboundLocalError: local variable 'x' referenced before assignment" description = "Python における UnboundLocalError の理由と対処法。" tags = [ - "python", + "python", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-10-02/ruby-detect-running-implementation.md b/services/nuldoc/public/blog/posts/2021-10-02/ruby-detect-running-implementation.md index fd721024..1552b176 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/ruby-detect-running-implementation.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/ruby-detect-running-implementation.md @@ -4,7 +4,7 @@ uuid = "e1456a50-4fc6-42ef-89f3-8be78e01da13" title = "【Ruby】 自身を実行している処理系の種類を判定する" description = "Ruby には複数の実装があるが、自身を実行している処理系の種類をスクリプト上からどのように判定すればよいだろうか。" tags = [ - "ruby", + "ruby", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-10-02/ruby-then-keyword-and-case-in.md b/services/nuldoc/public/blog/posts/2021-10-02/ruby-then-keyword-and-case-in.md index 74ea919e..e53a6bd4 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/ruby-then-keyword-and-case-in.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/ruby-then-keyword-and-case-in.md @@ -4,7 +4,7 @@ uuid = "87455008-fe5b-49bf-af5a-b875264f8326" title = "【Ruby】 then キーワードと case in" description = "Ruby 3.0 で追加される case in 構文と、then キーワードについて" tags = [ - "ruby", + "ruby", ] [[article.revisions]] @@ -218,6 +218,6 @@ end # まとめ {#outro} * `if` や `case` の条件の後ろには `then`、`;`、改行のいずれかが必要 - * 通常は改行しておけばよい + * 通常は改行しておけばよい * 3.0 で入る予定の `case` - `in` でも `then` 等が必要になる * Ruby の構文を正確に知るには (現状) `parse.y` を直接読めばよい diff --git a/services/nuldoc/public/blog/posts/2021-10-02/rust-where-are-primitive-types-from.md b/services/nuldoc/public/blog/posts/2021-10-02/rust-where-are-primitive-types-from.md index ab7345eb..cb8a77a8 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/rust-where-are-primitive-types-from.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/rust-where-are-primitive-types-from.md @@ -4,7 +4,7 @@ uuid = "91c61980-c262-4e8d-89b0-4304e7f6d644" title = "Rust のプリミティブ型はどこからやって来るか" description = "Rust のプリミティブ型は予約語ではなく普通の識別子である。どのようにこれが名前解決されるのかを調べた。" tags = [ - "rust", + "rust", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md b/services/nuldoc/public/blog/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md index 945e2703..722c1fd0 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/vim-difference-between-autocmd-bufwrite-and-bufwritepre.md @@ -4,7 +4,7 @@ uuid = "44171f75-c312-4c92-9927-3d260e162175" title = "【Vim】 autocmd events の BufWrite/BufWritePre の違い" description = "Vim の autocmd events における BufWrite/BufWritePre がどう違うのかを調べた結果、違いはないことがわかった。" tags = [ - "vim", + "vim", ] [[article.revisions]] @@ -101,13 +101,13 @@ FileEncoding Obsolete. It still works and is equivalent 記事タイトルについて言えば、どちらも変わらないので好きな方を使えばよい。あえて言えば、次のようになるだろう。 * `BufAdd`/`BufCreate` - * → `BufCreate` は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (`BufAdd`) を使う + * → `BufCreate` は歴史的な理由により ("for historic reasons") 存在しているため、新しい方 (`BufAdd`) を使う * `BufRead`/`BufReadPost` - * → `BufReadPre` との対称性のため、あるいは `BufWritePost` との対称性のため `BufReadPost` を使う + * → `BufReadPre` との対称性のため、あるいは `BufWritePost` との対称性のため `BufReadPost` を使う * `BufWrite`/`BufWritePre` - * → `BufWritePost` との対称性のため、あるいは `BufReadPre` との対称性のため `BufWritePre` を使う + * → `BufWritePost` との対称性のため、あるいは `BufReadPre` との対称性のため `BufWritePre` を使う * `FileEncoding`/`EncodingChanged` - * → `FileEncoding` は "Obsolete" と明言されているので、`EncodingChanged` を使う + * → `FileEncoding` は "Obsolete" と明言されているので、`EncodingChanged` を使う ところでこの調査で知ったのだが、`BufRead` と `BufWrite` は上にある通り発火するタイミングが「後」と「前」で対称性がない。可能なら diff --git a/services/nuldoc/public/blog/posts/2021-10-02/vim-swap-order-of-selected-lines.md b/services/nuldoc/public/blog/posts/2021-10-02/vim-swap-order-of-selected-lines.md index 6f4ca34d..b71bef0a 100644 --- a/services/nuldoc/public/blog/posts/2021-10-02/vim-swap-order-of-selected-lines.md +++ b/services/nuldoc/public/blog/posts/2021-10-02/vim-swap-order-of-selected-lines.md @@ -4,7 +4,7 @@ uuid = "665de47e-0ed6-405e-ad30-81c3c4592d45" title = "Vimで選択した行の順番を入れ替える" description = "Vim で選択した行の順番を入れ替える方法。" tags = [ - "vim", + "vim", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens.md b/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens.md index e5f55419..b164812a 100644 --- a/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens.md +++ b/services/nuldoc/public/blog/posts/2022-04-09/phperkaigi-2022-tokens.md @@ -4,9 +4,9 @@ uuid = "f4985d54-0907-4449-8101-0fcd382f9e02" title = "PHPerKaigi 2022 トークン問題の解説" description = "PHPerKaigi 2022 で私が作成した PHPer チャレンジ問題を解説する。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-05-01/phperkaigi-2022.md b/services/nuldoc/public/blog/posts/2022-05-01/phperkaigi-2022.md index 915cc115..e46d5951 100644 --- a/services/nuldoc/public/blog/posts/2022-05-01/phperkaigi-2022.md +++ b/services/nuldoc/public/blog/posts/2022-05-01/phperkaigi-2022.md @@ -4,9 +4,9 @@ uuid = "9211e1fe-bca3-43c4-ba4e-c67d62f3fed0" title = "PHPerKaigi 2022" description = "2022-04-09 から 2022-04-11 にかけて開催された、PHPerKaigi 2022 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-08-27/php-conference-okinawa-code-golf.md b/services/nuldoc/public/blog/posts/2022-08-27/php-conference-okinawa-code-golf.md index 36d9a05b..eb40444e 100644 --- a/services/nuldoc/public/blog/posts/2022-08-27/php-conference-okinawa-code-golf.md +++ b/services/nuldoc/public/blog/posts/2022-08-27/php-conference-okinawa-code-golf.md @@ -4,10 +4,10 @@ uuid = "bb71bb5d-361b-44cb-9753-81d14583d860" title = "PHP カンファレンス沖縄で出題されたコードゴルフの問題を解いてみた" description = "PHP カンファレンス沖縄の懇親会 LT で出題されたコードゴルフの問題を解いてみた。" tags = [ - "code-golf", - "conference", - "php", - "phpconokinawa", + "code-golf", + "conference", + "php", + "phpconokinawa", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md b/services/nuldoc/public/blog/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md index 3665b7f5..edfe94ff 100644 --- a/services/nuldoc/public/blog/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md +++ b/services/nuldoc/public/blog/posts/2022-09-29/write-fizzbuzz-in-php-2-letters-per-line.md @@ -4,7 +4,7 @@ uuid = "42f0b29b-1e44-4dbe-9864-69abe3bb1e6e" title = "【PHP】 fizzbuzz を書く。1行あたり2文字で。" description = "PHP で fizzbuzz を書いた。ただし、1行あたりに使える文字数は2文字まで。" tags = [ - "php", + "php", ] [[article.revisions]] @@ -27,10 +27,10 @@ remark = "小さな文言の修正・変更" PHP で、次のような制約の下に fizzbuzz を書いた。 * 1行あたりの文字数は2文字までに収めること (ただし `<?php` タグは除く) - * 厳密な定義: `<?php` タグ以降のソースコードが、2 byte ごとにラインフィード (LF) で区切られること + * 厳密な定義: `<?php` タグ以降のソースコードが、2 byte ごとにラインフィード (LF) で区切られること * スペースやタブを使用しないこと * ループのアンロールをしないこと - * 100 回ループの代わりに 100 回コードをコピペ、というのは禁止 + * 100 回ループの代わりに 100 回コードをコピペ、というのは禁止 * PHP 7.4〜8.1 で動作すること * 実行時に Notice や Warning が出ないこと * 標準的なインストール構成の PHP で実現できること (デフォルトで有効になっていない拡張等を使わないこと) diff --git a/services/nuldoc/public/blog/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md b/services/nuldoc/public/blog/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md index c28df518..d0e12ad3 100644 --- a/services/nuldoc/public/blog/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md +++ b/services/nuldoc/public/blog/posts/2022-10-23/phperkaigi-2023-unused-token-quiz-1.md @@ -4,8 +4,8 @@ uuid = "46e0d5db-b17e-464c-a723-8c3e01af7d1d" title = "PHPerKaigi 2023: ボツになったトークン問題 その 1" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 1)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-10-28/setup-server-for-this-site.md b/services/nuldoc/public/blog/posts/2022-10-28/setup-server-for-this-site.md index 4af88548..725ee96b 100644 --- a/services/nuldoc/public/blog/posts/2022-10-28/setup-server-for-this-site.md +++ b/services/nuldoc/public/blog/posts/2022-10-28/setup-server-for-this-site.md @@ -4,7 +4,7 @@ uuid = "673cb872-af2d-41a3-9fb0-60f1afcedb0d" title = "【備忘録】 このサイト用の VPS をセットアップしたときのメモ" description = "GitHub Pages でホストしていたこのサイトを VPS へ移行したので、そのときにやったことのメモ。99 % 自分用。" tags = [ - "note-to-self", + "note-to-self", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md b/services/nuldoc/public/blog/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md index 95024890..05e1b10a 100644 --- a/services/nuldoc/public/blog/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md +++ b/services/nuldoc/public/blog/posts/2022-11-19/phperkaigi-2023-unused-token-quiz-2.md @@ -4,8 +4,8 @@ uuid = "10fe9c47-7029-4874-82bd-b4dc50e07809" title = "PHPerKaigi 2023: ボツになったトークン問題 その 2" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 2)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md b/services/nuldoc/public/blog/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md index c55cf5ba..f65161c2 100644 --- a/services/nuldoc/public/blog/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md +++ b/services/nuldoc/public/blog/posts/2023-01-10/phperkaigi-2023-unused-token-quiz-3.md @@ -4,8 +4,8 @@ uuid = "89722cfb-7f4b-4e96-80bc-e0096e5eeef6" title = "PHPerKaigi 2023: ボツになったトークン問題 その 3" description = "来年の PHPerKaigi 2023 でデジタルサーカス株式会社から出題予定のトークン問題のうち、ボツになった問題を公開する (その 3)。" tags = [ - "php", - "phperkaigi", + "php", + "phperkaigi", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2023-04-04/phperkaigi-2023-report.md b/services/nuldoc/public/blog/posts/2023-04-04/phperkaigi-2023-report.md index 64ca8964..63b2b721 100644 --- a/services/nuldoc/public/blog/posts/2023-04-04/phperkaigi-2023-report.md +++ b/services/nuldoc/public/blog/posts/2023-04-04/phperkaigi-2023-report.md @@ -4,9 +4,9 @@ uuid = "21ce39f0-d613-45f2-a760-89c368892d77" title = "PHPerKaigi 2023 参加レポ" description = "2023-03-23 から 2023-03-25 にかけて開催された、PHPerKaigi 2023 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] @@ -32,13 +32,13 @@ remark = "トークセッションの記事版の執筆を中止" これまでとの最大の違いとして、今回はスピーカーとして登壇した。まずはそれについて書く。2つのセッションで登壇した。 * 詳説「参照」:PHP 処理系の実装から参照を理解する - * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/95e4dd94-5fc7-40fe-9e1a-230e36404cbe) - * [スライド](/slides/2023-03-24/phperkaigi-2023/) - * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた + * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/95e4dd94-5fc7-40fe-9e1a-230e36404cbe) + * [スライド](/slides/2023-03-24/phperkaigi-2023/) + * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた * PHPerチャレンジ解説セッション - デジタルサーカス株式会社 - * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/524c9dca-1d70-4b32-a939-9c73ffe5cb48) - * [スライド](/slides/2023-03-25/phperkaigi-2023-tokens/) - * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた + * [プロポーザル](https://fortee.jp/phperkaigi-2023/proposal/524c9dca-1d70-4b32-a939-9c73ffe5cb48) + * [スライド](/slides/2023-03-25/phperkaigi-2023-tokens/) + * 解説記事 (執筆中) → 追記: 記事版の執筆は諦めた PHPer チャレンジの話については後述する。 参照については、PHP を書き始めた頃からずっと疑問に思っていたので、仕組みを理解する良い機会となった。 diff --git a/services/nuldoc/public/blog/posts/2023-06-25/phpconfuk-2023-report.md b/services/nuldoc/public/blog/posts/2023-06-25/phpconfuk-2023-report.md index e830162f..93eed30f 100644 --- a/services/nuldoc/public/blog/posts/2023-06-25/phpconfuk-2023-report.md +++ b/services/nuldoc/public/blog/posts/2023-06-25/phpconfuk-2023-report.md @@ -4,9 +4,9 @@ uuid = "e1568c4c-9bdd-47b9-8b39-939ade4f3ba0" title = "PHP カンファレンス福岡 2023 参加レポ" description = "2023-06-24 に開催された、PHP カンファレンス福岡に参加した。" tags = [ - "conference", - "php", - "phpconfuk", + "conference", + "php", + "phpconfuk", ] [[article.revisions]] @@ -26,23 +26,23 @@ remark = "公開" ※セッションの題名と発表者名は、 [前夜祭イベントの connpass ページ](https://connpass.com/event/282285/) から引用。 * スクラム(の一部)を導入してよくなったこと (asumikam さん) - * スクラムの「一部」を導入されたということでしたが、理想的な形で改善が進んでいるように見受けられました。特に、ブランチ運用やデプロイ頻度、フィードバックサイクルに大きく変化が起きているのは驚くべき成果だと感じました。 + * スクラムの「一部」を導入されたということでしたが、理想的な形で改善が進んでいるように見受けられました。特に、ブランチ運用やデプロイ頻度、フィードバックサイクルに大きく変化が起きているのは驚くべき成果だと感じました。 * 地方の小さな勉強会を一番の活動舞台にする (tomio さん) - * すさまじいほどの「熱」を感じました。私自身、最近になってカンファレンスや勉強会への参加・登壇を活発におこなうようになったことで、頷く点が多かったです。 + * すさまじいほどの「熱」を感じました。私自身、最近になってカンファレンスや勉強会への参加・登壇を活発におこなうようになったことで、頷く点が多かったです。 ## カンファレンス {#conference} ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/phpconfukuoka-2023/proposal/accepted) から引用。 * [育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り - (岡嵜 雄平 さん)](https://fortee.jp/phpconfukuoka-2023/proposal/df5f06e8-900e-4e71-94d7-d0c3cc57a0ac) - * ちょうど弊チームに新規メンバがジョインしたばかりで、オンボーディングプロセスについて考えていたところの発表でした。すぐにすべてを取り入れるというわけにはいきませんが、弊社での新人育成プロセスの改善につながるヒントをいくつか得られたと思います。 + * ちょうど弊チームに新規メンバがジョインしたばかりで、オンボーディングプロセスについて考えていたところの発表でした。すぐにすべてを取り入れるというわけにはいきませんが、弊社での新人育成プロセスの改善につながるヒントをいくつか得られたと思います。 * オブジェクト指向は本当に必要か? (たなかひさてる さん、こいほげ さん) - * ※当日 D ホールでおこなわれたアンカンファレンスセッションのため、正式タイトル・リンクなし - * 私自身、「オブジェクト指向」については色々と言いたいことがあるのですが、だいたいツイートしたこれとこれです。 - * 「オブジェクト指向の話は、パラダイムの異なる複数の言語に触れているかどうかで見え方がまったく異なる印象がある。OOPはどうでもいいです (※個人の感想です)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672502935983656960) ) - * 「OOPは現代の言語で考える意味はほぼない古いパラダイムだよという立場ですが、OOPについてあまり大っぴらに話してると色んなところから刺されそうなんですよね (Twitterは大っぴらじゃないんですか?)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672504892244787201) ) + * ※当日 D ホールでおこなわれたアンカンファレンスセッションのため、正式タイトル・リンクなし + * 私自身、「オブジェクト指向」については色々と言いたいことがあるのですが、だいたいツイートしたこれとこれです。 + * 「オブジェクト指向の話は、パラダイムの異なる複数の言語に触れているかどうかで見え方がまったく異なる印象がある。OOPはどうでもいいです (※個人の感想です)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672502935983656960) ) + * 「OOPは現代の言語で考える意味はほぼない古いパラダイムだよという立場ですが、OOPについてあまり大っぴらに話してると色んなところから刺されそうなんですよね (Twitterは大っぴらじゃないんですか?)」 ( [Twitter のツイートへのリンク](https://twitter.com/nsfisis/status/1672504892244787201) ) * [その説明、コードコメントに書く?コミットメッセージに書く?プルリクエストに書く? (おかしょい/岡田正平 さん)](https://fortee.jp/phpconfukuoka-2023/proposal/ae71f3a7-4c3c-4c87-8816-8426bcc8d325) - * Twitter にもツイートしましたが、完全に自分の意見と一致していたので、とても共感できました。今後は社内のコードレビュー時に、こちらの資料を貼りつけることにします。 + * Twitter にもツイートしましたが、完全に自分の意見と一致していたので、とても共感できました。今後は社内のコードレビュー時に、こちらの資料を貼りつけることにします。 # おわりに {#outro} diff --git a/services/nuldoc/public/blog/posts/2023-10-02/compile-php-runtime-to-wasm.md b/services/nuldoc/public/blog/posts/2023-10-02/compile-php-runtime-to-wasm.md index 3751f205..464b7910 100644 --- a/services/nuldoc/public/blog/posts/2023-10-02/compile-php-runtime-to-wasm.md +++ b/services/nuldoc/public/blog/posts/2023-10-02/compile-php-runtime-to-wasm.md @@ -4,8 +4,8 @@ uuid = "0ed1ccc8-d437-481c-8cca-2131ce800cc0" title = "PHP の処理系を Emscripten で WebAssembly にコンパイルする" description = "PHP の処理系 (php/php-src) を Emscripten で WebAssembly にコンパイルし、任意のコードを隔離された環境で評価できるようにした。" tags = [ - "php", - "wasm", + "php", + "wasm", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2023-10-13/i-entered-the-open-university-of-japan.md b/services/nuldoc/public/blog/posts/2023-10-13/i-entered-the-open-university-of-japan.md index 18dd11a5..68c5b034 100644 --- a/services/nuldoc/public/blog/posts/2023-10-13/i-entered-the-open-university-of-japan.md +++ b/services/nuldoc/public/blog/posts/2023-10-13/i-entered-the-open-university-of-japan.md @@ -4,7 +4,7 @@ uuid = "78419bf2-a1e6-421f-875b-3d93e777b04f" title = "放送大学に入学しました" description = "放送大学に入学しました。頑張ります。" tags = [ - "ouj", + "ouj", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2023-12-03/isucon-13.md b/services/nuldoc/public/blog/posts/2023-12-03/isucon-13.md index e945e9a3..a996f7df 100644 --- a/services/nuldoc/public/blog/posts/2023-12-03/isucon-13.md +++ b/services/nuldoc/public/blog/posts/2023-12-03/isucon-13.md @@ -4,7 +4,7 @@ uuid = "d0c404bb-4700-4a6f-9911-621e9872d8c6" title = "ISUCON 13 に参加した" description = "ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点" tags = [ - "isucon", + "isucon", ] [[article.revisions]] @@ -26,9 +26,9 @@ ISUCON への参加は今回が初めてとなる。 今回は初参加ということもあり、目標を以下のように定めた。 * 正のスコアを取る - * ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる + * ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる * 速度改善以外に時間を浪費しない (= ハマらない) - * プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする + * プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする # 戦略 {#strategy} diff --git a/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md b/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md index 5e89bfee..daa0a037 100644 --- a/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md +++ b/services/nuldoc/public/blog/posts/2023-12-31/2023-reflections.md @@ -20,17 +20,17 @@ remark = "公開" LT 等も含めて計 11 回の登壇をおこなった。 * PHP 勉強会@東京での登壇 (計 8 回) - * [第 148 回](/slides/2023-01-18/phpstudy-tokyo-148/) - * [第 149 回](/slides/2023-02-15/phpstudy-tokyo-149/) - * [第 150 回](/slides/2023-03-15/phpstudy-tokyo-150/) - * [第 151 回](/slides/2023-04-12/phpstudy-tokyo-151/) - * [第 153 回](/slides/2023-06-21/phpstudy-tokyo-153/) - * [第 154 回](/slides/2023-07-26/phpstudy-tokyo-154/) - * [第 155 回](/slides/2023-08-24/phpstudy-tokyo-155/) - * [第 157 回](/slides/2023-10-25/phpstudy-tokyo-157/) + * [第 148 回](/slides/2023-01-18/phpstudy-tokyo-148/) + * [第 149 回](/slides/2023-02-15/phpstudy-tokyo-149/) + * [第 150 回](/slides/2023-03-15/phpstudy-tokyo-150/) + * [第 151 回](/slides/2023-04-12/phpstudy-tokyo-151/) + * [第 153 回](/slides/2023-06-21/phpstudy-tokyo-153/) + * [第 154 回](/slides/2023-07-26/phpstudy-tokyo-154/) + * [第 155 回](/slides/2023-08-24/phpstudy-tokyo-155/) + * [第 157 回](/slides/2023-10-25/phpstudy-tokyo-157/) * PHPerKaigi 2023 での登壇 - * [レギュラートーク](/slides/2023-03-24/phperkaigi-2023/) - * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) + * [レギュラートーク](/slides/2023-03-24/phperkaigi-2023/) + * [トークン解説セッション](/slides/2023-03-25/phperkaigi-2023-tokens/) * PHPerKaigi 2023 での当日スタッフ業 * [非公式でおこなわれた PHP カンファレンス福岡 2023 の 前夜祭イベントでの登壇](/slides/2023-06-23/phpconfuk-2023-eve/) @@ -44,7 +44,7 @@ LT 等も含めて計 11 回の登壇をおこなった。 * 社外記事 (このブログ): 8本 * 社内記事: 34本 - * 年間で最も記事を書いた人として社内表彰された + * 年間で最も記事を書いた人として社内表彰された # 作ったもの {#coding} diff --git a/services/nuldoc/public/blog/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md b/services/nuldoc/public/blog/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md index 5abef80b..000ef308 100644 --- a/services/nuldoc/public/blog/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md +++ b/services/nuldoc/public/blog/posts/2024-01-10/neovim-insert-namespace-declaration-to-empty-php-file.md @@ -4,8 +4,8 @@ uuid = "05cb16e1-05bc-4359-bc06-88ac20510740" title = "【Neovim】 空の PHP ファイルに namespace 宣言を挿入する" description = "Neovim で空の PHP ファイルを開いたとき、ディレクトリの構造に基づいて自動的に namespace 宣言を挿入するようにする。" tags = [ - "neovim", - "php", + "neovim", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-02-03/install-wireguard-on-personal-server.md b/services/nuldoc/public/blog/posts/2024-02-03/install-wireguard-on-personal-server.md index 8b8741b0..da70a08e 100644 --- a/services/nuldoc/public/blog/posts/2024-02-03/install-wireguard-on-personal-server.md +++ b/services/nuldoc/public/blog/posts/2024-02-03/install-wireguard-on-personal-server.md @@ -4,8 +4,8 @@ uuid = "210673d0-c19e-4195-a280-968a0729dd41" title = "【備忘録】 個人用サーバに WireGuard を導入する" description = "個人用サービスのセルフホストに使っているサーバに WireGuard を導入する作業をしたメモ" tags = [ - "note-to-self", - "wireguard", + "note-to-self", + "wireguard", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-02-10/yapcjapan-2024-report.md b/services/nuldoc/public/blog/posts/2024-02-10/yapcjapan-2024-report.md index dbe2df9d..6db539c3 100644 --- a/services/nuldoc/public/blog/posts/2024-02-10/yapcjapan-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-02-10/yapcjapan-2024-report.md @@ -4,9 +4,9 @@ uuid = "230a0048-93c0-4aac-91ef-bb3108f3e587" title = "YAPC::Hiroshima 2024 参加レポ" description = "2024-02-10 に開催された、YAPC::Hiroshima 2024 に参加した。" tags = [ - "conference", - "perl", - "yapc", + "conference", + "perl", + "yapc", ] [[article.revisions]] @@ -22,12 +22,12 @@ remark = "公開" ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/yapc-hiroshima-2024) から引用。 * [VISAカードの裏側と "手が掛かる" 決済システムの育て方 (三谷 さん)](https://fortee.jp/yapc-hiroshima-2024/proposal/c0e77f91-f856-48a0-9741-b9afb662cd30) - * ベストスピーカー賞にも選ばれていましたが、大変面白い発表でした。私自身はカード決済の知識がまったくなかったのですが、巧みな説明により、「わかったような気がする」状態になれました。 + * ベストスピーカー賞にも選ばれていましたが、大変面白い発表でした。私自身はカード決済の知識がまったくなかったのですが、巧みな説明により、「わかったような気がする」状態になれました。 * [awkでつくってわかる、Webアプリケーション (やんまー さん)](https://fortee.jp/yapc-hiroshima-2024/proposal/0e545260-61e1-465e-951c-91d6afb7782c) - * ゲームでもプログラミングでも縛りプレイほど楽しいものはないと思います。発表中ではさらっと流されていましたが、データベースとの通信や TLS、GitHub の SSO など、およそ awk で書かれたとは思えぬ機能が多数実装されており、カンファレンスなどの場でしかなかなか味わうことのない狂気に触れることができました。 + * ゲームでもプログラミングでも縛りプレイほど楽しいものはないと思います。発表中ではさらっと流されていましたが、データベースとの通信や TLS、GitHub の SSO など、およそ awk で書かれたとは思えぬ機能が多数実装されており、カンファレンスなどの場でしかなかなか味わうことのない狂気に触れることができました。 * キーノート (杜甫々 さん) - * ※ 招待講演のため fortee のプロポーザルページなし - * 私が小学6年生のとき、プログラミングを始めようと最初に開いたのが「 [とほほの Java 入門](https://www.tohoho-web.com/java/) 」でした。私の人生の道を決定したその第一歩目のサイトの運営者が今まさに目の前で話しているというのは、感動などという言葉ではとても言い尽くせません。これだけで、広島まで来る価値があったと断言できます。 + * ※ 招待講演のため fortee のプロポーザルページなし + * 私が小学6年生のとき、プログラミングを始めようと最初に開いたのが「 [とほほの Java 入門](https://www.tohoho-web.com/java/) 」でした。私の人生の道を決定したその第一歩目のサイトの運営者が今まさに目の前で話しているというのは、感動などという言葉ではとても言い尽くせません。これだけで、広島まで来る価値があったと断言できます。 # おわりに {#outro} diff --git a/services/nuldoc/public/blog/posts/2024-02-22/phpkansai-2024-report.md b/services/nuldoc/public/blog/posts/2024-02-22/phpkansai-2024-report.md index 38a91603..3dcb46c5 100644 --- a/services/nuldoc/public/blog/posts/2024-02-22/phpkansai-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-02-22/phpkansai-2024-report.md @@ -4,9 +4,9 @@ uuid = "fd8fcb03-8e4d-4ca7-8499-0674accc51a9" title = "PHPカンファレンス関西 2024 参加レポ" description = "2024-02-11 に開催された、PHPカンファレンス関西 2024 に参加した。" tags = [ - "conference", - "php", - "phpkansai", + "conference", + "php", + "phpkansai", ] [[article.revisions]] @@ -22,11 +22,11 @@ remark = "公開" ※セッションの題名と発表者名は、 [カンファレンスの fortee ページ](https://fortee.jp/phpcon-kansai2024) から引用。 * [RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド (曽根 壮大 さん)](https://fortee.jp/phpcon-kansai2024/proposal/4e03491c-2a97-40aa-8ff9-a68593b0e847) - * アンチパターンとして紙の上での知識だけあるものの、実際にどう設計すべきなのか、あるいは今すでに使われている場合にどう直していくべきなのかについては、知識がまったく足りていなかったため、よい機会となりました。データベース分野については、今後も知識のインプットと経験が必要だと感じています。 + * アンチパターンとして紙の上での知識だけあるものの、実際にどう設計すべきなのか、あるいは今すでに使われている場合にどう直していくべきなのかについては、知識がまったく足りていなかったため、よい機会となりました。データベース分野については、今後も知識のインプットと経験が必要だと感じています。 * [PHPコミュニティ、その魅力と熱狂をあなたにも!!! (ことみん さん)](https://fortee.jp/phpcon-kansai2024/proposal/c903c4be-77bb-47b9-85a1-5bfdfd61c1aa) - * もしこの記事を読んでいるあなたがまだ一度もカンファレンスや勉強会に参加したことがないなら、この記事はどうでもいいのでスライドを見てください。伝えるべきことは以上です。 + * もしこの記事を読んでいるあなたがまだ一度もカンファレンスや勉強会に参加したことがないなら、この記事はどうでもいいのでスライドを見てください。伝えるべきことは以上です。 * [ほげ言語にあってPHPにない機能 (田中ひさてる さん)](https://fortee.jp/phpcon-kansai2024/proposal/0e0befdb-2028-42c8-98e2-b19e434f5a82) - * 私はプログラミング言語の比較が大好きなので、非常に楽しかったです。UFCS (Uniform Function Call Syntax) の知名度の低さには驚きましたが、D言語er で会場が埋め尽くされていたらそれはそれで驚きなのでやむなしかもしれません。個人的に「ほげ言語にあってPHPにない機能」の中で一番ほしいのは代数的データ型です。 + * 私はプログラミング言語の比較が大好きなので、非常に楽しかったです。UFCS (Uniform Function Call Syntax) の知名度の低さには驚きましたが、D言語er で会場が埋め尽くされていたらそれはそれで驚きなのでやむなしかもしれません。個人的に「ほげ言語にあってPHPにない機能」の中で一番ほしいのは代数的データ型です。 # おわりに {#outro} diff --git a/services/nuldoc/public/blog/posts/2024-03-17/phperkaigi-2024-report.md b/services/nuldoc/public/blog/posts/2024-03-17/phperkaigi-2024-report.md index 2c789baa..49c5b1ae 100644 --- a/services/nuldoc/public/blog/posts/2024-03-17/phperkaigi-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-03-17/phperkaigi-2024-report.md @@ -4,9 +4,9 @@ uuid = "750be5c8-ca52-4cbd-86fe-5645b06bde95" title = "PHPerKaigi 2024 参加レポ" description = "2024-03-07 から 2024-03-09 にかけて開催された、PHPerKaigi 2024 に参加した。" tags = [ - "conference", - "php", - "phperkaigi", + "conference", + "php", + "phperkaigi", ] [[article.revisions]] @@ -33,9 +33,8 @@ remark = "Wasm ランタイムの進捗について追記" 昨年に続き、スピーカーとして登壇をおこなった。 * WebAssembly を理解する 〜VM の作成を通して〜 - - * [プロポーザル](https://fortee.jp/phperkaigi-2024/proposal/bc5dc153-17af-4079-8f1b-2660af97e2c8) - * [スライド](/slides/2024-03-08/phperkaigi-2024/) + * [プロポーザル](https://fortee.jp/phperkaigi-2024/proposal/bc5dc153-17af-4079-8f1b-2660af97e2c8) + * [スライド](/slides/2024-03-08/phperkaigi-2024/) WebAssembly の VM を PHP で実装し、実装に至るまでの道程や WebAssembly の特徴、言語処理系を作る楽しさについて語った。 タイトルにある「WebAssembly を理解する」という目的が達成できるようなトークだったかと言われると疑問は残るものの、実際に作った人にしかできない話をすることはできたと思う。 diff --git a/services/nuldoc/public/blog/posts/2024-04-14/phpcon-odawara-2024-report.md b/services/nuldoc/public/blog/posts/2024-04-14/phpcon-odawara-2024-report.md index 3b6d4a50..dbf458f5 100644 --- a/services/nuldoc/public/blog/posts/2024-04-14/phpcon-odawara-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-04-14/phpcon-odawara-2024-report.md @@ -4,9 +4,9 @@ uuid = "be9c896d-7efa-42dd-a50a-dda5fd3a7f5c" title = "PHP カンファレンス小田原 2024 参加レポ" description = "2024-04-13 に開催された、PHP カンファレンス小田原 2024 に参加した。" tags = [ - "conference", - "php", - "phpcon-odawara", + "conference", + "php", + "phpcon-odawara", ] [[article.revisions]] @@ -26,8 +26,8 @@ remark = "セッションの感想を追加" PHP 処理系の JIT コンパイルにおける PHP 8.4 での変更について、登壇をおこなった。 * 来る新 JIT エンジンについて知った気になる - * [プロポーザル](https://fortee.jp/phpconodawara-2024/proposal/bc9669f6-6583-489c-aa6a-1b68abf7c291) - * [スライド](/slides/2024-04-13/phpcon-odawara-2024/) + * [プロポーザル](https://fortee.jp/phpconodawara-2024/proposal/bc9669f6-6583-489c-aa6a-1b68abf7c291) + * [スライド](/slides/2024-04-13/phpcon-odawara-2024/) 今回、どこから話を始めるか大いに迷ったのだが、最終的には PHP 処理系の opcode や VM といった概念は既知のものとし、そこから JIT コンパイルへ繋げるといった構成にした。 @@ -49,14 +49,14 @@ Tracing JIT の発火条件や、IR を使って実現される最適化方法 発表タイトルと発表者名は fortee より引用 * FigmaとPHPで作る、1ミリたりとも表示崩れしない最強の帳票印刷ソリューション (たつきち さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0 - * 感想: 最初のアイデアから途中の泥臭いワークアラウンドまで非常におもしろかったです。帳票には何度か苦しめられているので、機会があれば試してみたいです。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/7c57d5ca-213a-4d7a-aaf0-26ddc44897f0 + * 感想: 最初のアイデアから途中の泥臭いワークアラウンドまで非常におもしろかったです。帳票には何度か苦しめられているので、機会があれば試してみたいです。 * PHPの次期バージョンはこの時期どうなっているのか、Internalsの開発体制について (てきめん さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/740b034a-81f0-4b7a-90e9-cd3fa01c651f - * 感想: 前々から出そうとしている RFC があるので、RFC についての日本語情報が増えるのは大変ありがたいです。あとは作業を進めなければ……。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/740b034a-81f0-4b7a-90e9-cd3fa01c651f + * 感想: 前々から出そうとしている RFC があるので、RFC についての日本語情報が増えるのは大変ありがたいです。あとは作業を進めなければ……。 * Architecture Decision Record を一年運用してみた (富所 亮 さん) - * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/56218b4f-b724-4199-82f1-67497501a9ef - * 感想: 今回最も楽しみにしていた発表の一つです。設計指針の調査・共有等には課題を感じていたので、弊チームでも導入のために動いていこうと思います。 + * プロポーザルリンク: https://fortee.jp/phpconodawara-2024/proposal/56218b4f-b724-4199-82f1-67497501a9ef + * 感想: 今回最も楽しみにしていた発表の一つです。設計指針の調査・共有等には課題を感じていたので、弊チームでも導入のために動いていこうと思います。 # おわりに {#outro} diff --git a/services/nuldoc/public/blog/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md b/services/nuldoc/public/blog/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md index 41b9513c..14703018 100644 --- a/services/nuldoc/public/blog/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md +++ b/services/nuldoc/public/blog/posts/2024-04-21/pipefail-option-in-gitlab-ci-cd.md @@ -4,8 +4,8 @@ uuid = "a4c326a6-5ffe-450c-abf2-45833c5efb6a" title = "【GitLab】 GitLab CI/CD 上での bash/sh は pipefail が有効になっている" description = "GitLab CI/CD で bash/sh スクリプトを動かすと、pipefail オプションが有効になった状態で実行される。" tags = [ - "ci-cd", - "gitlab", + "ci-cd", + "gitlab", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md b/services/nuldoc/public/blog/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md index bae8416b..2b2180b4 100644 --- a/services/nuldoc/public/blog/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md +++ b/services/nuldoc/public/blog/posts/2024-04-29/zsh-file-completion-for-composer-custom-commands.md @@ -4,9 +4,9 @@ uuid = "9b26c1ed-45c3-4cad-9476-cbf2cf2e4de7" title = "【Zsh】 Composer のカスタムコマンドに対する Zsh 補完で引数にファイルを補完させる" description = "Zsh の Composer に対する補完はカスタムコマンドやその引数を補完しない。カスタムコマンドの引数としてファイルを補完させる方法を調べた。" tags = [ - "composer", - "php", - "zsh", + "composer", + "php", + "zsh", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-05-11/phpconkagawa-2024-report.md b/services/nuldoc/public/blog/posts/2024-05-11/phpconkagawa-2024-report.md index bddf2e27..0e00ee07 100644 --- a/services/nuldoc/public/blog/posts/2024-05-11/phpconkagawa-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-05-11/phpconkagawa-2024-report.md @@ -4,9 +4,9 @@ uuid = "f13aa9d6-4533-4a15-872a-c298ab2090db" title = "PHP カンファレンス香川 2024 参加レポ" description = "2024-05-11 に開催された、PHP カンファレンス香川 2024 に参加した。" tags = [ - "conference", - "php", - "phpconkagawa", + "conference", + "php", + "phpconkagawa", ] [[article.revisions]] @@ -20,21 +20,21 @@ remark = "公開" # セッション感想 {#session-thoughts} * 泥まみれの技術革新: あなたの[ PHPバージョンアップ | 新フレームワーク採用 | アーキテクチャ刷新 | … ]を後押しするために by nrslib - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/7f4622af-03b6-4b83-a0ef-e1cfc7b7c930 - * 感想: ちょうどとあるマイグレーション作業をしているので、頷きながら拝聴しました。結局は誰しも移行作業は根気と腕力なのだということに勇気をもらえました。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/7f4622af-03b6-4b83-a0ef-e1cfc7b7c930 + * 感想: ちょうどとあるマイグレーション作業をしているので、頷きながら拝聴しました。結局は誰しも移行作業は根気と腕力なのだということに勇気をもらえました。 * PHP 9 に備えよ - 動的プロパティ、どうすればいぃ? by 荒瀬 泰輔 - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/039ebb21-d104-4df2-86bb-be2680979b7b - * 感想: これも上と同じく移行作業の話ではあり、結局のところは「頑張って地道にやっていく」しかないところもあります (とはいえこちらは静的解析である程度潰せますが)。PHP 言語のコミュニティ全体で頑張っていきましょう。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/039ebb21-d104-4df2-86bb-be2680979b7b + * 感想: これも上と同じく移行作業の話ではあり、結局のところは「頑張って地道にやっていく」しかないところもあります (とはいえこちらは静的解析である程度潰せますが)。PHP 言語のコミュニティ全体で頑張っていきましょう。 * 1人プロ・ペアプロ・モブプロの効果的な使い分け by まきまき - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/db3e9634-4a79-46c1-84fd-8ffa4d495a13 - * 感想: 今会社でペアプロを部分的に取り入れているものの、迷うところが多く、楽しみにしていた発表です。まずは何か一つ変えないことには始まらないので、発表から得たヒントを自分たちのチームに反映すべく、何かやりかたを変えてみる予定です。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/db3e9634-4a79-46c1-84fd-8ffa4d495a13 + * 感想: 今会社でペアプロを部分的に取り入れているものの、迷うところが多く、楽しみにしていた発表です。まずは何か一つ変えないことには始まらないので、発表から得たヒントを自分たちのチームに反映すべく、何かやりかたを変えてみる予定です。 * mb_trim関数を作りました - PHPに新しい関数を追加しました - by てきめん - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/0ec36f50-c4b7-4aa4-abef-006f8bab3931 - * 感想: RFC を必要とするような機能追加のプロセスを日本語で解説する資料がどんどんと増えていくのは、ハードルを下げるという意味で非常にありがたいです。私も以前から出そう出そうと考えている書きかけの RFC があるのですが、具体的なプロセスが明示されるとやはりやる気になりますね。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/0ec36f50-c4b7-4aa4-abef-006f8bab3931 + * 感想: RFC を必要とするような機能追加のプロセスを日本語で解説する資料がどんどんと増えていくのは、ハードルを下げるという意味で非常にありがたいです。私も以前から出そう出そうと考えている書きかけの RFC があるのですが、具体的なプロセスが明示されるとやはりやる気になりますね。 * (「PHPカンファレンス小田原2024」を実行委員長がふりかえる by asumikam) - * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/c1efd828-72c9-4719-93f7-2ca3f8f20ac1 - * 備考: ちょっとしたトラブルにより午前中の発表が見られなかったので、生で拝聴したわけではなく、スライドを拝見して感想を書いています。 - * 感想: Thanks のスライド非常に嬉しかったです。こちらこそ素晴らしいカンファレンスの場をありがとうございました!スタッフ募集あれば来年も是非参加させてください。 + * fortee URL: https://fortee.jp/phpconkagawa-2024/proposal/c1efd828-72c9-4719-93f7-2ca3f8f20ac1 + * 備考: ちょっとしたトラブルにより午前中の発表が見られなかったので、生で拝聴したわけではなく、スライドを拝見して感想を書いています。 + * 感想: Thanks のスライド非常に嬉しかったです。こちらこそ素晴らしいカンファレンスの場をありがとうございました!スタッフ募集あれば来年も是非参加させてください。 # 懇親会 LT {#lightning-talk} diff --git a/services/nuldoc/public/blog/posts/2024-06-19/scalamatsuri-2024-report.md b/services/nuldoc/public/blog/posts/2024-06-19/scalamatsuri-2024-report.md index a551aa1c..2d15f75d 100644 --- a/services/nuldoc/public/blog/posts/2024-06-19/scalamatsuri-2024-report.md +++ b/services/nuldoc/public/blog/posts/2024-06-19/scalamatsuri-2024-report.md @@ -4,9 +4,9 @@ uuid = "8d6f3690-3da3-4235-a81b-b9707cee22ad" title = "ScalaMatsuri 2024 参加レポ" description = "2024-06-08 から 2024-06-09 にかけて開催された、ScalaMatsuri 2024 に参加した。" tags = [ - "conference", - "scala", - "scalamatsuri", + "conference", + "scala", + "scalamatsuri", ] [[article.revisions]] @@ -24,9 +24,9 @@ Day 2 には当日参加できなかったため、day 2 のセッションの 特に印象に残ったセッションを、day 1 と day 2 で一つずつ選んだ (タイトルと登壇者名は [公式ホームページの「プログラム」](https://2024.scalamatsuri.org/ja/programs) から引用)。 * [Scala to WebAssembly: 動機と方法](https://2024.scalamatsuri.org/ja/programs/SESSION_DAY_1_02) (Rikito Taniguchi さん) - * [最近 WebAssembly の処理系を作った](/posts/2024-03-17/phperkaigi-2024-report/#section--as-speaker) こともあって、気になっていたセッションです。私の処理系は WasmGC proposal を実装していないので動かせないのですが、いつかサポートして動かしてみたいですね。 + * [最近 WebAssembly の処理系を作った](/posts/2024-03-17/phperkaigi-2024-report/#section--as-speaker) こともあって、気になっていたセッションです。私の処理系は WasmGC proposal を実装していないので動かせないのですが、いつかサポートして動かしてみたいですね。 * [作って学ぶ Extensible Effects](https://2024.scalamatsuri.org/ja/programs/SESSION_DAY_2_04) (Kory さん・hsjoihs さん) - * 今回一番楽しみにしていたセッションです。Day 2 当日は参加できず、後日アーカイブ動画を視聴したのですが、期待を裏切らない濃厚なセッションでした。後日開かれた [NB-Scala レトロスペクティブ (非公式後夜祭)](https://nextbeat.connpass.com/event/315988/) の発表も拝聴したのですが、どちらも非常に面白かったです。 + * 今回一番楽しみにしていたセッションです。Day 2 当日は参加できず、後日アーカイブ動画を視聴したのですが、期待を裏切らない濃厚なセッションでした。後日開かれた [NB-Scala レトロスペクティブ (非公式後夜祭)](https://nextbeat.connpass.com/event/315988/) の発表も拝聴したのですが、どちらも非常に面白かったです。 # その他感想 {#others} diff --git a/services/nuldoc/public/blog/posts/2024-07-19/reparojson-fix-only-json-formatter.md b/services/nuldoc/public/blog/posts/2024-07-19/reparojson-fix-only-json-formatter.md index b9590c53..8157c423 100644 --- a/services/nuldoc/public/blog/posts/2024-07-19/reparojson-fix-only-json-formatter.md +++ b/services/nuldoc/public/blog/posts/2024-07-19/reparojson-fix-only-json-formatter.md @@ -4,8 +4,8 @@ uuid = "222488dd-cf07-4961-83aa-a014b05369ff" title = "reparojson: 文法エラーを直すだけの JSON フォーマッタを作った" description = "文法エラーだけを直し、空白の削除や挿入といった整形処理を一切おこなわない JSON フォーマッタを作成した。Neovim と連携させる設定例も紹介する。" tags = [ - "neovim", - "vim", + "neovim", + "vim", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md b/services/nuldoc/public/blog/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md index c982145f..45ff690e 100644 --- a/services/nuldoc/public/blog/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md +++ b/services/nuldoc/public/blog/posts/2024-08-19/go-template-access-outer-scope-pipeline-within-with-or-range.md @@ -4,7 +4,7 @@ uuid = "eed112e4-3227-4b3f-9991-7e11c288ee2b" title = "【Go】 text/template の with や range の内側から外側の \".\" にアクセスする" description = "Go言語の text/template における with や range は \".\" を上書きする。これらの内側から外側の \".\" にアクセスする方法を調べた。" tags = [ - "go", + "go", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-09-28/mncore-challenge-1.md b/services/nuldoc/public/blog/posts/2024-09-28/mncore-challenge-1.md index 4c5bbbd9..d76eb740 100644 --- a/services/nuldoc/public/blog/posts/2024-09-28/mncore-challenge-1.md +++ b/services/nuldoc/public/blog/posts/2024-09-28/mncore-challenge-1.md @@ -4,8 +4,8 @@ uuid = "ee7289ee-ff2e-439d-b343-7f87504192fd" title = "MN-Core Challenge #1 参加レポ" description = "2024-08-28 から 2024-09-24 にかけて開催された MN-Core Challenge #1 に参加した。" tags = [ - "code-golf", - "mncore-challenge", + "code-golf", + "mncore-challenge", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-12-04/cohackpp-report.md b/services/nuldoc/public/blog/posts/2024-12-04/cohackpp-report.md index 60e33e4e..6b049626 100644 --- a/services/nuldoc/public/blog/posts/2024-12-04/cohackpp-report.md +++ b/services/nuldoc/public/blog/posts/2024-12-04/cohackpp-report.md @@ -4,8 +4,8 @@ uuid = "ea0593d3-691c-4e08-8db4-98b8925717ec" title = "紅白ぺぱ合戦に参加<しました" description = "2024-11-30 に開催された紅白ぺぱ合戦に参加し、ぺ陣営のメンバとして LT しました。" tags = [ - "cohackpp", - "php", + "cohackpp", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2024-12-33/2024-reflections.md b/services/nuldoc/public/blog/posts/2024-12-33/2024-reflections.md index 807856d8..5cc53426 100644 --- a/services/nuldoc/public/blog/posts/2024-12-33/2024-reflections.md +++ b/services/nuldoc/public/blog/posts/2024-12-33/2024-reflections.md @@ -28,12 +28,12 @@ LT 等も含めて計 8 回の登壇をおこなった。 * [YAPC::Hiroshima 2024 参加](/posts/2024-02-10/yapcjapan-2024-report/) * [PHPカンファレンス関西 2024 参加](/posts/2024-02-22/phpkansai-2024-report/) * PHPerKaigi 2024 - * [登壇](/slides/2024-03-08/phperkaigi-2024/) - * コアスタッフとして参加 + * [登壇](/slides/2024-03-08/phperkaigi-2024/) + * コアスタッフとして参加 * [Ya8 2024 登壇](/slides/2024-03-15/ya8-2024/) * PHP カンファレンス小田原 2024 - * [登壇](/slides/2024-04-13/phpcon-odawara-2024/) - * 当日スタッフとして参加 + * [登壇](/slides/2024-04-13/phpcon-odawara-2024/) + * 当日スタッフとして参加 * [PHP 勉強会@東京 第 163 回 LT で登壇](/slides/2024-04-25/phpstudy-tokyo-163/) * [PHP カンファレンス香川 2024 参加](/posts/2024-05-11/phpconkagawa-2024-report/) * [ScalaMatsuri 2024 参加](/posts/2024-06-19/scalamatsuri-2024-report/) @@ -51,7 +51,7 @@ LT 等も含めて計 8 回の登壇をおこなった。 * 社外記事 (このブログ): 15本 * 社内記事: 22本 - * 年間で最も記事を書いた人として社内表彰された + * 年間で最も記事を書いた人として社内表彰された # 作ったもの {#coding} diff --git a/services/nuldoc/public/blog/posts/2025-01-08/phperkaigi-2023-tokens-q1.md b/services/nuldoc/public/blog/posts/2025-01-08/phperkaigi-2023-tokens-q1.md index 407e558f..d075c6a0 100644 --- a/services/nuldoc/public/blog/posts/2025-01-08/phperkaigi-2023-tokens-q1.md +++ b/services/nuldoc/public/blog/posts/2025-01-08/phperkaigi-2023-tokens-q1.md @@ -4,10 +4,10 @@ uuid = "ce8f20e8-c79f-48f8-982d-53edd4d20483" title = "PHPerKaigi 2023 トークン問題解説 (1/5)" description = "PHPerKaigi 2023 でデジタルサーカス株式会社から出題した問題を解説する。全5問中の第1問。" tags = [ - "conference", - "php", - "phperkaigi", - "piet", + "conference", + "php", + "phperkaigi", + "piet", ] [[article.revisions]] @@ -284,13 +284,13 @@ QR コード中央のカラフルな部分が Piet の命令になっている それぞれの部分はおおよそ次のようなことをやっている (再検証・再読解はしていないので大嘘かもしれない)。 * 左上: 入力受け付け - * 標準入力から1文字ずつ読み込み、入力がなくなるまでスタックに積む。多分。 + * 標準入力から1文字ずつ読み込み、入力がなくなるまでスタックに積む。多分。 * 上辺、右辺: パスワードの検証 - * 入力がパスワードと一致するか (= `#iwillblog` かどうか) を調べる。多分。 + * 入力がパスワードと一致するか (= `#iwillblog` かどうか) を調べる。多分。 * 下辺、左辺、上辺の3列目、右辺の3列目、下辺の2列目: トークンの出力 - * パスワードと一致していればここに飛んでくる。正解のトークンを出力する。多分。 + * パスワードと一致していればここに飛んでくる。正解のトークンを出力する。多分。 * 右辺の2列目、上辺の2列目: 不正解のメッセージ出力 - * パスワードと一致していなければここに飛んでくる。不正解のときのメッセージを出力する。多分。 + * パスワードと一致していなければここに飛んでくる。不正解のときのメッセージを出力する。多分。 ところで、先ほど掲載した Piet のインタプリタのソースコード末尾には次のような箇所がある。 diff --git a/services/nuldoc/public/blog/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md b/services/nuldoc/public/blog/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md index 531a99e1..42642cbc 100644 --- a/services/nuldoc/public/blog/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md +++ b/services/nuldoc/public/blog/posts/2025-01-26/yaml-breaking-changes-between-v1-1-and-v1-2.md @@ -4,7 +4,7 @@ uuid = "da2a0cec-74b3-4c5e-b2a2-47fe79ef49f9" title = "【YAML】YAML 1.1 と YAML 1.2 の主な破壊的変更" description = "データ記述言語 YAML におけるバージョン 1.1 と 1.2 の主な破壊的変更をまとめた。" tags = [ - "yaml", + "yaml", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2025-02-24/phpcon-nagoya-2025-report.md b/services/nuldoc/public/blog/posts/2025-02-24/phpcon-nagoya-2025-report.md index ff2399b7..f5f433c7 100644 --- a/services/nuldoc/public/blog/posts/2025-02-24/phpcon-nagoya-2025-report.md +++ b/services/nuldoc/public/blog/posts/2025-02-24/phpcon-nagoya-2025-report.md @@ -4,9 +4,9 @@ uuid = "13174dc7-c1a3-465f-9ba6-14f0bc6f5961" title = "PHP カンファレンス名古屋 2025 参加レポ" description = "2025-02-22 に開催された、PHP カンファレンス名古屋 2025 に参加した。" tags = [ - "conference", - "php", - "phpcon-nagoya", + "conference", + "php", + "phpcon-nagoya", ] [[article.revisions]] @@ -22,9 +22,9 @@ remark = "公開" 特に印象に残ったセッションを二つピックアップした (タイトルと発表者名は fortee のプロポーザルページによる)。 * [PHPで印刷所に入稿できる名札データを作る by 長谷川智希 さん](https://fortee.jp/phpcon-nagoya-2025/proposal/26795bcc-78dd-431e-9538-7450779fa2cf) - * PHPerKaigi や iOSDC の名札は品質が高いので、他の勉強会やカンファレンスでもついつい使ってしまうのですが、その裏側を覗くことができ面白かったです。カンファレンスの1セッションという形でなければ触れることのないような話が聴けるのはカンファレンスに参加する醍醐味の一つだと思います。 + * PHPerKaigi や iOSDC の名札は品質が高いので、他の勉強会やカンファレンスでもついつい使ってしまうのですが、その裏側を覗くことができ面白かったです。カンファレンスの1セッションという形でなければ触れることのないような話が聴けるのはカンファレンスに参加する醍醐味の一つだと思います。 * [PHP 製 OSS のメモリ問題を辻斬りしていく by sji さん](https://fortee.jp/phpcon-nagoya-2025/proposal/d3ecbb68-318d-4b03-abfe-9ecccc6beb81) - * 今回一番楽しみにしていた発表です。 [Reli](https://github.com/reliforp/reli-prof) は以前 [自作の WebAssembly 処理系を高速化するのに使ったのもあり](/slides/2024-03-15/ya8-2024/) その強力さについてはある程度知っていたつもりでしたが、実際に広く使われているライブラリでの調査過程を見ると唸るばかりです。これをすべて (FFI こそ使っているものの) pure PHP で実装しているとは俄に信じられません。 + * 今回一番楽しみにしていた発表です。 [Reli](https://github.com/reliforp/reli-prof) は以前 [自作の WebAssembly 処理系を高速化するのに使ったのもあり](/slides/2024-03-15/ya8-2024/) その強力さについてはある程度知っていたつもりでしたが、実際に広く使われているライブラリでの調査過程を見ると唸るばかりです。これをすべて (FFI こそ使っているものの) pure PHP で実装しているとは俄に信じられません。 # 登壇したセッション {#my-session} diff --git a/services/nuldoc/public/blog/posts/2025-03-27/zip-function-like-command-paste-command.md b/services/nuldoc/public/blog/posts/2025-03-27/zip-function-like-command-paste-command.md index 8a0807b3..51800330 100644 --- a/services/nuldoc/public/blog/posts/2025-03-27/zip-function-like-command-paste-command.md +++ b/services/nuldoc/public/blog/posts/2025-03-27/zip-function-like-command-paste-command.md @@ -4,7 +4,7 @@ uuid = "99111377-27e7-427b-9dc5-a23f621fa826" title = "zip 関数のようなコマンド paste" description = "zip 関数のような動きをする paste コマンドについてのメモ。" tags = [ - "note-to-self", + "note-to-self", ] toc = false diff --git a/services/nuldoc/public/blog/posts/2025-03-28/http-1-1-send-multiple-same-headers.md b/services/nuldoc/public/blog/posts/2025-03-28/http-1-1-send-multiple-same-headers.md index d4aae453..bf284cab 100644 --- a/services/nuldoc/public/blog/posts/2025-03-28/http-1-1-send-multiple-same-headers.md +++ b/services/nuldoc/public/blog/posts/2025-03-28/http-1-1-send-multiple-same-headers.md @@ -4,7 +4,7 @@ uuid = "046e4412-bee8-4ffe-9876-6cbeaa0caf6b" title = "【HTTP】HTTP/1.1 で同じヘッダを2回送るとどうなるか" description = "HTTP/1.1 で同じヘッダを2回送ったときの挙動について仕様を読んでまとめた。" tags = [ - "http", + "http", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md b/services/nuldoc/public/blog/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md index f7f7679a..2e092519 100644 --- a/services/nuldoc/public/blog/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md +++ b/services/nuldoc/public/blog/posts/2025-04-20/trick-2025-most-ruby-on-ruby-award.md @@ -4,10 +4,10 @@ uuid = "039b3dff-3b75-46b7-a731-9a3a0ff8e21f" title = "RubyKaigi 2025 の TRICK で入賞した" description = "RubyKaigi 2025 で開催された TRICK において、『最もRuby on Ruby賞』として審査員賞をいただいた。" tags = [ - "conference", - "ruby", - "rubykaigi", - "trick", + "conference", + "ruby", + "rubykaigi", + "trick", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md b/services/nuldoc/public/blog/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md index 09e9fe8c..1e6be89d 100644 --- a/services/nuldoc/public/blog/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md +++ b/services/nuldoc/public/blog/posts/2025-04-24/composer-patches-v2-does-not-require-gnu-patch-even-on-macos.md @@ -4,9 +4,9 @@ uuid = "087e98f2-743c-48d8-9f67-e9b57e354845" title = "【Composer】 composer-patches v2 では macOS でも GNU patch のインストールが不要になる (予定)" description = "composer-patches は BSD patch に対応しておらず、一部のパッチの適用に失敗する。現在ベータ版である v2 では patch コマンドに依存しなくなり、macOS で使うときのストレスが解消される見込み。" tags = [ - "composer", - "macos", - "php", + "composer", + "macos", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md b/services/nuldoc/public/blog/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md index b1ce56ae..cac69e68 100644 --- a/services/nuldoc/public/blog/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md +++ b/services/nuldoc/public/blog/posts/2025-05-05/make-tiny-self-hosted-c-compiler.md @@ -4,7 +4,7 @@ uuid = "64f5e1a6-2f5c-4d5d-b1c8-8346a66c1d40" title = "セルフホスト可能な C コンパイラを作った" description = "ゴールデンウィークを使って、セルフホストできる C コンパイラを開発した。" tags = [ - "c", + "c", ] [[article.revisions]] @@ -34,68 +34,68 @@ C コンパイラと言えば、世界三大自作したいソフトウェアの 今回は次のような設計とした (compilerbook の設計を踏襲しているものは除く)。 * 宣言の文法を単純にパースできるものに絞る - * `typedef` をサポートしない - * 構造体には必ず `struct` キーワードを書く - * 配列型をサポートしない - * 常にヒープに確保してポインタ経由で扱う - * 以上の制限により、型に関する情報が必ず変数名の前に来る + * `typedef` をサポートしない + * 構造体には必ず `struct` キーワードを書く + * 配列型をサポートしない + * 常にヒープに確保してポインタ経由で扱う + * 以上の制限により、型に関する情報が必ず変数名の前に来る * 無くてもなんとかなる構文糖を実装しない。ソースを書くときに頑張る - * インクリメント・デクリメント演算子 (1足したり引いたりする) - * 複合代入演算子 (左辺と右辺で 2回書く) - * なお、`+=` と `-=` はセルフホスト達成後に実装された - * `while` (`for` で置き換える) - * なお、`while` はセルフホスト達成後に実装された - * `switch` (`if` で置き換える) - * ほか多数 + * インクリメント・デクリメント演算子 (1足したり引いたりする) + * 複合代入演算子 (左辺と右辺で 2回書く) + * なお、`+=` と `-=` はセルフホスト達成後に実装された + * `while` (`for` で置き換える) + * なお、`while` はセルフホスト達成後に実装された + * `switch` (`if` で置き換える) + * ほか多数 * プリプロセッサのほとんどを実装しない - * 数値または識別子へ置換する単純な `#define` のみサポートする - * 特に、`#include` をサポートしないのは重要な設計判断。すべて 1ファイルでおこなう + * 数値または識別子へ置換する単純な `#define` のみサポートする + * 特に、`#include` をサポートしないのは重要な設計判断。すべて 1ファイルでおこなう * グローバル変数を用いない - * `stdin`、`stdout`、`stderr` を含む - * これは compilerbook とは大きく設計が変わった部分 - * これにより、トップレベルに来るのは関数か構造体の定義/宣言のみとなった + * `stdin`、`stdout`、`stderr` を含む + * これは compilerbook とは大きく設計が変わった部分 + * これにより、トップレベルに来るのは関数か構造体の定義/宣言のみとなった * 変数のシャドウイングを実装しない - * 変数は常に関数スコープ - * グローバル変数もないので、スコープチェーンの実装が不要になる + * 変数は常に関数スコープ + * グローバル変数もないので、スコープチェーンの実装が不要になる ## 言語機能 {#language-features} 最終的にサポートされた機能は以下のとおり。 * 文 - * `if` / `else` - * `for` - * `break` - * `continue` - * `return` - * `while` (実装はセルフホスト達成後) + * `if` / `else` + * `for` + * `break` + * `continue` + * `return` + * `while` (実装はセルフホスト達成後) * 式 - * 二項演算 - * `+` / `-` / `*` / `/` / `%` - * `==` / `!=` - * `<` / `<=` / `>` / `>=` - * `&&` / `||` - * 代入 - * `=` - * `+=` / `-=` (実装はセルフホスト達成後) - * 単項演算: `-` / `!` / `*` / `&` / `sizeof` - * 関数呼び出し: `f(a, b)` - * 配列アクセス: `a[b]` - * メンバ呼び出し: `a.b` / `a->b` - * 整数リテラル - * 文字列リテラル + * 二項演算 + * `+` / `-` / `*` / `/` / `%` + * `==` / `!=` + * `<` / `<=` / `>` / `>=` + * `&&` / `||` + * 代入 + * `=` + * `+=` / `-=` (実装はセルフホスト達成後) + * 単項演算: `-` / `!` / `*` / `&` / `sizeof` + * 関数呼び出し: `f(a, b)` + * 配列アクセス: `a[b]` + * メンバ呼び出し: `a.b` / `a->b` + * 整数リテラル + * 文字列リテラル * 型 - * `char` - * `int` - * `long` - * `void` - * `struct` - * それらのポインタ + * `char` + * `int` + * `long` + * `void` + * `struct` + * それらのポインタ * 宣言・定義 - * 関数 - * 構造体 + * 関数 + * 構造体 * プリプロセッサ - * 引数なし `#define` + * 引数なし `#define` # 開発 {#development} diff --git a/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you.md b/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you.md index 8a626ec3..ebbfa9de 100644 --- a/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you.md +++ b/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you.md @@ -4,7 +4,7 @@ uuid = "127019eb-e83f-4c9e-ab54-2021124f1bbb" title = "最高のパズルゲーム Baba Is You をやれ" description = "Baba Is You という最高のパズルゲームをクリアした。是非プレイしてほしい。" tags = [ - "game", + "game", ] [[article.revisions]] @@ -40,13 +40,13 @@ Baba Is You の特異な点は、倉庫番のルールが盤面上で動かせ ここには次のようなルールがある。 * `BABA` `IS` `YOU` - * Baba はあなた (操作キャラ) + * Baba はあなた (操作キャラ) * `ROCK` `IS` `PUSH` - * 岩は押せる + * 岩は押せる * `WALL` `IS` `STOP` - * 壁は止まる (押せない) + * 壁は止まる (押せない) * `FLAG` `IS` `WIN` - * 旗は勝ち + * 旗は勝ち 最初の状態では、`YOU` である baba (うさぎや猫のような白い生き物) が `WIN` である旗に触れることで勝利条件を満たしクリアとなる。 @@ -54,12 +54,12 @@ Baba Is You の特異な点は、倉庫番のルールが盤面上で動かせ この面なら一例として次のようなルールが作れるだろう。 * `FLAG` `IS` `YOU` - * 旗が操作キャラになり、キー入力で動かせる + * 旗が操作キャラになり、キー入力で動かせる * `ROCK` `IS` `STOP` - * 岩が押せなくなる + * 岩が押せなくなる * `BABA` `IS` `WALL` - * Baba が壁へと変化し、操作不能になる - * `WALL` `IS` `YOU` を同時に作っていればその限りでない! + * Baba が壁へと変化し、操作不能になる + * `WALL` `IS` `YOU` を同時に作っていればその限りでない! この「ルール自体を変えられる」という性質により、パズルの難易度・複雑さが大きく上がっている。 プレイヤーは、どのオブジェクトを `YOU` にするのか、`WIN` にすべきは何か、どれに `PUSH` を付けるべきか、いつどの順番でルールを変えるのか、今の手札で作れるルールは何か等と悩みながら、次第に難しくなるパズルと格闘しなければならない。 @@ -147,8 +147,7 @@ Steam の場合、全実績解除と読み替えてもよい。 * `BABA`: テキストとしての `BABA` * Baba: オブジェクトとしての baba * `A`、`B` など: 任意のテキスト - * そういうテキストが出てくる面もあるがその面の話はしない - + * そういうテキストが出てくる面もあるがその面の話はしない * A、B など: 任意のオブジェクト * `A/B`: `A` と `B` のテキストが重なった状態 diff --git a/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you/index.html b/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you/index.html index d564668f..5dd6973a 100644 --- a/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you/index.html +++ b/services/nuldoc/public/blog/posts/2025-06-14/baba-is-you/index.html @@ -299,19 +299,13 @@ </p> <ul> <li> - <p> - <code>BABA</code>: テキストとしての <code>BABA</code> - </p> + <code>BABA</code>: テキストとしての <code>BABA</code> </li> <li> - <p> - Baba: オブジェクトとしての baba - </p> + Baba: オブジェクトとしての baba </li> <li> - <p> - <code>A</code>、<code>B</code> など: 任意のテキスト - </p> + <code>A</code>、<code>B</code> など: 任意のテキスト <ul> <li> そういうテキストが出てくる面もあるがその面の話はしない @@ -319,14 +313,10 @@ </ul> </li> <li> - <p> - A、B など: 任意のオブジェクト - </p> + A、B など: 任意のオブジェクト </li> <li> - <p> - <code>A/B</code>: <code>A</code> と <code>B</code> のテキストが重なった状態 - </p> + <code>A/B</code>: <code>A</code> と <code>B</code> のテキストが重なった状態 </li> </ul> <p> diff --git a/services/nuldoc/public/blog/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md b/services/nuldoc/public/blog/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md index 3d0ea07f..3566e549 100644 --- a/services/nuldoc/public/blog/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md +++ b/services/nuldoc/public/blog/posts/2025-10-31/representing-single-value-with-half-open-float-interval.md @@ -4,8 +4,8 @@ uuid = "39d3d137-f18d-4d88-8ef6-7be9cc2f3f0b" title = "浮動小数点数の半開区間で単一値を表現する" description = "IEEE 754 の nextUp 操作を用いて、浮動小数点数の半開区間で単一値を表現するテクニックを紹介する。" tags = [ - "float", - "php", + "float", + "php", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md b/services/nuldoc/public/blog/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md index 0d143224..0d65516d 100644 --- a/services/nuldoc/public/blog/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md +++ b/services/nuldoc/public/blog/posts/2025-11-09/rubiks-cube-blindfolded-first-success.md @@ -4,7 +4,7 @@ uuid = "68ce6d2f-81ba-47ca-93d3-26553fc73807" title = "ルービックキューブを目隠しで揃えることに初成功した" description = "ルービックキューブの目隠し競技 (BLD) に挑戦し、5 日目で初成功した。" tags = [ - "speedcubing", + "speedcubing", ] [[article.revisions]] @@ -36,21 +36,21 @@ OP 法では PLL の Y-perm (を少し変形させたもの) を使うため、 私は次のように学習を進めた。 * 1 日目 - * エッジを揃える手順を学ぶ + * エッジを揃える手順を学ぶ * 2 日目 - * エッジ手順を復習する - * コーナーを揃える手順を学ぶ - * パリティを解消する手順を学ぶ + * エッジ手順を復習する + * コーナーを揃える手順を学ぶ + * パリティを解消する手順を学ぶ * 3 日目 - * エッジ手順を復習する - * コーナー手順を復習する - * パリティ手順を復習する + * エッジ手順を復習する + * コーナー手順を復習する + * パリティ手順を復習する * 4 日目 - * 目を開けた状態で崩して揃える - * ナンバリングと分析を学ぶ + * 目を開けた状態で崩して揃える + * ナンバリングと分析を学ぶ * 5 日目 - * 分析を紙に書き起こし、それを見ながらキューブは見ずに揃える - * **本番に挑戦** + * 分析を紙に書き起こし、それを見ながらキューブは見ずに揃える + * **本番に挑戦** 5 日目の 4 回目のトライで、19 分 6 秒かけて初成功した。 diff --git a/services/nuldoc/public/blog/posts/2025-11-27/anybatross-writeup.md b/services/nuldoc/public/blog/posts/2025-11-27/anybatross-writeup.md index 1f315741..56eee256 100644 --- a/services/nuldoc/public/blog/posts/2025-11-27/anybatross-writeup.md +++ b/services/nuldoc/public/blog/posts/2025-11-27/anybatross-writeup.md @@ -4,10 +4,10 @@ uuid = "2ed2d400-b3f6-48bc-af27-19d9042875a0" title = "カヤックさん開催のコードゴルフコンテスト Anybatross に参加して優勝した" description = "YAPC::Fukuoka 2025 に際してカヤックさんが開催されていたコードゴルフコンテスト、Anybatross に参加して優勝した。" tags = [ - "code-golf", - "perl", - "ruby", - "yapc", + "code-golf", + "perl", + "ruby", + "yapc", ] [[article.revisions]] diff --git a/services/nuldoc/public/blog/posts/2026-01-16/development-environment-2026.md b/services/nuldoc/public/blog/posts/2026-01-16/development-environment-2026.md index 88f87cd4..8bd757d1 100644 --- a/services/nuldoc/public/blog/posts/2026-01-16/development-environment-2026.md +++ b/services/nuldoc/public/blog/posts/2026-01-16/development-environment-2026.md @@ -4,7 +4,7 @@ uuid = "8ef2ea79-97b7-4d9e-9ddb-0aa5423e6da9" title = "開発環境現状確認 2026" description = "2026 年 1 月時点での開発環境まとめ" tags = [ - "note-to-self", + "note-to-self", ] [[article.revisions]] |
