misc.log

日常茶飯事とお仕事と

IPAの研修ロードマップに従って研修しているのに大脱線する(4月15日)

午前中だけの講義なのにどうしてこうなる。

3D描画の座標計算などを「専用の装置と専用の命令」で取り扱うというところについては、もうすこしプログラムの勉強をしてからの方が理解しやすいので、とりあえずは「役割ごとに部品などが分けられている」 という程度の理解でOKです。

おまけ:もう少しIT系のお勉強を進めたら見てみると面白いアニメ

もう少し先の方がいいです。まだ早い。あと、シュタインズゲートとかは別に見なくていいですが、好きな人が多いので手っ取り早く話を合わせるためには見ておいてもいいかもしれません。

おまけ2:IT系のお勉強してから見ると面白い映画。

ただしスーパーハッカー系やドキュメンタリーなものを除く(そういうのはもう少し理屈を判ってから虚構と現実の見分けが付いてからの方が2倍楽しめる)。

おまけ3: 講義中に紹介した本や漫画、その他お勧め

ギャラクシアン3

ギャラクシアン3

APEX Legends トリプルテイクをショットガン的に使ってみる

いけますね案外。APEX LegendsというFPSゲームで登場する架空の銃「トリプルテイク」、エネルギー弾を打ち出すスナイパーライフルなのですが、3つの弾が飛び散るので狙い無しに撃っても散弾銃(ショットガン)的に使えると職場の若手さんから聞きました。で、やってみた。

youtu.be

いけますね。ヘッドショットだと138ダメージ。動画はその後ダウンした敵を仕留め損ねているのが無様ですが、その後も近距離から狙撃して大活躍でした。

C#の逐語的リテラル(Verbatim String Literals)

自分用メモ。英語名などがわからなかったので調べました。その記録。

逐語的リテラルを表す「@」

C#で、文字列の冒頭、ダブルクォーテーションの前に"@"(アットマーク)をつけると、その文字列は「記載されたまま」取り扱われます。たとえば文字列中に特殊な意味合いを持つことがある「¥記号(バックスラッシュ)」などが入っていても、エスケープ文字として扱うこと無くそのまま表示されます。

よく使われるケースとしてはファイル名などのパス文字列ですね。パス文字列は、通常フォルダの区切りに¥を入れますが、C#では¥が特別な意味のある文字としてC#に処理されてしまうので固定文字列として記述する場合は「¥¥」のように2個重ねにします。ところが、冒頭に@が付いているとこれが不要になります。こうした「C#固有の特殊な文字のルール」を無視して書いたままの文字列としてC#に読ませられる「@」が付いた文字列を「逐語的リテラル文字列(verbatim string literals)」と呼びます。カタカナ読みするなら「バーベイタム ストリング リテラル(ズ)」ですね。

C#ではと言いましたが、この「書いたままを表示する」という機能は各種の文書作成ツールや記法でも用意されています。たとえばはてなダイアリーの場合、「>||」と「||<」で囲われた文字列はまさにこの「逐語的文字列」として表示されるので、サンプルコードなどをこれで囲むとはてなダイアリーの記述ルールにある文字であっても書式設定されずにそのまま表示されます。LaTeXなどでも「verbatim」というタグがありましたよね(たしか)。

というわけで、ITの世界では「書いたままを表示したい」というニーズが一定数あるのでこうした機能が用意されていることがおおいです。また、「書けない文字」たとえば改行やタブなどの特殊文字を表すために、書ける文字の組み合わせでそうした意味合いを持つ特殊文字と見なすことがあります。こうした機能をOFFにするのが「@」です。

C#で逐語的リテラルがいつから使えていたか

某所でこの質問が出ていたので少し調べてみたのですが、最近のマイクロソフトが公開している技術文書がすべて関係者が執筆したWikiのような雰囲気になっていて、かつてのMSDN系ページの記法になっておらず、バージョンごとの機能をさっと調べることができませんでした。
いくつか「verbatim string literals」で検索してみたところ、デンマークのAalborg大学の資料がC# 2.0を対象とした文章を公開していて、その中に記述があります(下記)。ということは既にC# 2.0(.NET Framework 2.0)の頃からあったということ。

people.cs.aau.dk

あとはFW1.1と1.0でどうだったか……ですが、ちょっと情報が見つかりません。多分使えたのじゃ無いかと思うのですが……わかったら追記します。