私が歌川です

@utgwkk が書いている

Kyoto.js 17

4年ぶりぐらいの参加だった。4年前は右も左も分からなくて一生萎縮してた気がする。

utgwkk.hateblo.jp

2020年になったにも関わらず、懇親会ではFlashの話ばかりしていた。昔はみんなおもしろフラッシュ総合サイトを見ていた、Flash職人が現代のゲームのプログラマとして活躍している、といった話をしていた。

29g.net

Goで書いたGBエミュレータをwasmでコンパイルした話がおもしろかった。

発表を聞いたときのノートはここにまとまってる。

scrapbox.io

技術最先端の話はどうしても東京で披露されがちでそれは人が多いので仕方なくて、一方でこういう地域型の勉強会は引き続き開催されてほしい。

全角スペースはHTMLのclass名の一部になるのか

なります

f:id:utgwkk:20200109115824p:plain

<span class="こちらは 全角スペースの クラスです こちらは違うクラスです">なります</span>

根拠

HTML5 W3C Working Draft 25 May 2011 より

2.5.1 Common parser idioms The space characters, for the purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED (LF), U+000C FORM FEED (FF), and U+000D CARRIAGE RETURN (CR).

https://www.w3.org/TR/2011/WD-html5-20110525/common-microsyntaxes.html#space-character

scape characterといったときは上記の5文字のことを指す*1。 したがって全角スペースはspace charactersに含まれない。

2.5.7 Space-separated tokens A set of space-separated tokens is a string containing zero or more words (known as tokens) separated by one or more space characters, where words consist of any string of one or more characters, none of which are space characters.

https://www.w3.org/TR/2011/WD-html5-20110525/common-microsyntaxes.html#set-of-space-separated-tokens

space-separated tokenとはspace charactersによって区切られた、space characterを含まないトークンである。したがって全角スペースはspace-separated tokenの要素に含まれうる。

3.2.3.6 The class attribute Every HTML element may have a class attribute specified.

The attribute, if specified, must have a value that is a set of space-separated tokens representing the various classes that the element belongs to.

https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes

class属性の値はspace-separated tokenによって構成される。したがって全角スペースはclass名に含まれうる。

*1:この直下に、White_Space characterといったときはUnicodeで "White_Space" 属性を持つ文字のことを指す、と書いてある。

VSCode Live Shareを快適に使うコツ

リモートでもペアプロ・モブプロしたい。VSCodeにはLive Shareという便利グッズがあります。こうするとうまく使えそうという使い方をいくつかシェアーします。

(業務利用の場合) 使ってよいか確認する

後述するように、仕組みを見るとwebサービスであるといえるので、業務利用してよいかは事前に確認しておきましょう。 業務利用でない場合はよしなにやりましょう。

Live Shareへの参加を承認必須とする

デフォルトでは、Live Shareを開始したときに払い出されるURLを踏んでもらうだけで、他の人にLive Shareにジョインしてもらうことができます。 これを、

  • URLを踏んでもらう
  • Live Shareのオーナーが承認する

という流れになるように設定することができます。 settings.jsonに

"liveshare.guestApprovalRequired": true,

を追記すればよいです。 招待URLの推測は困難なのでまあ勝手に入られることはないでしょうとは思いつつも設定しておくに越したことはないです。業務利用の場合は設定することを推奨します。

招待リンクを踏まれた通知を見逃さないように気をつけましょう*1

通話や画面共有をする

Slack callやGoogleハングアウトなどで音声を共有したり、エディタの画面を共有しておくと、今どこのコードの話をしているのかがスムーズに分かります。

ちなみに、Live Share Audioという、VSCodeで音声を共有する拡張機能もあります。私は使ったことありません。

コードを書く人のカーソルについて行くようにする

特定の人のカーソルをフォローする設定があります。これを設定しておくとカーソルを見失いづらくなるでしょう。

docs.microsoft.com

ノートを取るペインがあるとよさそう

実際に編集するファイルの他に、ノートを取る用のペインを分けておくとよいかもしれません。 とりあえずコメントとしてどんどん編集してるファイルに追記してあとで消すという手もあります。

Live Shareのドキュメントを一読する・ペアプロ以外の使い方も模索してみる

docs.microsoft.com

とりあえず読んでおくとよいです。意外とできることがいっぱいあっておもしろい。 たとえばターミナルを共有することもできるので、VSCode上でペアオペもできます。

何度か使う練習をする

初めのうちは、ちゃんと繋げるか、使い心地はどうか、といったことが分からないと思うので、何度か使って雰囲気をつかむとよいです。まずは遊びのコードをみんなでわいわい編集するところから始めるとよさそう。

*1:1敗

野生の勘だけでコードを書いているのではないかという念

自分は体系化された知識を持っておらず、全てを野生の勘だけで実装しているのではないか、という念が払えないまま幾年が過ぎた。 情報系の大学を出てみたところで、手を動かしていない領域については全くベストプラクティスを知らず、野生を生き延びるためにやってきたことを不器用に組み合わせて乗り切ろうとしてしまう。 ベストプラクティスは最初からあるのではなく経験や知識の積み重ねによって体系化されていくので知らないのは当然とも言える。 ともかくそういう体系化された知識がないという焦りがあった。

今日はいわゆるGang of Fourデザインパターンのカタログを全て眺める活動をした。 その中には、普段からやっているようなことにも名前が付いてわざわざ分類されているのか、と感じるものから、現時点では事例を読んでもありがたみがよく分からなかったものまで様々ある。 こういうのは名前を付けて分類をすることで議論がやりやすくなるので、名前が付いていることが尊いのだろうと思う。 知らなかった、ありがたみの分からなかったパターンについてのありがたみを分かるようになるには、事例をもっとちゃんと読み解くとか、素朴な方法で実装してみてこれではあまりにつらすぎる!!! という経験をしてみるのが大事なのだろう。

ほんとうは帰省しているときに読もうと思っていたけど、実家でのびのびと読書できるような状態じゃなかったので今になってしまった。

scrapbox.io