2019年のOSS活動の振り返り記事です。

今までの振り返り。

2019年のGitHubのContributionsは7000~10000ぐらいを推移していました。 ちょっとプライベートリポジトリのコミット比率が上がって、原因はasocial-bookmarkでのブックマークシステムな気がします。後は、仕事のリポジトリがPrivate比率多い。

@azu GitHub Contributions

GitHubのCurrent Streakは2246日で6.153424658年コミットは続いています。

データの取得には次のツールを使いました。

Issue/PR

  • PR: 412
    • 1年前: 391
  • Issue: 249
    • 1年前: 245

基本あまり変わらなかった。 privateも含めると1.5倍ぐらいになるので、GitHubの利用率が上がった感じなのかな。

作成したリポジトリ

https://github.com/search?q=user%3Aazu+user%3Aefcl+user%3Ajser+user%3Aalmin+user%3Atextlint+user%3Atextlint-ja+user%3Atextlint-rule+user%3AJXA-userland+user%3Ajs-primer+user%3Aecmascript-daily+user%3Aasciidwango+user%3Amaintenance-guidelines-for-organization+user%3Aproofdict+user%3Ajs-primer+created%3A2019-01-01..2020-01-01&type=Repositories

  • 今年: 81
  • 1年前: 69
  • 2年前: 95

作ったリポジトリの数はあんまり変わらず。

作ったもの

時期順で何を作っていたのかを振り返る。

GitHub Sponsors

GitHub Sponsorsのページを公開した。

30人を超える人に登録してもらいました。ありがとうございます!

ドメインの更新費用とかACM(Association for Computing Machinery)に登録してO'Reilly Mediaで書籍を読む費用に使ってる。 ネスカフェゴールドブレンド バリスタコク深めを買って飲むコーヒー代に使ってる。

関連して作ったツール。

GitHub Sponsorsや自分が作ったOSSへのContributionはいつでも歓迎しています! Contributeしたい人は、label:"good first issue"から探すのが分かりやすいかもしれません。

textlint

textlint-scripts 3リリース、TypeScriptでtextlintのルールを作成できるようになりました | Web Scratch

textlintのルールをTypeScriptで書けるようにした。 また、babel-plugin-static-fsを使ったファイルのインライン化に対応した。 なので、新しいtextlint-scriptsを使えばブラウザでも動くtextlintルールが書きやすくなった。

書いたtextlintのルールとか

Sudachi 同義語辞書というのが公開された、これをNode.jsで扱うものを書いた。

これを使ってルールを作ってる。 Sudachi 同義語辞書を使うと、カタカナから英単語の対応を拾えたりするので、ルールの幅が広がる。

JSer.info

JSer.info 8周年 - JSer.info迎えた。

来年で9周年で、アンケートしたけど来年の1月は特にイベントしないかも。 適当な言い訳で回数記念でやるか10年待つかかな。

こっちも9年近く、毎週更新をしている。 今は大体火曜日の朝に更新してる。火曜にランチで読んでいる人たちがいるので、そこにあわせてって感じ。

postemのウェブ版とkorefileで、APIだけ(ブラウザだけ)で更新できる仕組みもできそうな気がする。

GitHub Pages、GitHubリポジトリテンプレート、GitHub Actionsを組み合わせれば、ボタンひとつで同じ更新の仕組みが作れるような気がしてきた。 この辺に需要とか興味がある人は適当に連絡ください。

今のJSer.infoの仕組みは次のような感じになってます。

js-primer

JavaScriptの入門書。

ウェブでの認知度は上がってきたようにも見えるけど、この書籍がターゲットにしてるJavaScriptを学ぶ人にどう届けるかという課題もある。

今は2020年3月の出版に向けて調整中。

後は物理書籍/電子書籍向けの特典は書きたいなー

まとめ

