別にしんどくないブログ

技術のことや読書メモを書いています

v-kansai Vue.js/Nuxt.js meetup #5でamp-scriptについて話します。 #v_kansai

AMP Conf 2019から気になっていたamp-scriptについてVue.jsを交えて話をします。 本番までに修正するかもしれませんが、以下資料です。

speakerdeck.com

もし不備や質問があれば、ブコメTwitterで教えていただけると幸いです。

参考

Node.js v12で使えるJavaScriptの新機能

Node.js v12が4/23にリリースされました 🚀

Node.jsのCoreにも新しい機能が入りました。 また、APIの追加以外にもTLS1.3のサポートやhttp_parserがllhttpに代わったりしています。 詳しくは以下をご覧ください!

github.com

JavaScriptエンジンであるV8もバージョンアップしています。
Node.js v10のV8のバージョンは6.8でしたが、Node.js v12では7.4に大幅アップデートしています。
V8のバージョンが上がることによりJavaScriptの使える機能や構文が増えます。
今回はMathias氏のツイートをもとにNode.js v12から使えるJavaScript(ECMAScript)の新機能について紹介したいと思います。

続きを読む

『徳丸浩のWebセキュリティ教室』を読んだ

徳丸浩のWebセキュリティ教室

徳丸浩のWebセキュリティ教室

セキュリティの専門家として著名な徳丸先生が2015年に出版された本である。
170ページほどで薄めの本ながらWebのセキュリティに関して様々な事例や解説が紹介されている。
いくつか例を挙げると、XSSSQLインジェクションCSRFなどの説明やさくらVPSへの不正ログイン事件やGHOSTなどの事例をが書かれている。
本書序盤から度々出てくる「脆弱性はバグという意識を持つ」は開発者全員が意識しなければいけないと感じた。
あと発注者も意識が必要と書かれており、セキュリティ要件の提案と見積をRFPに盛り込んでおくことが勧められていた。
これにより発注側にもセキュリティ対策の責任を持つと開発者との責任のなすりつけ合いや逐一確認するといった無駄も省けて良さそうだと感じた。
またIPAの「安全なウェブサイトの作り方」や「セキュリティ実装チェックリスト」に沿って確認するのも勧められている。

www.ipa.go.jp

また「安全なウェブサイトの作り方」は2015年に改訂され、以下の脆弱性について詳細や対策を解説している。無料で公開されているので、セキュリティへの関心の第一歩として一読するのは良さそうである。

  1. SQLインジェクション
  2. 0Sコマンドインジェクション
  3. パス名パラメータの未チェック/ディレクトリトラバーサル
  4. セッション管理の不備
  5. XSS(クロスサイトスクリプティング)
  6. CSRF(クロスサイトリクエストフォージェリ)
  7. HTTPヘッダーインジェクション 8.メールヘッダーインジェクション
  8. クリックジャッキング
  9. バッファオーバーフロー
  10. アクセス制御や認可制御の欠落

1日は1440分しかない / 『1440分の使い方 ──成功者たちの時間管理15の秘訣』を読んだ

1440分の使い方 ──成功者たちの時間管理15の秘訣

1440分の使い方 ──成功者たちの時間管理15の秘訣

最近無限に時間が足りないと感じています。
時間は有限なので取捨選択していかなければいけないと感じたときにPrime Readingで本書があったので読みました。

以下読書メモです。

1440の威力

  • 一日は1440分しかない
  • 1分がどれだけ重要か意識し、自分にとって何が最も重要か考える
  • その目標につながることに集中する。

適切な優先順位の重要性

-目標は具体的にする - 例えば2ヶ月で5キロ痩せるなど具体的な数値を設定するのが重要 - 具体的な目標に向けて必要なことなすべて洗い出す - 自分の成功体験を例にすると、Node.jsのコラボレーターになると決めたときも半年という期限を設けて、それまでに必要なコミットの数を考えて進めることで達成できた - MIT(目標に対して最も重要なタスク)に注力する - 目覚めてから2時間が脳のゴールデンタイムなので、この時間に最も重要なタスクに注力する - 最も重要なタスク(MIT)を特定し、毎日、何よりも先に取り組む

