diff options
Diffstat (limited to 'docs')
34 files changed, 66 insertions, 523 deletions
diff --git a/docs/index.html b/docs/index.html index 6c7deb3..bc3627c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -84,14 +84,7 @@ <h2>Rust のプリミティブ型はどこからやって来るか</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -103,11 +96,7 @@ https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 <h2>[Ruby] then キーワードと case in</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -119,9 +108,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]]</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -133,14 +120,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[Ruby] 自身を実行している処理系の種類を判定する</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] "ruby" $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] "jruby" それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation <undefined> MRI < 1....</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -152,14 +132,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>Vimで選択した行の順番を入れ替える</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -171,17 +144,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>[Vim] autocmd events の BufWrite/BufWritePre の違い</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{"BufAdd", EVENT_BUFADD}, {"BufCreate", EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{"BufRead", EVENT_BUFREADPOST}, {"BufReadCmd", EVENT_BUFREADCMD}, {"BufReadPost", EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -193,13 +156,7 @@ https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/aut <h2>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -211,19 +168,7 @@ def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコー <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> diff --git a/docs/index.xml b/docs/index.xml index de29a03..cfba333 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -13,14 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:39:27 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/rust-where-are-primitive-types-from/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct</description> </item> <item> @@ -29,11 +22,7 @@ https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 <pubDate>Sat, 02 Oct 2021 09:38:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-then-keyword-and-case-in/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts &#34;Y&#34; else puts &#34;N&#34; end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使</description> </item> <item> @@ -42,9 +31,7 @@ if cond then puts &#34;Y&#34; else puts &#34;N&#34; end この <pubDate>Sat, 02 Oct 2021 09:38:30 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/cpp-you-can-use-keywords-in-attributes/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout &lt;&lt; &#34;Hello, World!</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]</description> </item> <item> @@ -53,14 +40,7 @@ if cond then puts &#34;Y&#34; else puts &#34;N&#34; end この <pubDate>Sat, 02 Oct 2021 09:37:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-detect-running-implementation/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] &quot;ruby&quot; $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] &quot;jruby&quot; それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation &lt;undefined&gt; MRI &lt; 1.</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ</description> </item> <item> @@ -69,14 +49,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <pubDate>Sat, 02 Oct 2021 09:37:25 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-swap-order-of-selected-lines/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac</description> </item> <item> @@ -85,17 +58,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <pubDate>Sat, 02 Oct 2021 09:37:12 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{&#34;BufAdd&#34;, EVENT_BUFADD}, {&#34;BufCreate&#34;, EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{&#34;BufRead&#34;, EVENT_BUFREADPOST}, {&#34;BufReadCmd&#34;, EVENT_BUFREADCMD}, {&#34;BufReadPost&#34;, EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help</description> </item> <item> @@ -104,13 +67,7 @@ https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/aut <pubDate>Sat, 02 Oct 2021 09:32:37 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/python-unbound-local-error/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable &lsquo;x&rsquo; referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 &#39;x&#39; を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 &#39;x&#39; を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた</description> </item> <item> @@ -119,19 +76,7 @@ def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ <pubDate>Tue, 30 Mar 2021 23:22:40 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/phperkaigi-2021/</guid> - <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)</description> + <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は</description> </item> <item> diff --git a/docs/posts/cpp-you-can-use-keywords-in-attributes/index.html b/docs/posts/cpp-you-can-use-keywords-in-attributes/index.html index 21411bc..d2967fd 100644 --- a/docs/posts/cpp-you-can-use-keywords-in-attributes/index.html +++ b/docs/posts/cpp-you-can-use-keywords-in-attributes/index.html @@ -7,9 +7,7 @@ <title>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/index.html b/docs/posts/index.html index ddf68dc..b52f380 100644 --- a/docs/posts/index.html +++ b/docs/posts/index.html @@ -86,14 +86,7 @@ <h2>Rust のプリミティブ型はどこからやって来るか</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -105,11 +98,7 @@ https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 <h2>[Ruby] then キーワードと case in</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -121,9 +110,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]]</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -135,14 +122,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[Ruby] 自身を実行している処理系の種類を判定する</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] "ruby" $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] "jruby" それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation <undefined> MRI < 1....</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -154,14 +134,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>Vimで選択した行の順番を入れ替える</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -173,17 +146,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <h2>[Vim] autocmd events の BufWrite/BufWritePre の違い</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{"BufAdd", EVENT_BUFADD}, {"BufCreate", EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{"BufRead", EVENT_BUFREADPOST}, {"BufReadCmd", EVENT_BUFREADCMD}, {"BufReadPost", EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -195,13 +158,7 @@ https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/aut <h2>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -213,19 +170,7 @@ def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコー <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> diff --git a/docs/posts/index.xml b/docs/posts/index.xml index 68eefcd..a83dc36 100644 --- a/docs/posts/index.xml +++ b/docs/posts/index.xml @@ -13,14 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:39:27 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/rust-where-are-primitive-types-from/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct</description> </item> <item> @@ -29,11 +22,7 @@ https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 <pubDate>Sat, 02 Oct 2021 09:38:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-then-keyword-and-case-in/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts &#34;Y&#34; else puts &#34;N&#34; end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使</description> </item> <item> @@ -42,9 +31,7 @@ if cond then puts &#34;Y&#34; else puts &#34;N&#34; end この <pubDate>Sat, 02 Oct 2021 09:38:30 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/cpp-you-can-use-keywords-in-attributes/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout &lt;&lt; &#34;Hello, World!</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]</description> </item> <item> @@ -53,14 +40,7 @@ if cond then puts &#34;Y&#34; else puts &#34;N&#34; end この <pubDate>Sat, 02 Oct 2021 09:37:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-detect-running-implementation/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] &quot;ruby&quot; $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] &quot;jruby&quot; それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation &lt;undefined&gt; MRI &lt; 1.</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ</description> </item> <item> @@ -69,14 +49,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <pubDate>Sat, 02 Oct 2021 09:37:25 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-swap-order-of-selected-lines/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac</description> </item> <item> @@ -85,17 +58,7 @@ What values for RUBY_ENGINE correspond to which Ruby implementations? より引 <pubDate>Sat, 02 Oct 2021 09:37:12 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{&#34;BufAdd&#34;, EVENT_BUFADD}, {&#34;BufCreate&#34;, EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{&#34;BufRead&#34;, EVENT_BUFREADPOST}, {&#34;BufReadCmd&#34;, EVENT_BUFREADCMD}, {&#34;BufReadPost&#34;, EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help</description> </item> <item> @@ -104,13 +67,7 @@ https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/aut <pubDate>Sat, 02 Oct 2021 09:32:37 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/python-unbound-local-error/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable &lsquo;x&rsquo; referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 &#39;x&#39; を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 &#39;x&#39; を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた</description> </item> <item> @@ -119,19 +76,7 @@ def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ <pubDate>Tue, 30 Mar 2021 23:22:40 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/phperkaigi-2021/</guid> - <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)</description> + <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は</description> </item> <item> diff --git a/docs/posts/phperkaigi-2021/index.html b/docs/posts/phperkaigi-2021/index.html index 659b8df..e870cad 100644 --- a/docs/posts/phperkaigi-2021/index.html +++ b/docs/posts/phperkaigi-2021/index.html @@ -7,19 +7,7 @@ <title>PHPerKaigi 2021 - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)"> + <meta name="description" content="PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/python-unbound-local-error/index.html b/docs/posts/python-unbound-local-error/index.html index cba8819..4012f0e 100644 --- a/docs/posts/python-unbound-local-error/index.html +++ b/docs/posts/python-unbound-local-error/index.html @@ -7,13 +7,7 @@ <title>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/ruby-detect-running-implementation/index.html b/docs/posts/ruby-detect-running-implementation/index.html index 09d79aa..b2d700c 100644 --- a/docs/posts/ruby-detect-running-implementation/index.html +++ b/docs/posts/ruby-detect-running-implementation/index.html @@ -7,14 +7,7 @@ <title>[Ruby] 自身を実行している処理系の種類を判定する - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] "ruby" $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] "jruby" それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation <undefined> MRI < 1."> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/ruby-then-keyword-and-case-in/index.html b/docs/posts/ruby-then-keyword-and-case-in/index.html index 08e90bd..c485f68 100644 --- a/docs/posts/ruby-then-keyword-and-case-in/index.html +++ b/docs/posts/ruby-then-keyword-and-case-in/index.html @@ -7,11 +7,7 @@ <title>[Ruby] then キーワードと case in - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/rust-where-are-primitive-types-from/index.html b/docs/posts/rust-where-are-primitive-types-from/index.html index 8253d6f..ea601b3 100644 --- a/docs/posts/rust-where-are-primitive-types-from/index.html +++ b/docs/posts/rust-where-are-primitive-types-from/index.html @@ -7,14 +7,7 @@ <title>Rust のプリミティブ型はどこからやって来るか - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html b/docs/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html index ef5ec96..31def7a 100644 --- a/docs/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html +++ b/docs/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/index.html @@ -7,17 +7,7 @@ <title>[Vim] autocmd events の BufWrite/BufWritePre の違い - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{"BufAdd", EVENT_BUFADD}, {"BufCreate", EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{"BufRead", EVENT_BUFREADPOST}, {"BufReadCmd", EVENT_BUFREADCMD}, {"BufReadPost", EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/posts/vim-swap-order-of-selected-lines/index.html b/docs/posts/vim-swap-order-of-selected-lines/index.html index 09a1e8a..f74d2a3 100644 --- a/docs/posts/vim-swap-order-of-selected-lines/index.html +++ b/docs/posts/vim-swap-order-of-selected-lines/index.html @@ -7,14 +7,7 @@ <title>Vimで選択した行の順番を入れ替える - REPL: Rest-Eat-Program Loop</title> - <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。"> + <meta name="description" content="この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac"> <meta name="author" content=""> <link href="https://blog.nsfisis.dev/an-old-hope.min.css" rel="stylesheet"> diff --git a/docs/tags/conference/index.html b/docs/tags/conference/index.html index 71d75fa..773387d 100644 --- a/docs/tags/conference/index.html +++ b/docs/tags/conference/index.html @@ -86,19 +86,7 @@ <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> diff --git a/docs/tags/conference/index.xml b/docs/tags/conference/index.xml index 7b93c38..74179b5 100644 --- a/docs/tags/conference/index.xml +++ b/docs/tags/conference/index.xml @@ -13,19 +13,7 @@ <pubDate>Tue, 30 Mar 2021 23:22:40 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/phperkaigi-2021/</guid> - <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)</description> + <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は</description> </item> </channel> diff --git a/docs/tags/cpp/index.html b/docs/tags/cpp/index.html index 0626288..285a05a 100644 --- a/docs/tags/cpp/index.html +++ b/docs/tags/cpp/index.html @@ -86,9 +86,7 @@ <h2>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]]</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/cpp/index.xml b/docs/tags/cpp/index.xml index 6cd2016..7c8a6d5 100644 --- a/docs/tags/cpp/index.xml +++ b/docs/tags/cpp/index.xml @@ -13,9 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:38:30 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/cpp-you-can-use-keywords-in-attributes/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout &lt;&lt; &#34;Hello, World!</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]</description> </item> </channel> diff --git a/docs/tags/cpp17/index.html b/docs/tags/cpp17/index.html index 082b9e1..6714eb0 100644 --- a/docs/tags/cpp17/index.html +++ b/docs/tags/cpp17/index.html @@ -86,9 +86,7 @@ <h2>[C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]]</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout << "Hello, World!...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include <iostream> [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/cpp17/index.xml b/docs/tags/cpp17/index.xml index 15cb391..22b8a8e 100644 --- a/docs/tags/cpp17/index.xml +++ b/docs/tags/cpp17/index.xml @@ -13,9 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:38:30 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/cpp-you-can-use-keywords-in-attributes/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b - タイトル落ち。まずはこのコードを見て欲しい。 -#include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]] [[do]] [[double]] [[dynamic_cast]] [[else]] [[enum]] [[explicit]] [[export]] [[extern]] [[false]] [[final]] [[float]] [[for]] [[friend]] [[goto]] [[if]] [[inline]] [[int]] [[long]] [[mutable]] [[namespace]] [[new]] [[noexcept]] [[not]] [[not_eq]] [[nullptr]] [[operator]] [[or]] [[or_eq]] [[override]] [[private]] [[protected]] [[public]] [[register]] [[reinterpret_cast]] [[return]] [[short]] [[signed]] [[sizeof]] [[static]] [[static_assert]] [[static_cast]] [[struct]] [[switch]] [[template]] [[this]] [[thread_local]] [[throw]] [[true]] [[try]] [[typedef]] [[typeid]] [[typename]] [[union]] [[unsigned]] [[virtual]] [[void]] [[volatile]] [[wchar_t]] [[while]] [[xor]] [[xor_eq]] // [[using]] int main() { std::cout &lt;&lt; &#34;Hello, World!</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/94090937bcf860cfa93b タイトル落ち。まずはこのコードを見て欲しい。 #include &lt;iostream&gt; [[alignas]] [[alignof]] [[and]] [[and_eq]] [[asm]] [[auto]] [[bitand]] [[bitor]] [[bool]] [[break]] [[case]] [[catch]] [[char]] [[char16_t]] [[char32_t]] [[class]] [[compl]] [[const]] [[const_cast]] [[constexpr]] [[continue]] [[decltype]] [[default]] [[delete]]</description> </item> </channel> diff --git a/docs/tags/php/index.html b/docs/tags/php/index.html index 0e05a74..cc6de68 100644 --- a/docs/tags/php/index.html +++ b/docs/tags/php/index.html @@ -86,19 +86,7 @@ <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> diff --git a/docs/tags/php/index.xml b/docs/tags/php/index.xml index 295c4f2..def3dbd 100644 --- a/docs/tags/php/index.xml +++ b/docs/tags/php/index.xml @@ -13,19 +13,7 @@ <pubDate>Tue, 30 Mar 2021 23:22:40 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/phperkaigi-2021/</guid> - <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)</description> + <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は</description> </item> </channel> diff --git a/docs/tags/phperkaigi/index.html b/docs/tags/phperkaigi/index.html index 11113d5..701d5d6 100644 --- a/docs/tags/phperkaigi/index.html +++ b/docs/tags/phperkaigi/index.html @@ -86,19 +86,7 @@ <h2>PHPerKaigi 2021</h2> </header> <section class="entry-content"> - <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)...</p> + <p>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は...</p> </section> <footer class="entry-footer"> <time>March 30, 2021</time> diff --git a/docs/tags/phperkaigi/index.xml b/docs/tags/phperkaigi/index.xml index b71fc52..d69dd63 100644 --- a/docs/tags/phperkaigi/index.xml +++ b/docs/tags/phperkaigi/index.xml @@ -13,19 +13,7 @@ <pubDate>Tue, 30 Mar 2021 23:22:40 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/phperkaigi-2021/</guid> - <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) はダイヤモンドスポンサーとなっており、スポンサー枠のチケットを使わせていただいた。 -このようなカンファレンスには初めて参加するのでかねてより心待ちにしていたのだが、生憎2日目から体調を崩してしまい、この記事も途中までとなっている。まだ見ていないセッションも多いが、ひとまず現時点での参加レポを書いておく。 -発表はトラック A、B に分かれていたのだが、今回はすべて A トラックを視聴している (切り替えるのが面倒だっただけ)。 -凡例 発表・スライドのメモ (引用ではない) - 感想など -Day 0 前夜祭 (2021/03/27) 17:30 [A] PHP で AWS Lambda - Rails のプロジェクトを PHPer のメンバのみでメンテ →他のメンバもわかる PHP にリプレースを検討 -サーバレス - サーバ・インフラの管理が不要 アプリケーションコードの知識だけで保守可能 ゼロベースで作れる案件が (Railsの件とは別に) あるため、そちらで試験的に導入? -AWSの学習 AWS のドキュメント DevelopersIO -AWS Lambda のカスタムランタイムで PHP を動かす -サーバのセットアップや維持管理を気にしなくて良い サーバーレスで PHP を動かすツールがすでにある サーバーレス構築はすんなり -今は Laravel がルーティングしている Laravel Livewire を Lambda に載せられないか? デプロイ方法は? バッチ処理は? (Lambda は 15分の制限)</description> + <description>PHPerKaigi 2021 参加レポ 2021/03/26 から 2021/03/28 にかけて開催された、PHPerKaigi 2021 に一般参加者として参加した。 弊社デジタルサーカス株式会社 (今年1月から勤務) は</description> </item> </channel> diff --git a/docs/tags/python/index.html b/docs/tags/python/index.html index e8908f0..d8a06f8 100644 --- a/docs/tags/python/index.html +++ b/docs/tags/python/index.html @@ -86,13 +86,7 @@ <h2>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/python/index.xml b/docs/tags/python/index.xml index af05598..11a5f09 100644 --- a/docs/tags/python/index.xml +++ b/docs/tags/python/index.xml @@ -13,13 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:32:37 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/python-unbound-local-error/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable &lsquo;x&rsquo; referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 &#39;x&#39; を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 &#39;x&#39; を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた</description> </item> </channel> diff --git a/docs/tags/python3/index.html b/docs/tags/python3/index.html index 8780528..0a2b32a 100644 --- a/docs/tags/python3/index.html +++ b/docs/tags/python3/index.html @@ -86,13 +86,7 @@ <h2>[Python] クロージャとUnboundLocalError: local variable 'x' referenced before assignment</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable ‘x’ referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 'x' を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 'x' を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/python3/index.xml b/docs/tags/python3/index.xml index bbb1d64..c32c084 100644 --- a/docs/tags/python3/index.xml +++ b/docs/tags/python3/index.xml @@ -13,13 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:32:37 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/python-unbound-local-error/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 - 本記事は Python 3.7.6 の動作結果を元にして書かれている。 -Python でクロージャを作ろうと、次のようなコードを書いた。 -def f(): x = 0 def g(): x += 1 g() f() 関数 g から 関数 f のスコープ内で定義された変数 x を参照し、それに 1 を足そうとしている。 これを実行すると x += 1 の箇所でエラーが発生する。 - UnboundLocalError: local variable &lsquo;x&rsquo; referenced before assignment - local変数 x が代入前に参照された、とある。これは、f の x を参照するのではなく、新しく別の変数を g 内に作ってしまっているため。 前述のコードを宣言と代入を便宜上分けて書き直すと次のようになる。var を変数宣言のための構文として擬似的に利用している。 -# 注: var は正しい Python の文法ではない。上記参照のこと def f(): var x # f の local変数 &#39;x&#39; を宣言 x = 0 # x に 0 を代入 def g(): # f の内部関数 g を定義 var x # g の local変数 &#39;x&#39; を宣言 # たまたま f にも同じ名前の変数があるが、それとは別の変数 x += 1 # x に 1 を加算 (x = x + 1 の糖衣構文) # 加算する前の値を参照しようとするが、まだ代入されていないためエラー g() 当初の意図を表現するには、次のように書けばよい。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/5d733703afcb35bbf399 本記事は Python 3.7.6 の動作結果を元にして書かれている。 Python でクロージャを作ろうと、次のようなコードを書いた</description> </item> </channel> diff --git a/docs/tags/ruby/index.html b/docs/tags/ruby/index.html index e0b157c..95f04de 100644 --- a/docs/tags/ruby/index.html +++ b/docs/tags/ruby/index.html @@ -86,11 +86,7 @@ <h2>[Ruby] then キーワードと case in</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -102,14 +98,7 @@ if cond then puts "Y" else puts "N" end このキーワードが <h2>[Ruby] 自身を実行している処理系の種類を判定する</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] "ruby" $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] "jruby" それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation <undefined> MRI < 1....</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/ruby/index.xml b/docs/tags/ruby/index.xml index 53e153b..571b078 100644 --- a/docs/tags/ruby/index.xml +++ b/docs/tags/ruby/index.xml @@ -13,11 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:38:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-then-keyword-and-case-in/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts &#34;Y&#34; else puts &#34;N&#34; end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使</description> </item> <item> @@ -26,14 +22,7 @@ if cond then puts &#34;Y&#34; else puts &#34;N&#34; end この <pubDate>Sat, 02 Oct 2021 09:37:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-detect-running-implementation/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 - Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろうか。 -Object クラスに定義されている RUBY_ENGINE という定数がこの用途に使える。 -参考: Object::RUBY_ENGINE -上記ページの例から引用する: -$ ruby-1.9.1 -ve 'p RUBY_ENGINE' ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] &quot;ruby&quot; $ jruby -ve 'p RUBY_ENGINE' jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] &quot;jruby&quot; それぞれの処理系がどのような値を返すかだが、stack overflow に良い質問と回答があった。 -What values for RUBY_ENGINE correspond to which Ruby implementations? より引用: - RUBY_ENGINE Implementation &lt;undefined&gt; MRI &lt; 1.</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791 Ruby という言語には複数の実装があるが、それらをスクリプト上からどのようにして programmatically に見分ければよいだろ</description> </item> </channel> diff --git a/docs/tags/ruby3/index.html b/docs/tags/ruby3/index.html index 4f30019..0fb808e 100644 --- a/docs/tags/ruby3/index.html +++ b/docs/tags/ruby3/index.html @@ -86,11 +86,7 @@ <h2>[Ruby] then キーワードと case in</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts "Y" else puts "N" end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/ruby3/index.xml b/docs/tags/ruby3/index.xml index a4544dd..68c56e2 100644 --- a/docs/tags/ruby3/index.xml +++ b/docs/tags/ruby3/index.xml @@ -13,11 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:38:50 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/ruby-then-keyword-and-case-in/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 - TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使う必要がある)。 -then とは 使われることは稀だが、Ruby では then がキーワードになっている。次のように使う: -if cond then puts &#34;Y&#34; else puts &#34;N&#34; end このキーワードが現れうる場所はいくつかあり、if、unless、rescue、case 構文がそれに当たる。 上記のように、何か条件を書いた後 then を置き、式がそこで終了していることを示すマーカーとして機能する。 -# Example: if x then a end unless x then a end begin a rescue then b end case x when p then a end なぜ普段は書かなくてもよいのか 普通 Ruby のコードで then を書くことはない。なぜか。次のコードを実行してみるとわかる。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/787a8cf888a304497223 TL; DR case - in によるパターンマッチング構文でも、case - when と同じように then が使える (場合によっては使</description> </item> </channel> diff --git a/docs/tags/rust/index.html b/docs/tags/rust/index.html index 4062db4..be96640 100644 --- a/docs/tags/rust/index.html +++ b/docs/tags/rust/index.html @@ -86,14 +86,7 @@ <h2>Rust のプリミティブ型はどこからやって来るか</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/rust/index.xml b/docs/tags/rust/index.xml index f186c90..9e21cfc 100644 --- a/docs/tags/rust/index.xml +++ b/docs/tags/rust/index.xml @@ -13,14 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:39:27 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/rust-where-are-primitive-types-from/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 - 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 -#![allow(non_camel_case_types)] #![allow(dead_code)] struct bool; struct char; struct i8; struct i16; struct i32; struct i64; struct i128; struct isize; struct u8; struct u16; struct u32; struct u64; struct u128; struct usize; struct f32; struct f64; struct str; では、普段単に bool と書いたとき、この bool は一体どこから来ているのか。rustc のソースを追ってみた。 - 前提知識: 一般的なコンパイラの構造、用語。rustc そのものの知識は不要 (というよりも筆者自身がよく知らない) - 調査 調査に使用したソース (調査時点での最新 master) -https://github.com/rust-lang/rust/tree/511ed9f2356af365ad8affe046b3dd33f7ac3c98 -どのようにして調べるか。rustc の構造には詳しくないため、すぐに当たりをつけるのは難しい。 -大雑把な構造としては、compiler フォルダ以下に rustc_* という名前のクレートが数十個入っている。これがどうやら rustc コマンドの実装部のようだ。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/9a429432258bbcd6c565 前置き Rust において、プリミティブ型の名前は予約語でない。したがって、次のコードは合法である。 #![allow(non_camel_case_types)] #![allow(dead_code)] struct</description> </item> </channel> diff --git a/docs/tags/vim/index.html b/docs/tags/vim/index.html index 3a92104..28ed4d9 100644 --- a/docs/tags/vim/index.html +++ b/docs/tags/vim/index.html @@ -86,14 +86,7 @@ <h2>Vimで選択した行の順番を入れ替える</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> @@ -105,17 +98,7 @@ <h2>[Vim] autocmd events の BufWrite/BufWritePre の違い</h2> </header> <section class="entry-content"> - <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{"BufAdd", EVENT_BUFADD}, {"BufCreate", EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{"BufRead", EVENT_BUFREADPOST}, {"BufReadCmd", EVENT_BUFREADCMD}, {"BufReadPost", EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105...</p> + <p>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help...</p> </section> <footer class="entry-footer"> <time>October 2, 2021</time> diff --git a/docs/tags/vim/index.xml b/docs/tags/vim/index.xml index db40fc3..5bb4f25 100644 --- a/docs/tags/vim/index.xml +++ b/docs/tags/vim/index.xml @@ -13,14 +13,7 @@ <pubDate>Sat, 02 Oct 2021 09:37:25 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-swap-order-of-selected-lines/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 - バージョン情報 :version の一部 - VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. - よく紹介されている手法 tac / tail tac や tail -r などの外部コマンドを ! を使って呼び出し、置き換える。 - :h v_! - tac コマンドや tail の -r オプションは環境によって利用できないことがあり、複数の環境を行き来する場合に採用しづらい -:g/^/m0 こちらは外部コマンドに頼らず、Vim の機能のみを使う。g は :global コマンドの、m は :move コマンドの略 -:global コマンドは :[range]global/{pattern}/[command] のように使い、[range] で指定された範囲の行のうち、{pattern} で指定された検索パターンにマッチする行に対して、順番に [command] で指定された Ex コマンドを呼び出す。</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/4fefb361d9a693803520 バージョン情報 :version の一部 VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jan 26 2020 11:30:30) macOS version Included patches: 1-148 Huge version without GUI. よく紹介されている手法 tac / tail tac</description> </item> <item> @@ -29,17 +22,7 @@ <pubDate>Sat, 02 Oct 2021 09:37:12 +0900</pubDate> <guid>https://blog.nsfisis.dev/posts/vim-difference-between-autocmd-bufwrite-and-bufwritepre/</guid> - <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 - TL; DR 違いはない。ただのエイリアス。 -調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help に説明があるが、この記事のタイトルにある2つを含めた以下のイベントには、その違いについて説明がない。 - BufRead/BufReadPost BufWrite/BufWritePre BufAdd/BufCreate このうち、BufAdd/BufCreate に関しては、:help BufCreate に - The BufCreate event is for historic reasons. - とあり、おそらくは BufAdd のエイリアスであろうということがわかる。他の2組も同様ではないかと予想されるが、確認のため vim と neovim のソースコードを調査した。 - ソースコードへのリンク vim (調査時点での master branch) neovim (上に同じ) - vim のソースコード 以下は、autocmd events の名前と内部で使われている整数値とのマッピングを定義している箇所である。見ての通り、上でエイリアスではないかと述べた3組には、それぞれ同じ内部値が使われている。 -https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L85-L86 -{&#34;BufAdd&#34;, EVENT_BUFADD}, {&#34;BufCreate&#34;, EVENT_BUFADD}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L95-L97 -{&#34;BufRead&#34;, EVENT_BUFREADPOST}, {&#34;BufReadCmd&#34;, EVENT_BUFREADCMD}, {&#34;BufReadPost&#34;, EVENT_BUFREADPOST}, https://github.com/vim/vim/blob/8e6be34338f13a6a625f19bcef82019c9adc65f2/src/autocmd.c#L103-L105</description> + <description>この記事は Qiita から移植してきたものです。 元 URL: https://qiita.com/nsfisis/items/79ab4db8564032de0b25 TL; DR 違いはない。ただのエイリアス。 調査記録 Vim の autocmd events には似通った名前のものがいくつかある。大抵は :help</description> </item> </channel> |
