Murga

個人的に言いたいコト・主張・気持ち。

初めて GitHub でプルリクを出してマージしてもらった

GitHubの教科書 チーム開発を円滑、かつ正確に行うための実践方法

GitHubの教科書 チーム開発を円滑、かつ正確に行うための実践方法

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ

Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ

GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ

GitHubツールビルディング ―GitHub APIを活用したワークフローの拡張とカスタマイズ

この前、初めて GitHub でよその人が作っているオープンソースライブラリにプルリクを出して、めでたくマージしてもらった。

ngx-bootstrap

プルリクを出したのは、ngx-bootstrap というライブラリ。コレは Angular 上で Bootstrap のプラグイン部分を動作させるためのモノで、他にこれ以上機能が揃っている Angular + Bootstrap なライブラリも見当たらないので、実質的にデファクトなヤツ。

とはいってもまだまだ機能は出揃っておらず、不完全なところも散見されるライブラリだ。開発中、って感じで良い。

自分が作ったモノ

そんなワケで今回僕がプルリクを出したのは、カレンダーから日付を選択入力できる「DatePicker」の日本語対応部分の一処理だ。

入力値をパースして Date オブジェクトに直す時に、「年月日」などの表記をスラッシュ記号に直したりして、パース可能にするための関数 #preparse() を作った。

別の言語ではこの #preparse() 処理が実装されているモノもあったので、そのコードを参考に、日本語環境で入力されうる漢字などを置換しておく処理を書いた。

プルリクの様子

以下がそのプルリク。

ロクにコントリビューションのルールも読まずに preparse() メソッドだけ追加したコードをプルリクに出していて、オーナーの Valorkin 氏から「イイネ!でもテスト書いてくれる?」とレスされている。

ただ、同時に貼られていた URL が moment.js のテストで、「ワイが作った関数に合致するテストコードないンゴ…」な状態だったので、既に作られていた英語版のテストコードを流用して日本語版のテストコードを書いた。その上でコードカバレッジが不足しているところはテストを追加した。

そしたら fdescribe() と書いたままコミットしてしまうという凡ミスをやらかしていたのですぐに修正。

とりあえず直したら CI のテストがクリアできて、YevheniiaMazur 氏から「良いんじゃない?」とお墨付きをもらえた。

コレを確認した Valorkin 氏によって、めでたく development ブランチにマージしていただいた、というワケ。

初めてマージされたので、「人生で初めてプルリクをマージしてもらえて嬉しいです」と伝えたら、

Hohoho, my congratulations! Welcome to open source :)

「おめでとう。オープンソースにようこそ」

と言ってもらえた。

小さな「貢献できた」感

ネット上の小さなライブラリの、すごく小さな一機能だけど、自分がやったら喜ばれた、自分がやったことを受け入れてもらえた、という喜びは案外大きかった。

コレ自体で何かお金になるワケでもないし、正直僕自身はこの DatePicker という機能を全然使ってはいないのだが、何かちょっとでも役に立ったのなら良いのかなぁ、とか思った。

…バグが出たらゴメンナサイ…w

HTML に「Chuck Norris カラー」がある?

ホームページ辞典 第6版 HTML・CSS・JavaScript

ホームページ辞典 第6版 HTML・CSS・JavaScript

「HTML で ChuckNorris (チャック・ノリス) ってカラー名が使えるんだけどなに?」という StackOverflow の質問があった。

<body bgcolor="chucknorris"> test </body>

これでどうも #c00000 と同じ色になるようだ。

不思議な挙動だが、こうなるのには理由があって、ちゃんと回答もあった。

It's a holdover from the Netscape days:

Missing digits are treated as 0[...]. An incorrect digit is simply interpreted as 0.
For example the values #F0F0F0, F0F0F0, F0F0F, #FxFxFx and FxFxFx are all the same.

つまり、大昔はネットスケープ時代にできた仕様で、カラーコードに不正な文字列が混じっているとそれを 0 と見なして解釈するようだ。

chucknorris becomes c00c0000000

chucknorris という文字列は c00c0000000 と見なされ、RGB で4桁ずつ区切られ、各4桁の右2桁がちぎられて、最終的に #c00000 というカラーコードとして扱われるのだ。

コレを応用すれば、abcdef のいずれかを含んだ単語を組み合わせて、「なぜかカラーリングされる不思議な HTML」が書ける。

See the Pen Chuck Norris = Red by Neos21 (@Neos21) on CodePen.

文字列を3等分し、16進数で解釈できない文字が 0 扱いになることを考えながら単語を構成するの楽しい。

ちなみに CSS では使えない。HTML の bgcolor 属性とかでのみ使える、懐かしの技。