ToDoはいらない

  • 重要なことはすべて、やる時間を決め、15分単位でスケジュール表に入れておく
  • 30〜90分の何も無いバッファタイムをスケジュールしておく
  • タイムブロッキングする
    • 重要なことに集中するときはカレンダーに登録してMTGなどを入れられないようにしておくとよいかも

先延ばしを克服する

  • 未来の自分は、今この瞬間の私たちを妨害しようとする
  • 人間は利益を望むよりも損失を恐れるようにできているので、目標達成時のアメを与える代わりに、目標未達成時の罰則を科せばいい
  • 理想的な自分になったつもりで自分に語りかける。例えば、「私はジョギングを習慣にしている」「私はベストセラー作家だ」と。
  • 理想的な自分になりきることで、先延ばしにしがちな問題もやらないと気持ちが悪く感じる

ノート術

  • 常にノートを持ち歩く
  • キーボード入力より手書きの方が記憶に定着しやすい
  • 日記をつけて毎年元旦に昨年分を読み返すことで自分の進捗を振り返る

メール術

  • メール購読を解除する
  • メール通知をOFFにする
  • メールは1日に3回、21分ずつ時間を制限する
  • メールは常に短く簡潔に

会議術

  • 会議前にアジェンダを共有し意見を求める
  • 会議の目的を明記する
  • 進行役を明記する
  • 議題はなるべく疑問文で書く
  • 会議の時間の目安を明記する
  • 日時の小会議は15分に留める

大成功に導く小さな一言

  • 当面の目標達成に役立たない誘いは断る

読書と勉強の80対20

  • 各章の最初と最後の段落、段落後の1文を読むだけで8割がた理解できる
  • 重要なことに注力して、それ以外は妥協するか一切やらない

外部委託する

  • 1年ごとに時間の使い方を振り返り、少なくとも15%は外部委託する

1日のテーマを決める

  • 1週間を3種類に分ける
    • 集中日: 自分が得意なことに集中する
    • 予備日: メール対応や会議、書類仕事を行う
    • 休日: 仕事を一切しない。仕事以外のことに集中する
  • 休暇は予備日で挟む。金曜日と月曜日を予備日にする

一度しか触らない

  • 5分間で終わるタスクは一度しか触らない
  • 返信しなければいけないメールはすぐに返信する
  • 先送りしない

朝を変えて、人生を変える

  • 家族より15分早く起きる。みんなより15分早く出社する。朝の15分に集中すべきことを行う

その他時間管理の秘訣

  • ベストコンディションであるためには、ダウンタイムも少しは必要

「富を失ったら懸命に働けばいい。知識を失ったら勉強すればいい。健康を失ったら禁酒するか薬を飲めばいい。しかし時間は、一度失ったら永遠に戻ってこない」――サミュエル・スマイルズ(イギリスの作家、『自助論』著者)

読後感想

1440分しかないという風には考えていなかったので、この数字を意識するだけでも日々の時間の使い方の決定に影響はありそうだと感じました。
冒頭に書いた通り、取捨選択しなければいけないことはわかりきっているので本書に背中を押してもらった気分です。

以上、最後までお読みいただきありがとうございました。
関連本やオススメ本がありましたらブコメTwitterで教えていただけると幸いです。

総関西サイバーセキュリティLT大会で脆弱性のあるJSライブラリの話をします #sec_kansai

2019-04-10に行われる『総関西サイバーセキュリティLT大会(第14回)』でJavaScriptのライブラリの脆弱性に関する発表をします。 sec-kansai.connpass.com

speakerdeck.com

5分の発表なので、あまり踏み込んだ内容にはなっていませんが参考になれば幸いです。
不備や不明確なところがありましたら、ブコメTwitter(@shisama_)にて教えていただけると助かります。

脆弱性に関してはNode.jsもnpmも尽力しています。もし使っているnpmパッケージで脆弱性があった場合は https://npmjs.com のパッケージのページから報告お願いいたします。

ライブラリではないですが、Node.jsに関する脆弱性の報告も以下のリンク先で受け付けているのでよろしくお願いいたします。

nodejs.org

『Team Geek』を読んだ。

本書は定評があり、以前から勧められていたのですが積読が多く読めていませんでした。
最近、チームで働くこと、特にチームメンバーとの協調や生産性向上がうまくいってないように感じているので読んでみました。