今年は旅行とか登山とかに結構行ってたので、あんまり時間を使えてなかった。 旅行中にMacを持っていかないで、iPadで簡単な開発とかJSer.infoの更新ができそうな気配がでてきたので、その辺は作ってみたい。

後、ウェブセキュリティ系の仕事をメインでやってたので、色々本を読んでた。 日本の書籍だとセキュリティエンジニア的な書籍だとなんかやりたいことと違った(根本は同じだけどやり方がレイヤーに寄りやすい?)。 DevOpsとかSRE寄りの話が今のセキュリティのやり方の流れだと思うので、そっち系を扱うものを読もうと思った。 そうすると必然的に訳されてない洋書になるので、Oreillyは結構読んだ。

GitHub Sponsors登録助かってます!

Sponsor

次の書籍は結構面白くてよかった。

  • Agile Application Security
    • セキュリティは技術だけの問題ではなく、人や文化に関わる問題
    • 今は開発のプロセスが早くなってるのもあり、セキュリティがそれをブロックするのが目的ではなく、組織が適切なリスクを取れるようにセキュリティを有効化するのが目的
    • セキュリティ対策は魔法じゃないので、セキュリティバグはバグとして修正する
    • 設計的なバグ(欠陥)をなくすためには設計からセキュリティが関わるような形を取れるのがいい
  • Practical Cloud Security
    • クラウドでの責任共有モデルにおいて、どのようなセキュリティ対策を取れるか
    • Azure, GCP, AWSなどそれぞれのクラウドごとにどのようなセキュリティプロダクトや対策があるか
    • 無限にリソースが必要になるのでやることの優先度付けが必要で、そのためのアセットマネジメントパイプラインの考え方
      • アセットの把握、脅威モデリング、使ってるクラウドの把握(Procurement Leaks)、何をしてるかの把握(Processing Leaks)、ツールの検知(Tooling Leaks)、過剰検知のレポート無視の問題(Findings Leaks)
      • この辺はやり方が違うだけで、昔からやってるセキュリティ対策と流れはそんな変わらない気がした
  • Secure by Design
    • セキュリティ対策に魔法はないのでちゃんとコードで設計しよう
    • 普通の開発者はセキュリティ考えながら実装するのは難しい場面あるし、セキュリティの専門家でも全部を知ってるわけじゃない
    • ちゃんとドメインを設計すれば必然的にセキュリティ対策となる(不用意な入力が入りにくくなる)
    • セキュリティ的なバグはあるかもしれないけど、セキュリティ的な欠陥(設定の問題)は減るだろうと
    • DDDやろうという話
    • 実質DDD本
    • DDDを導入する目的としてこういうアプローチがあるんだという感じで面白かった
  • The DevOps ハンドブック 理論・原則・実践のすべて | ジーン・キム, ジェズ・ハンブル, パトリック・ボア, ジョン・ウィリス, 長尾 高弘 | 工学 | Kindleストア | Amazon

アプリケーション開発もするし、ウェブセキュリティもやるという感じの人があんまりいない感じはするので、この辺興味ある人を探してる。 完全な分業モデルだと設計にある問題は解決しない可能性が高そうなので、Secure by Design的なアプローチが正しいのかとかその辺よくわからないこと多い感じ。

いろんなジャンルの本読んでもやりたいことの根本はそんなに変わらないので、やり方が違うだけってイメージはある。

その他として、Twitterのbotが投稿数が多いとsuspendされるようになったので、代替え方法を実装しないといけないのを思い出した。 GitHub Notificationが止まってるので、faaoを完成させるかslackベースの何かを考えたい。

Twitterのようにいつでも見られる場所にある通知場所が欲しい(一日、数千飛ばしても大丈夫な感じのが欲しい。Slackは大量に流しにくい)。

追記(2020-01-01): github-to-twitter-lambdaDiscord対応の通知システムを実装した。Slackはチームの切り替えが面倒だったので…(独立した通知システムにしたい or 普段見るやつと完全に統合したい)