近況報告たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。動向はもえじら組ブログで。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。2020うちは大きなベッドを1つ使うのではなくシングルサイズのベッドを2つ並べて使っているのですが、引っ越しを機にベッドを買い換えたら困った事になり、工作と裁縫で解決しました。2019このエントリはQiitaとのクロスポストです。シェル芸アドベントカレンダー2019に空きがあったので、最近やったシェルの話で参加させていただきます。自分は日経Linux誌でシス管系女子というシェルの解説記事(マンガ)を連載させていただいてます。その2020年1月号掲載分の回において、「劇中の架空の会社で、アダムズ方式を使って各部署から代表者を何名かずつランダム且つ公平な感じで選ぶシェルスクリプトを作る」という話をやっています。アダムズ方式では、前の計算の結果を使って次の計算を行うというステップが何度か出てきます。今までは「1画面分だけの画面出力」が必要なケースが多かったので都度てきとうにその場の気分で偽の画面をデッチ上げていたものの、こう複雑な話になってくると、それぞれの画面間で数字に矛盾が無いようデッチ上げるのはなかなか大変です。実際にそれっぽい「社員名簿」のダミーデータのCSVを作って、その処理結果をそのまま使うことにしました。いう場面でのダミーデータの作り方はいろいろあると思いますが、描いているのがシェルの解説なので、シェルでやってみました。いうのがこの記事の内容です。diaryという記事の中で、僕の事が以下のように評されてました。Piro_orさんはある問題について自分はこう考えるということの表明とその背景説明がとても上手な印象です。おっしゃって頂いていてなんというか恐縮です。確かに、自分でもそういう事をよくしているような気がしてます。自分がそうしている事の動機がどこにあるのかという事を改めて考えてみると、必ずしも目指すに値する対象とは言えないんじゃないだろうかという気がしています。2019タイトルは服を着るならこんなふうにのパクリです。2019をご覧の皆様、初めまして。ライターとしてプログラミングやなんかのIT解説記事を執筆する事がある、Piroと申します。ライター・編集者向けのアドベントカレンダーなのに、何故マンガ?と思った方向けに、最初にちょっと背景を説明したいと思います。自分はUnix系環境のシェルのコマンド操作やシェルスクリプトをマンガで解説するという連載記事を、シス管系女子というタイトルで日経Linux誌にて2011年から描いています。導入の1~2ページだけマンガという形式ではなく、毎回6ページのマンガだけで解説するという形式で、原作から作画まで1人での制作です。実際の内容は日経xTECHでより抜きエピソードが公開されていますので、そちらを見て頂くと「ああ、こういうやつね」とお分かり頂けるかと思います。このエントリでは、こういうガッツリ系解説マンガを作るにあたっての普通の文字原稿の技術解説記事とどう違うか?普通の(技術解説ではない)マンガとどう違うか?を語ってみます。いうか、そういう点を深く意識しないままに描き始めて後から「ああ、あのときこうしておけば良かったのに」と後悔したことが色々あり、それを振り返ってまとめてみたという感じです。「自媒体にマンガ形式の記事を載せたい・マンガ形式の解説書を出したいが、マンガのことはよく分からない」という編集者の方や、「マンガで解説を書くことになったがどう書けばいいか分からない」という原作・作画の方の参考になれば幸いです。2019最近ニコニコ静画の通知で流れてきた漫画、当初はよくある異世界物かぁ~と思ってあまり食指が動かなかったんだけど、なんとなく読んでみた。したら謎の感動を覚えて、それどころか泣きたいような気持ちになってしまって、既刊の電子書籍も全部ぽちって、さらにその気持ちが強まるという体験をした。べつに「泣ける話」ではないはずなんだけど、泣けてくる。~異種族言語学入門~」(作:瀬野反人)。現代人で言語学者のハカバ君(劇中ではもっぱら「センセイ」と呼ばれる)が、師事する教授の代理として「魔界」に赴いて現地でフィールドワークをする中で遭遇する、様々な出来事を描く作品だ。内容やテーマが似た作品としては、ファンタジー世界で異種族の文化に時々言及する描写のある「ダンジョン飯」(作:九井諒子)実在の人物の旅行記を下敷きにして「西洋人から見た開国直後の日本」を異世界として描く「ふしぎの国のバード」(作:佐々大河)などが該当するだろうか。いう言葉をよく目にします。最近あった7payのトラブルは、パスワード再発行の仕様がザルで、誕生日とメールアドレスさえ分かれば第三者がアカウントを乗っ取り放題だったせいで、最低でも900人に計5500万円以上の被害が出た上に個人情報も漏洩した恐れがある、という事件でした。以前から一般ユーザーによって危険性が指摘されていたという話も、開発に関わった人が良識を持っていれば絶対に指摘していただろうという話も聞かれて、そういった技術的・倫理的に正しい指摘がきちんとエスカレーションされていさえすれば防げたかもしれない事件だった、なのに誰も止められなかった。何か言えば上司に「余計な事を言って仕事を増やすな」とか「スケジュールを遅延させる気か」と詰られると思うと、皆我が身かわいさに「正しい指摘」を引っ込めざるを得なかった、のではないだろうか。正しい事を正しいと言えなかったがために起こった事故なのだろう。......というような話がまことしやかに囁かれています。いう事を防ぐために、正しい事を正しい・間違っている事を間違っているときちんと指摘してよい、指摘しても懲罰的人事などの理不尽な形で不利益を被る事は無いという意識が、メンバー全員で共有されている状態。挑戦に失敗しても致命的なダメージを被らないで済むというセーフティーネットがあるために、意欲的に挑戦してより良い成果を生み出せる状態。みんなで一丸となって、やるべき事をつつがなく遂行できる状態。いうのを、心理的安全性が高い状態と言うそうです。詳しい話は心理的安全性ガイドライン(あるいは権威勾配に関する一考察)とかそのあたりの記事を参照してください。その「心理的安全性」なんですが、急激に流行りだしてバズワードと化したせいか、本来の意味とは異なる意味で使われてしまっている場面があるそうです。具体的には、「批判されると萎縮してしまって何もできなくなる。相手の事を批判してはいけない。みんな仲良く、和気藹々。それが心理的安全性が高い状態である」というような使われ方。先の説明から続けて読めば、これがどうして「間違った理解」なのかは明白ですよね。「本来の心理的安全性」は筋の通った正しい指摘を引き出す物のはずなのに、「誤用の心理的安全性」では、そういう正論ベースの指摘は「和を乱す物」として否定され得る。明らかな穴があっても、「彼がせっかく頑張って考えたプランなんだから、それでやろうよ」と、穴に目を瞑ってナアナアで済ませる。して幾つもの誤りを見過ごして破滅に突き進む。我々はこれを言い表す的確な言葉を既に知っています。「事なかれ主義」です。その単純な言い換え語として「心理的安全性」を使うというのは、確かにいただけません。その一方で、この誤用をしたくなる気持ちを僕は否定もしきれないんですよね。世の中には、「論理的に正しいかどうかがすべて」を信条に、人の神経を逆撫でしたりこき下ろしたりする人がいるからです。ただの観測範囲の問題かも知れないんですけど、「(IT)エンジニア」にはそういう人が目立つような印象が、僕にはあります。Version既にTwitter等でお知らせしていますが、ツリー型タブのバージョン2.0~3.0.13とマルチプルタブハンドラのバージョン2.0~3.0.6に脆弱性がありました。3.0.7以降で修正済みです。自動更新を停止していたり、古いバージョンのFirefox用に古いTST・MTHを使用していたりすると、脆弱性を突かれる恐れがあります。更新またはアンインストールを強くお勧めします。詳細な説明はGitHubのissueに日本語でも記載していますが、端的に言うと「他のアドオンと連携するために独自に提供していたAPIの仕様がガバガバだった」という事になります。通常、WebExtensionsベースのアドオンでは明示的に宣言されインストール時に許可された範囲の情報しか取得できない。タブの現在のタイトル、URL、アイコンもそのような情報の一種。TSTやMTHは動作上どうしてもタブのタイトルやアイコンを知らなくてはいけないので、それらの権限を要求する旨宣言している。インストール時にもそのあたりの事が警告される。TSTやMTHは、他のアドオンの求めに応じてツリーの情報や選択されたタブの情報を返したりプッシュ式に通知したりするためのAPIを提供している。APIから得たtabs.Tabのオブジェクトに基づいて、それとの互換性を保つようにしていたため、その中に無条件でタブのタイトル、URL、アイコン、およびプライベートウィンドウのタブの情報が含まれていた。これらの情報が、本来は取得するために特別な権限が必要な物であるという事を失念していた。APIを使って呼び出す物だが、browser.runtime.sendMessage()の呼び出しには特別な権限は要らない。よって、TSTやMTHがインストールされている環境では、どんな権限でインストールされたアドオンからでも、全く無警告に、そういった情報を参照できてしまうという状態だった。一応、この「脆弱性」を使って悪さをするアドオンとしてこういう物が実際にある、というような報告はまだ受けていません。作者が自主的に行った仕様の再チェックで脆弱性が見つかったという事になります。「誰も気付かないような所、仕様の穴を突いたイリーガルな使い方をすると情報を盗み出せる」というような物ではなく、技術情報としてドキュメントも公開しているAPIを堂々と使って、WebExtensionsのアドオンごとの制限を突破して情報を取得できる、しかもその情報自体は実は2017年のバージョン2.0リリースの時から1年半以上もの間ずっと公知だったという、我ながら書いていて情けなくなるお粗末な状況なので、この脆弱性を利用した悪意あるアドオンが既に存在していても、全くおかしくはないと思っています。いうことで、もしそのようなアドオンを見つけた方がいらっしゃいましたら、お手数ですがどうかタレコミをお願いします。折良く(?)、Mozillaのアドオンコミュニティの担当者の方からおすすめアドオンの件について連絡を頂いたので、ついでにこの件についても相談してみました。何か進展があったらまた告知すると思います。それにしても、何故こんなにお粗末な事をやらかしてしまったのか。理由はいくつか考えられます。1つは、XULアドオン時代の設計思想を引きずってしまっていたこと。XULアドオン時代にはFirefoxのアドオンはすべての情報にフルアクセスというのが当たり前でした。TSTやMTHのAPIには、呼び出し元ごとに返す情報に差を付けないといけないという考えが全くありませんでした。聞かれた事はなんでも返していい、何故ならどうせ呼び出し元のアドオンだって、それらにアクセスしようと思えばいくらでもできるんだから。これがXULアドオン時代の考え方でした。他方、WebExtensionsでは、各アドオンは事前に許可された範囲の情報しかアクセスできないので、ユーザーは各アドオンの権限だけを気にすれば良いという事になっています。この事ばかりが強く印象に残っていたことと、とにかくXUL版から機能を移植するという事にばかり気を取られていたために、アドオン同士の間ですらもアクセスできる情報の範囲に差があるという事が、頭の中からすっかり抜け落ちていたのだと思います。「アドオン同士の権限に差がある」というWebExtensionsの世界に合わせるには、TSTやMTHのAPIにもその考え方を反映しないといけなかったんですね。APIから入手した情報は、相手のアドオンにとっても同様に正当な手順で入手できる情報だ、とは限らないのです。それを忘れて呼び出し元の求めに応じてなんでも返してしまっていたというのは、「内緒にするから教えて」と言って教えてもらった情報を、他人にホイホイ言いふらすようなものです。2つ目の理由は、permissionsで宣言する権限の影響範囲を正しく把握しきっていなかったこと。tabsという権限の名前からはいかにも、タブに関する事なら何をするのにも、例えばタブの一覧を取得するのにすらも必須であるような印象を受けます。TSTやMTHのAPIを呼ぶには呼び出し側のアドオンがタブのIDを知っている必要があり、タブのIDを知っているなら当然tabsの権限も持っているはず、ならタブのプロパティ全部渡しても問題無いはず(どうせ呼び出し側のアドオンが自分でも同じ情報を取得できるんだから)。いうのが、これらのAPIを作った時点での自分の認識だったのだと思います。APIはtabsの権限無しでも呼ぶ事ができます。tabs/activeTabの権限の有無は、タブの一覧を取得できるかどうかではなく、返されるタブの情報にタイトルやURLなどのセンシティブな情報が含まれるかどうかという点にだけ影響します。TSTやMTHをWebExtensionsで実装するにあたって、まだWebExtensionsの仕様への理解が浅かったかなり初期の時点でtabsの権限を設定したきりだったために、この勘違いがずっと正されないまま今に至ってしまっていたのでしょう。他のアドオンを作る時にも、自分はひょっとしたらtabsの権限が不要なのに要求してしまっているという例があるかもしれません。今回のことから得られた教訓は、以下のようにまとめることができると思います。それぞれの権限が何を可能にするのか、その権限が無いと何ができなくなるのかを、ちゃんと理解しておく。不要な権限は要求しないようにして、常に必要最小限の権限だけをpermissionsには列挙する。APIから自分の権限で取得したオブジェクトをそのまま使い回して、他のアドオン向けのメッセージに含めてはいけない。センシティブでない事が分かっている情報だけをホワイトリスト形式で抽出して、スクラッチでメッセージを組み立てること。2019自分は「ご苦労様」というフレーズが「目上の人に使うのは失礼な言葉だ」「代わりに『お疲れ様』なら言ってもいい」と言われるようになった過程を見てきた世代の人間なので、「お疲れ様」が今「目上の人に使うのは失礼な言葉だ」と言われるようになっているという話を見かけて、まあ驚きましたね最初は。「ご苦労様」が咎められていた頃にも「そもそも、目上の人に『ご苦労様』と言う例は昔からあった」とか色々反論は目にしましたが、結局みんな馬鹿馬鹿しいとは思いつつも、それで失礼だと言われたら怖いとビビって「ご苦労様」を目上の人には使わなくなったと思うので、「お疲れ様」もそのうちみんなビビって使わなくなるのかもしれません。捏造マナーを広めてマッチポンプで仕事を作り出す失礼クリエイター(自称「ビジネスマナー講師」)に踊らされるのは癪だなあと思いつつ、しかし、お疲れ様もご苦労様も目上の人に言うのは失礼だというのは案外当を得ているのではないか?という気がする部分もあります。いうのも、「お疲れ様」が目の敵にされるようになった時にも「それは目上の者が目下の者の労をねぎらう時の言葉だからだ」と説明されていて、今回の「お疲れ様」でも同様の言われ方をしているようなので、そもそも「労をねぎらう」というのが「上から目線」の行為という事なのではないだろうか、だとしたら、目下の側からねぎらいの言葉が発される事自体が失礼扱いされるのは致し方ないのでは、と思ったのですね。現代で「お疲れ様です」が発されるのってどういう場面なんでしょうか。「労をねぎらう」と一言で言ってしまっているケースでも、分析してみると実は色々なコンテキストがあるんじゃないでしょうか。その人が自分のために労を割いてくれたので。その人が自分のしたミスの尻拭いをしてくれたので。自分が関わる事ではないが、その人が何か仕事をこなしたので。見るからに疲れている様子なので。すれ違いざまの挨拶として。メールの書き出しとして。相手が労を割いてくれたという事だと、「ありがとうございます」という表現がより適切な気がします。相手が尻拭いをしてくれたという事だと、「ご迷惑をおかけして済みません」の方が適切に思えます。自分の関係ない所でその人がした事に対して、何も言わないのは失礼だから何か言いたいという時は、「素晴らしいお仕事です」とか「敬服致します」とか言える気がします。見るからに疲れている様子なら、「お疲れのご様子なので今日はどうぞお帰り下さい」とかなんとか。すれ違いざまの挨拶だと、その日の初回の遭遇だったら「おはようございます」「こんにちは」「こんばんは」が適切な気がします。2回目以降の遭遇では、どうなんでしょう。自分は「会釈」「黙礼」でいいと思いますが。山口六平太」では、典型的な日本型大企業の中で平社員が社長に遭遇したという場面では平社員が黙礼するだけという描写が多い印象があります。して改めて「お疲れ様」「ご苦労様」の言い換えを考えてみると、他の言葉がより適切な場合もあるし、そもそも適切な・しっくりくる他の表現が無い場面もある、という気がしてきました。「ご苦労様」って、かなり広い場面で使えるユニバーサルな言葉という気が僕はするのですよね。「それさえ言っておけばまあ大丈夫」というカテゴリの言葉というか。語彙力が無いと、それだけで全部済ませたくなっちゃうというか。すると、個別のコンテキストに応じた適切な言葉の使い分けを面倒臭がって、万能のフレーズ1つであらゆる場面を済ませてしまう怠惰さは、言われた相手の側にするといい気がしない、というのは一理ある気がします。少なくとも自分は、「自分のためにわざわざありがとうございます」「自分の不始末でご迷惑をおかけしてすみませんでした」等が適切な場面で「お疲れ様です」と言われたら、「なに他人事みたいに言うてんねん」とイラってなりそうです。「お疲れ様」が失礼となるケースがもし現実にあるとしたら、そういうケースが該当していそうな気がします。なく、しっくりくる表現が他に無いから「お疲れ様」が使われているというケース、挨拶やメールの書き出しのような場面が問題だとするなら、そもそも「ねぎらいのフレーズ」を無関係の場面に流用したのが間違いだった、ということはないでしょうか。言った側は「流用したフレーズを以て挨拶しただけ」のつもりが、相手はそれを流用ではなく本来の意味の使われ方すなわち「目上の者が目下の者に対して言う言葉」と捉えたために、失礼と感じられた、という事だったりしないでしょうか。したら、もういっそのこと、既存の言葉を流用しないでその場面に適した言葉を新しく作った方が建設的ではないでしょうか。平社員が社長とエレベーターで乗り合わせた。黙っているのも変なので、挨拶する。部下が上司にメールを書こうとしている。相手がいつ読むか分からないので「おはようございます」と言うのも変だ。「めでぺづです、結城です」。文字列」で検索したら任意の文字数のひらがなの文字列を自動生成できるページが見つかったので、これで作った文字列を造語として流行らせてみると面白いのではないかという気がしています。社内で流行らせた結果、うっかり社外の人にまで使ってしまうとどうなるか分かりませんが......もしかしたら案外世間で流行るかもしれないですよね。2019僕がとある人にあまり良い印象を持っていない事の理由の1つに、商業媒体で連載の無告知中断を2回もしていて、2つ目は中断から数年経過しているのに自己紹介ではそれを現在進行形の連載としてアピールしており、自分のような第三者視点では「最初のは苦労して連載しても紙媒体でバズらなくて旨味が少ないと思って切ったのかな、次のもマンガ家という肩書きが手に入った後は放置ということなのかな」と見えているから(いや、その人にはその人の事情があって、自分は知らないだけでちゃんと双方で話の付いてる事なんだろうとは思うのですけれど)......というのがあるんですが、そういう風に他人の事をどうこう咎められる資格が自分にあるのかというと、自分の方こそ酷い不義理をやらかしているのですよね。いう仕事関係の不義理の中でも自分の中で最大の物は、フォクすけブログで1回か2回やったきりでぶん投げっぱなしにしてしまったブラウザの歴史に関する「連載」だと思ってます。今から12~13年前。Japanに半常駐でマーケティング関係のお手伝いをしていた頃、フォクすけというファンシーなキャラクターを掲げて「見た目ゆるく、でも中身は実用性高く」という意気込みでコンテンツを充実させていこうと思っていた僕は、フォクすけのブラウザ歴史年表を作るために色々調べて知識が増えた事に驕って、「Firefoxの他に無い価値の1つはその歴史にあると言えるはず。Webブラウザとインターネットの歴史をMozillaを軸に語ると面白いのでは?」みたいに考え、そのネタでドキュメンタリー風に連載をやってみますよ!と大言壮語をぶちかましたのでした。単発の技術解説記事や日経LinuxでのOpenOffice.orgの連載などで文字書きの経験はしていたので、まあできるでしょ、と思いまして。いざ書き始めてみたのですが、ところがこれが全然書けないんですよ。当然です、取材もせずに数冊本を読んだ程度のカウチポテトで、生の体験をしていない僕ごときが、自分以外の視点で歴史を魅力的な読み物として書ける訳が無いんですよね。「誰々がこの時、こう言った」みたいなヒキの強いフレーズ、出てくる訳が無いんです。その場に居合わせてない、知らないんだもの。ロクな取材もしてないんだもの。〆切を設定した訳でもなく、また、依頼された訳でなく自分で言いだした事で、自分の気が向いたら書ける時に書きますくらいの表明の仕方だけに留めるという卑怯な逃げを打っていた事もあって、「なかなか筆が乗らないンすよね......」とグズグズしているうちに一月ひとつき二月ふたつきと日は過ぎていって、気が付けばもう何の宣言もなくずうっと放ったらかしという訳です。趣味の同人活動ならまだいいですよ、ぶん投げた所で自分の信用が損なわれるだけだから。仮にも仕事として始めた物でそれをやっちゃう訳ですよ。Japanさんに対する裏切りでもあった訳ですよ。仕事のやらかしでは他にも、シス管系女子の連載で原稿を落とした事が、この8年間で1回だけありました。設定された〆切をぶっちぎるのが常態化、校了ギリギリまでかけてやっと納品、という綱渡りを繰り返しているうちに、どうしても間に合わせられなかった事が1回。初期から連載を追ってこられた方がどれだけいるか分かりませんが、「あれ、今月載ってないの?」と思われた時があったと思います。それです、その時です。実を言うと、この綱渡りは今も続いてるんですよね。納品は常態化したままで、だから毎回編集さんにはご迷惑をおかけしてます。申し訳ない事をしています。やると言って引き受けた仕事で、約束を守らないって最悪じゃないですか。「原稿落としちゃいました、ヘラヘラ。これで自分も並み居る先輩作家大先生達に並んじゃいましたね、ヘラヘラ」なんて自慢してる場合じゃないです。信用されるもクソもない、尊敬になんてまるで値しない。それで「なんで自分は人望が無いんだろう、人に誘われないんだろう、声かけてもらえないんだろう」と嘆くなんて、どういう神経してるんですかって話です。最近こんな話を見かけました。学生のごさいだったころ、学生間でごみの持ち帰りについて議論したことがあった。ポイ捨てしない派が多数で、怒った「する派」の学生が「出先でごみ箱がなかったらどうするんだ!」といったところ、しない派の学生が「え?袋に入れて持ち帰るよね」と全員鞄から畳んだビニール袋を出した。2019年5月7日その時の愕然とした「する派」の人の顔が忘れられない。「しない派」の学生全員が袋を持っていたのは全くの偶然で、袋を出した本人たちも驚いていた。なると完全に生育歴を含んだ文化の違いで、社会性や思いやりとかの問題じゃない。2019年5月7日この議論は学生間の雑談から自発的に出てきたもので、学校が用意した課題ではなかった。そのため「する派」の学生にとってショッキングな議論運びになってしまった。「する派」は「公的にはしないことになってるけど、みんなやってるのが当たり前」という認識で成人まで暮らしてきたんだと思う。2019年5月7日そう、まさしく「公的にはしないことになってるけど、みんなやってるのが当たり前」という認識でいるから、不義理をしてしまえるのですよね。「自分は特別だから許される」なんて思ってはさすがにいなかったと思っていますが、だからこそ「みんなやってるんだから、自分もやっていいでしょ」と思っていたわけです。「当たり前じゃない」と人から叱られるまで、それが自分には分かっていませんでした。これを読んだ人は、約束は守るから約束なんだ、という事だけとりあえず覚えて帰って下さい。今年37歳になるおじさんから後進へできるアドバイスは、以上です。