以下は各章ごとに気になったことのメモです。

1章 天才プログラマの神話

  • チームで働くための三本柱
    • Humility (謙虚)
    • Respect (尊敬)
    • Trusty (信頼)
    • HRTなのでハート(Heart)と呼ぶみたい
    • 本書の中心にどうすれば良いチームを築くことができるのかを網羅的に解説している
  • エゴをなくす
  • チームメンバーを信頼して仕事を任せる
  • 批判は個人的なものではなく優れたプロダクトを開発するための必要なプロセスであるか、そこに尊敬が含まれていなければならない
  • 建設的な批判の仕方を学ぶ必要がある。そのために気の利いたフレーズを使えるようにする

2章 素晴しいチーム文化を作る

  • ミッション・ステートメントを明確に定める
    • プロダクトのスコープを制限する
    • やること/やらないことを明確にしておくと年単位で仕事の節約になる
  • MTGは必要な人だけで行う
  • MTG前はアジェンダを用意する
  • MTGのゴールに早くたどり着けば時間内でも終わる

3章船にはキャプテンが必要

アンチパターン

  • 自分の言いなりになる人を採用する
  • パフォーマンスの低い人を無視する
  • 人間の問題を無視する
  • みんなの友達になる
  • 採用を妥協する
    • エンジニアを5人雇う計画のとき大量募集して上位5人を雇うことがあるが、このやり方はダメなやり方。ジョブズいわく「Aランクの人はAランクの人を採用する。Bランクの人はCランクの人を採用する」
    • 採用に口を挟めなくても腕のいいエンジニアが必要だと主張する。それでも標準的なエンジニアしか雇わないのであれば職場を変えた方がいい
  • チームを子どもとして扱う

リーダーシップパターン

  • エゴをなくす
  • 禅マスタになる
    • 常に平静を保つ
    • 質問は禅マネジメントの秘密である。チームメンバーがアドバイスを求めてきたら、自分で解決しようとするのではなく、解決することを手伝うようにする。自分が答えを持っているかどうかにかかわらず、相談相手には印象が残る
  • 触媒になる
  • 先生やメンターになる
  • 目標を明確にする
  • 正直になる
  • 幸せを追い求める
    • 時間を作ってチームの幸せを計測する
    • チームの幸せを追い求めるには1on1のあとに他に必要なものがあるかを質問する
    • チームの外の幸せを考える

4章 有害な人に対処する

  • 有害な人ではなく、有害な振る舞いを排除する
  • 他人の時間を尊重する
  • 完璧主義者にならない
    • 設計に時間をかけすぎてコーディングがなかなか始められない。結果として、チームとしての生産性を下げている。
  • 優しく追い出す
    • 文句言いたいだけの人に対して優しい口調で優しく接する

5章 組織的操作の技法

  • リスクをとる
    • 年に1回でも失敗していないようなら、それはリスクを取っていないということ
  • 「攻撃的」な仕事と「防御的」な仕事
    • 攻撃的な仕事は、ユーザに見えるもの。UIの改善とかパフォーマンス改善など
    • 防御的な仕事は、プロダクトの健全性を維持するもの。リファクタリング、モニタリングなど
    • 防御的な仕事にかける時間は1/3〜2/3に収める

6章 ユーザーも人間

  • ユーザーに集中すれば、他のことはすべてついてくる
  • 成功しているソフトウェアというのは、問題を限定してそれをうまく解決している
  • Less is more

感想

定評通りの良い内容でした。読んでいて感じたのは最近勉強会やカンファレンスなどで聞くようなチームビルディングの例はこの本に影響受けているものも多いのではないのかなということです。
この本を読みながら「これ最近よく聞くよな」とか「これ何かで読んで実践してみて良かったな」とか他で得た知識が載っていたのですが、もしかすると誰かがこの本から得た知識を実践してアウトプットしていたのかもしれないです。そう考えるとこの本は多くの人に影響を与えた本だと思います。
また、この本は発売が2013年ですが、今読んでも勉強になることが多いので内容はある程度普遍的なものなのではないでしょうか。
この本も時代を超えて読まれていく本になる可能性はあります。願わくば、本書に書かれていることが当たり前の世の中になっていて読まれなくなると良いかと思います。   チームで働くことに悩んでいたり、これからチームで働く人には積極的に勧めていきたいと思います。

