Reddit で話題になったニュース13選 2019

主に [r/programming](https://www.reddit.com/r/programming/) から、筆者の気になった記事を紹介。

Note: 筆者の興味のある分野に偏っているので注意。

# 1月

## GitHub が無料でプライベートリポジトリを無制限に作れるようになった

https://www.reddit.com/r/programming/comments/adjw6g/github_now_gives_free_users_unlimited_private/

GitLab や Bitbucket は以前からプライベートリポジトリが無料で利用できたが、ついに GitHub でも可能となった。

無料プランの場合、プライベートリポジトリ1つあたり collaborator は3人までしか追加できないので注意。ただし、学生ならば GitHub Pro プランが無料で利用[できる](https://education.github.com/benefits/offers)模様。

Redditor の反応はおおむねポジティブで、GitLab や Bitbucket を使わずに済むから嬉しい、Microsoft に買収された影響だろうか、など。

## ホスティングサービス GoDaddy が Web サイトにこっそり JavaScript を挿入している？

https://www.reddit.com/r/programming/comments/afgbww/godaddy_is_sneakily_injecting_javascript_into/

ドメインレジストラ かつ Web ホスティングサービス である GoDaddy で Web サイトを運営しているある開発者が、HTML に下のような見知らぬ `<script>` タグが挿入されているのを発見した、という内容のブログ記事。

```html
<script src='https://img1.wsimg.com/tcc/tcc_l.combined.1.0.6.min.js'></script>
```

GoDaddy の[公式ヘルプページ](https://au.godaddy.com/help/why-am-i-signed-up-for-real-user-metrics-31969)によるとこれは Real User Metrics という統計情報を収集する機能で、アメリカでの利用者や cPanel Hosting の利用者はデフォルトでこの機能がオンになっているとのこと。幸い opt-out も可能。

Reddit では以前から GoDaddy の評判が非常に悪く、今回も「またか」という感じの反応。他のサービスを使うべき、例えば NameCheap や Digital Ocean がいい、GDPR に違反している、など。

# 2月

## Bootstrap 5 は jQuery に依存しなくなる

https://www.reddit.com/r/webdev/comments/aq3zu4/bootstrap_5_will_remove_jquery_as_a_dependency/
https://www.reddit.com/r/javascript/comments/aq3zfm/bootstrap_5_will_remove_jquery_as_a_dependency/

v4 までは Bootstrap の一部機能に jQuery が必要だったが、v5 ではついに必要無くなる模様。v5 はまだ開発段階で、v4 から大きな変更にはならないと[説明](https://blog.getbootstrap.com/2018/12/21/bootstrap-4-2-1/#whats-next)されてる。

Redditor の反応は、Popper.js への依存もなくしたほうがいい、CSS だけの Bulma のほうがいい、jQuery は嫌われてるけどコードが短く書けるなど有用性はある、など。

# 3月

## Google が .dev ドメインを公開

https://www.reddit.com/r/programming/comments/aw976t/google_opens_dev_domain_for_everyone/

Google が .dev トップレベルドメインを開放し、ドメインレジストラから誰でも入手できるようになった。[slack.dev](https://slack.dev/)、[mdn.dev](https://mdn.dev)、[nodejs.dev](https://nodejs.dev/) などのサイトが既に存在する。

Redditor の反応は、"<自分のファーストネーム>.dev" を取るぞ！、なんでみんな盛り上がってるんだ？、かっこいい URL が欲しいんだろ、など。

# 5月

## Microsoft が新ターミナル「Windows Terminal」を発表

https://www.reddit.com/r/programming/comments/blewqm/microsoft_unveils_windows_terminal_a_new_command/

新しいターミナルアプリである Windows Terminal は既存の CMD、PowerShell、WSL をまとめて使用でき、また「タブ」が使えるようになっている。絵文字やリガチャのサポート、DirectXによる高速なレンダリングなど全体的にパワーアップする模様。現在 Microsoft Store で[プレビュー版](https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701)が公開されている。

Redditor の反応は概ね良好で、Microsoft がこんなことをするのは信じられない、奇跡だ、Explorer にもタブが欲しい、VS Code と WSL のおかげで Windows での開発がしやすくなってる、など。また開発チームのメンバーがコメントでいくつか[質問に答えている](https://www.reddit.com/r/programming/comments/blewqm/microsoft_unveils_windows_terminal_a_new_command/emo5uz2?utm_source=share&utm_medium=web2x)。

## Windows Linux for Subsystem 2 は本物の Linux カーネル 上で動く予定

https://www.reddit.com/r/programming/comments/blpbz2/windows_10_linux_subsystem_will_ship_with_a_real/

現在の WSL は Windows の API で Linux の API をエミュレートしており、本物の Linux と比べてファイルシステムのパフォーマンスが悪い、Linux ドライバーが使えないなどの問題がある。WSL 2 ではフルで Linux カーネルを Windows 内に搭載することにより、ファイル操作のパフォーマンスが格段に向上する見込み。

Redditor の反応は良好で、2019年は Linux Desktop の年になる、次の Windows は完全に Linux ベースになるかも、次は WSL 用に Wine を再実装してほしい、など。

## Google Chrome 拡張機能で広告ブロック機能が制限される

https://www.reddit.com/r/programming/comments/bumy8i/chrome_to_limit_full_ad_blocking_extensions_to/

Google Chrome の拡張機能で広告のブロックを目的としたものは多くあり、多くのユーザーに使用されている。uBlock Origin や Ghostery といった拡張機能は Web Request API を使用してリクエストをブロックしており、Chrome 拡張機能の新バージョンである Manifest V3 ではこの API が使用できなくなる模様。ユーザーからは、Google が自分の広告収入を守るために広告ブロック機能を制限しようとしている、と批判の声があがった。

これに関して、Chromium チームは誤解であると[説明](https://blog.chromium.org/2019/06/web-request-and-declarative-net-request.html)し、現在拡張機能によって使用されている Web Request API はブロッキング API であるとともにリクエストに含まれる様々なシークレットなデータにアクセスできてしまうのに対して、新しい Declarative Net Request はこれらの問題を解決する、としている。Declarative Net Request はルールベースであり、現在 30,000 個のルールまでしか指定できないなど色々な制限がある。

Redditor の反応は全体的に Google に批判的で、Firefox に移ろう、Chrome を使う理由はない、Microsoft が新しい Google で Google が新しい Microsoft だ、など。

## GitHub がスポンサー機能を追加

https://www.reddit.com/r/programming/comments/bs0lxy/github_launches_sponsors_lets_you_pay_your/

GitHub は開発者に経済的支援をできる Sponsors を開始した。現時点では Beta であり、スポンサーシップを受けられるユーザーは限定されている。将来的には、OSS に貢献するどのユーザーもスポンサーシップを受けられるようになる。支払われた金額は100％対象の開発者に渡り、さらに今後一年間は、決済手数料を GitHub が負担する。

Redditor の反応はおおむね良好で、これは OSS にとってデカイ、issue に懸賞金をかける機能も欲しい、一回限りのチップを渡す機能もほしい、など。

# 6月

## Google Fonts の必要な文字だけリクエストを最適化しよう

https://www.reddit.com/r/webdev/comments/c0iqt5/optimising_google_fonts_requests_shave_off_up_to/

ニュースというより Tip だが、Google Fonts の URL でパラメーター `text=` に必要な文字を指定することで、その文字のデータだけリクエストでき、ダウンロード量を劇的に減らすことができる、ということが紹介されている。タイトルやロゴに特別なフォントを使いたい、というときに便利である。

[該当ドキュメントページ](https://developers.google.com/fonts/docs/getting_started#optimizing_your_font_requests)

Redditor の反応は賛否両論で、Google Fonts はサイズがそもそも大きいからパフォーマンスを気にするなら別のを使うべき、キャッシュの効果が薄れる、ロゴを SVG にするよりはアクセシビリティ的にいい、など。

# 8月

## npm パッケージがターミナル上に広告を表示するのを禁止に

https://www.reddit.com/r/programming/comments/cxg99h/npm_bans_terminal_ads/

ESLint を利用した JavaScript の style guide である [standard](https://github.com/standard/standard) というパッケージが、インストール時にスポンサーの広告を表示し始めたことが悪い意味で話題になり、それを受けてか npm は「インストール時や実行時などに広告を表示するパッケージ」「パッケージ自体が広告であるもの」を禁止するとのこと。

Reddit ではこの npm の対処に関して概ね賛成で、上述のパッケージの作者に呆れを示すコメントが多い。

## セキュリティソフト Kaspersky が勝手に Web ページに ユニークな ID をインジェクトしていた

https://www.reddit.com/r/programming/comments/cs2x8x/kaspersky_av_injected_unique_id_allowing_sites_to/

この記事はセキュリティソフト Kaspersky が、訪れるすべてのページの HTML に以下のような script タグを挿入していたことを報告している。

```html
<script type="text/javascript" src="https://gc.kis.v2.scr.kaspersky-labs.com/9344FDA7-AFDF-4BA0-A915-4D7EEB9A6615/main.js" charset="UTF-8"></script>
```

この URL には UUID が含まれているが、これは Kaspersky がインストールされているデバイスごとにユニークに割り当てられており、サイト側がこの ID を用いてトラッキングや攻撃をすることができてしまう、と述べている。そしてこの記事の筆者がこの件について Kaspersky に問い合わせたところ、修正パッチが公開され、Kaspersky のバージョンが同じであれば誰でも同じ ID となるように変更されたが、依然として攻撃者に有用な情報を与えることになる、と指摘している。

Redditor の反応は Kaspersky に対して非常に批判的で、Kaspersky を信用するな、驚きはない、自分は知ってた、自分は Windows Defender しか使わない、など。

# 9月

## 元 Google 社員が面接で志望者に解かせた問題を解説

https://www.reddit.com/r/programming/comments/cz6f5r/former_google_engineer_breaks_down_interview/

元 Google 社員が自ら Medium で、自分が Google に在籍していたときに志望者の能力を試すために使った問題について説明している。彼は現在 Reddit で働いているとのこと。

この記事で解説されている問題は、「1フィート=12インチ、1フィート=0.3333ヤード、のようにいろいろな長さの単位のペアとその比率が与えられ、さらにある2つの単位が与えられたときに、その比率を返すアルゴリズムを考えろ」というものである。ナイーブなアルゴリズムから始めて、必要な思考プロセス、発想、計算量の評価とともに少しずつアルゴリズムを改善していく過程が説明されている。さらに採用者としての目線で、志望者がどこで詰まるか、能力を評価するためにどこを見るかなどについても解説している。

なお、この記事はシリーズになっており、他にもいくつかの質問/問題を[解説している](https://medium.com/@alexgolec/introducing-google-interview-questions-deconstructed-a012e41ea631)。

Redditor の反応は良いとも悪いとも言えず、こういう頭をひねる問題は面接ですべきではないというコメントも多い。難しい問題を与えて解けるかどうか試す企業ばっかりだ、スタートアップ会社が登録フォームをメンテナンスする人を募集するときにこの問題を使い始めるぞ(皮肉)、すべてはグラフの問題なんだ！、自分は2からNまでの素数をすべて出力せよという問題を与えた、など。

## Microsoft がコーディング用フォント「Cascadia Code」を公開

https://www.reddit.com/r/programming/comments/d64aq0/microsoft_released_the_cascadia_code_font/

Microsoft が新しい等幅リガチャフォント「Cascadia Code」をリリースした。プログラミングやターミナルでの使用を想定している。GitHub から[ダウンロード](https://github.com/microsoft/cascadia-code/releases)できる。もともと Windows Terminal プロジェクトの一環として作られたフォントであり、Windows Terminal のコードネームが Cascadia であったことからこの名前がついている。

![ss](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/446383/195fc67b-56cf-f5c7-3970-6cd6de191ba9.png)
([公式アナウンスページ](https://devblogs.microsoft.com/commandline/cascadia-code/)より)

Redditor の反応はあまり良くなく、Consolas の劣化版だ、Fira Code からリガチャを使い始めてもう元には戻れない、`***`のリガチャ意味はなんだ？、`0`の中がスラッシュではなく点なのが嫌だ、など。