『FUTURE INTELLIGENCE』を読んだ。クリエイティブ思考が身につく10の習慣

FUTURE INTELLIGENCE ~これからの時代に求められる「クリエイティブ思考」が身につく10の習慣~

FUTURE INTELLIGENCE ~これからの時代に求められる「クリエイティブ思考」が身につく10の習慣~

  • 作者: スコット・バリー・カウフマン,キャロリン・グレゴワール,野中香方子
  • 出版社/メーカー: 大和書房
  • 発売日: 2018/04/21
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る

図書館で子どものアンパンマンの絵本とともに借りた本が良かったので、読書メモを残しておきたいと思う。

表題のとおりクリエイティブ思考を身につけるための習慣を紹介していくという内容になっている。何が良かったかというと、自分の嫌いなところを肯定してくれるところに癒しを感じたことや日頃意識していないけど実践していたことが言語化されていたり気づきが多かった。また、新しい考え方を学ぶこともできた。
これから意識して実践していきたいことや心に残った内容を10の習慣ごとにまとめて残しておく。

1. 遊び

子供の頃は遊ばせる。遊びを通じて自分自身のことや周りの環境と自分の関係を理解していく。
好奇心を発揮して馴染みのないものに慣れていく。
ごっこ遊び」が子どもたちの想像力や好奇心を育む。
幼いうちに勉強を教えるのは逆効果。好奇心や予想外の繋がりを見つける能力を損ねること示唆している。
ある程度大きくなってから読み書きを習った子どもの方が文章読解能力が高いという研究結果がある。
遊んでいる大人は老いない。大人になるにつれ、遊び心と好奇心を忘れ、仕事やまじめな事柄を支配されがちになる。
クリエイティブな仕事には真剣な時間と遊びの時間がある。両者がうまく組み合わさったときに良い結果が出る。

2. 情熱

誰かと出会いや何かの本を読み感銘を受け人生をかけるべきだと思う瞬間のことを「結晶化」(クリスタライジング)と呼ぶ。クリエイティブな心を育むために欠かせない。
「うまくなりたい」と熱意を持てるかどうかで才能は決まる。
「調和的な情熱」と「強迫的な情熱」がある。「調和的な情熱」は見栄えや名声などではなく習熟と成長を重視する。
一方、「強迫的な情熱」は世間に認めてもらうためなど成長ではなく外的な報酬を動機として励む。
インスピレーションを得やすい人は努力をする。調和的な情熱を持つ人はやっていて面白く、意義を感じるものであれば練習は苦にならない。

3. 夢想

1時間おきに5分の夢想休憩をはさみ、それがアイデアや思考にどう影響するか観察してみよう。
頭をすっきりさせるために席を立ってトイレに言ったり、会社の周囲を散歩していたりして目の前の課題から注意をそらすと、ふいに求めていた答えが頭に浮かぶことがある。
ほんの少し行動を変えることで、考え方が建設的な方向に向かう。
気分転換することで無駄な解決策に固執している気持ちを解放することができる。
歩いている時、とくに自然の中を歩いている時に問題が解決されることが多い。
マインドフルネスとは今この瞬間に心を集中させ、ありのままを感受することである。
マインドフルネスがクリエイティブにもたらす恩恵は大きい。しかし気が散ることは必ずしも悪いことではない。

4. 孤独

クリエイティブの糧になるのは孤独の時間である。
心の内側を深く掘り下げる、他社や周囲の雑多から離れることで自分と向き合うことができる。
そのために孤独なスペースを作る。
自分への関心と他社への関心、内向性と外向性、深い内省と意欲的な行動のバランスをとることがクリエイティブ思考に重要である。

5. 直感

直感は十分に準備したものにだけ訪れる。
過度に理性的に考えることを学ぶと直感が理性と分析に押しつぶされる。
直感が鋭い人は周囲をよく観察しているが、ひらめく直前は視覚からの入力がヘリ、視覚野の活動がほぼ停止する。

6. 好奇心

知りたい、見つけたいという好奇心の有無は知能指数の高低よりはるかに仕事の質に影響する。
未知のものを探求したいという欲求がクリエイティブな仕事につながる最も重要な特徴である。
好奇心の強弱はドーパミンの働きによって決まる。ドーパミンは行動と認知の両面で探求したい意欲を目新しいものに柔軟に反応する傾向を促す。
好奇心旺盛な人は報酬ではなく新しい発見から活力を見出す。

7. 瞑想

マインドフルネスとは今この時に注意を払うこと。マインドフルに観察する訓練をすると認知知能が向上した。マインドフルになるのに正式な瞑想の訓練は必要ない。今この瞬間に意図的に集中し、評価や判断をせずに注意を払うこと。じっくりと観察する能力は重要でクリエイティブ思考にも役立つ。
心を鎮めようとするとますます騒がしくなるが、やがて落ち着く。そうすればささやかな物音を聞く余裕が生まれ物がはっきりと見えるようになる。心の動きが遅くなり前よりはるかに多くのものが見えるようになる。
マインドフルネス瞑想は呼吸1つに集中し、心の中の雑念や感情を消し去ることが求められる。この種の瞑想は脳の実行機能を向上させる。
瞑想の最も有意義な使い方は、雑念を振り払うことだろう。メールやマルチタスクが溢れている状態で大切な課題に集中することができなければ、意義深い仕事をするのはますます難しいだろう。
また、集中力はクリエイティブ思考への道を開くが、クリエイティブな業績を上げるためにはマインドフルネスとマインドワンダリング(自分の心を探索すること)の両方からもたらされるものであるためこの2つの切り替えが重要である。自己に集中する思考モード(マインドワンダリングからもたらされる)も外界に集中する思考モード(マインドフルネスからもたらされる)のどちらも強める必要がある。
ある程度のマインドワンダリングを許す瞑想の方が心を集中させる瞑想やただじっと座っている瞑想よりデフォルトモードネットワークが活性化する。
認知能力が高い人は、認知能力がより柔軟で、異なる思考モードの行き交いを容易に行い、多彩なアプローチで問題の答えを導き出すことができるのだ。
クリエイティブになるには周囲を観察するだけではなく、心中を通り過ぎる現象に気づき、深く観察することが必要である。

8. 繊細

クリエイティブ思考を点と点をつなぐことと考えれば、敏感な人は、普通の人より点が多いため、点をつなぐ機会の多い世界に生きている。感受性の高い人はより多くのことに気づき、より多くの感覚情報を処理している。
感受性が高い人は刺激を心の深いところで処理する。そのため、新しい状況で「立ち止まって確認する」「戦略を深く考える」「時間をかけて考える」「時間をかけて効果的な行動を計画する」「引きこもる」といった行動をとる。
感受性が高い人は共感や自己認識能力も高い。
感受性の高い人はカフェインや薬や痛みなど身体レベルでもより深く影響を受けやすい。
感受性の高い人は感情の起伏が激しいが、それを抑制する能力を身につければ、自分の生々しい知覚を鋭い洞察に昇華することができる。
クリエイティブ思考の人は常に自己実現をしている。創造は人生を豊かなものにし、生きているとう強い感覚を生じさせる。
敏感な性質は感情的緊張や環境との建設的な対立をもたらし、その対立を解決する手段にもなる。敏感な性質は人間が成長し危険を冒し意味を探すことを後押しする。最終的に内面的な成長に欠かせないものである。
感受性が高い人にとっては人生は過酷なものになりがちだが、繊細さにはすばらしい喜びや驚きや共感や創造も伴う。そして辛い経験を最大限に活かすことができれば、意義深い仕事をして複雑なアイデンティティを確立することに近づいたと言えるだろう。

9. 逆境

人生における最も過酷な状況は、生きる目的と生きる力を見出す機会になる。人生を耐え難いものにするのは環境ではなく、「意味と目的の欠如」である。
苦しみから思いやりを学び、苦しみを乗り越える過程で自らの力と美を発見する。
トラウマを乗り越えた人の70%が心理的成長を遂げたと研究結果が出ている。
喪失と獲得、苦しみと成長は同時に起きることが多い。しかし、芸術家はネガティブな人生経験だけでなくポジティブな人生経験も作品に昇華している。
不運は出来事は、当たり前と考えていた価値観を見直し新しい価値観を考えざるを得なくする。
心理学者は、トラウマは共感や利他主義を高めて他者の利益のための行動を促すことを明らかにしている。
人は独自の世界観や仮説を形成し、それに則って暮らしているがトラウマはそうした価値観を揺さぶり人を成長させる。揺れが大きいほどそれまでの自分の考え方から離れて土台からやり直さなければならなくなる。自己再建によって新しい扉を開くことができる。
きつい感情を客観視して書き記すライティングセラピーによってうつ症状や心身の健康状態を改善するだけでなく、認知能力やワーキングメモリーが改善することが明らかになっている。
ライティングセラピーの効果の度合いと、「知る」や「理解する」といった認知に関わる単語を使用する頻度には相関が見られる。
不幸なことだけでなく、幸福感も同じく興味を広げる。新しい可能性と目標を見つけることができる。新たな目標や人生観をみつけることで人間関係や優先事項やアイデンティティを変えることができる。

10. 異端

偉業を遂げるための必要不可欠な要素は「人と違う考え方をする」ことである。
真実は多数派を信じるか否かによって変わるものではない。
真のイノベーションを起こしたほぼ全てが、最初は抵抗を受けている。そのためクリエイティブであることには勇気が必要である。
クリエイティブな人には「他の人が不可能だと思うことをしようとする」「服従しない」「伝統にとらわれない」「社会規範や常識や前提に疑問を持つ」「自分の立場を明らかにしようとする」といった特徴がある。クリエイティブな人はリスクをとり、最後まで追求しようとする。
クリエイティブな人は世の中で支持されている考え方を拒み、斬新なアイデアを好む。
挑戦者は必ず迫害される。アイデアが批判され、排斥されてもそれを支持し続けるには覚悟が必要である。いかなる分野であれ、真の貢献のためにはその分野を新たな方向へ動かす「リーダーシップ」と「ビジョン」が必要である。 平凡な人は従順な人を好む。実験によると、大半の人が真実だと思うことを翻してでも多数派を歓迎することが明らかになっている。自由な思考と想像力の抑制は教育制度から始まる。多数派と違う経験をすることで先生から注意される経験は子供の好奇心や個性的な本能を抑制している。子どもたちは間違いを恐れるようになり、異なる解決法や考え方を試すことを教わらない。ゆえに変化し続ける世界や新たな課題に備えることができない。
間違いを犯すことを覚悟しなければ、独創的なことは何1つ思いつかない。 独立心の強い自我は他者との分離を好む。
イデアの質は量によってもたらされる面がある。失敗すればするほど成功する確率は上がる。質の差は革新への欲求によって決まる。同じ手法を繰り返してはならないというプレッシャーを常に感じている。革新を求めるがゆえに天才は何度も失敗をする。
また、伝統的な考えに挑戦するものはすべて型破りな思考へ導く。これまでと違う考えをする習慣を身に付ければ、違う分野のアイデア同士を結び付けることができるようになる。点と点を新しい方法でつなぎやすくなる。
革新的な人は、そうでない人に比べて「人と違うことを考え方をしようとする」時間が50%多いことが研究で明らかになっている。
自分はクリエイティブ思考であるという自覚を持ち実践することは、人を本来の自分自身と結びつけてくれる。

感想やまとめ

好奇心を持って、夢中になり集中することが大切である。また、自分と向き合うことと、心中を鎮め外界に集中することの両者をバランスよく行うことで多彩なアプローチをすることができるようになるのであろう。
一見ネガティブな事柄もクリエイティブ思考には欠かせない。辛い経験や感情は人を成長させるということなので、辛い経験があっても悲観的になりすぎないようにしたいと思う。
また失敗や批判を恐れずに挑戦しつづける勇気も身につけたいと思う。
クリエイティブ思考を身につけるために10の習慣を実践し、自分の多面性を受け入れて新しいもの良いものを創造していきたいと思う。

以上になります。最後までお読みいただきありがとうございました。
オススメの本などありましたら、コメントやはてブTwitterなどで教えてもらえると嬉しいです。