UGCをそのまま鵜呑みは危険です

個人開発

こんにちは。趣味グラマのNobu(@nm_aru)です。

タイトルの通り、UGC(User Generated Content)を鵜呑みにすると危険だなと感じる事が、個人開発の調べ物をしている上でありました。

自分もブログを書いているので、自戒を込めて残しておこうかなと。

UGCって何って感じの人もいるかもしれませんが、エンジニア界隈で言えばStack OverflowやQiita等のユーザーによって生み出されるコンテンツの事です。

ユーザー生成コンテンツ - Wikipedia

とあるエラーを調べた時に感じた違和感

Flutterのバージョンアップをしたので、念のためにflutter doctorを実行したところ、以下のエラーが表示されました。

[!] Android Studio (version xxxxx) // versionは残し忘れてました…
    ✗ Unable to find bundled Java version.

早速、「Unable to find bundled Java version.」このキーワードで検索すると、解決法を紹介してくれているサイトが沢山出てきます。

Unable to find bundled Java version. - Google 検索

上位のどのサイトも全く同じ解決法が書いてありますが、読んでみると違和感があります。

cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk // ← なぜまたjdkにリンクを…?

2行目まではフムフムという感じですが、3行目で2行目と同じ「jdk」という名前でシンボリックリンクを作成しています。

しかし、シンボリックリンクは名前が被った場合、リンク元の名前(今回だと「JavaAppletPlugin.plugin」)でリンクを作成するので、上記のコマンドで3行目に「jdk」を指定する意味はありませんし、省略しても同じ結果になります。

UGCからのコピペによる問題解決と、コピペによるUGC再生産

元ネタを探していくと、恐らくStack Overflowの以下の投稿なんだろうと思いました。

Unable to find bundled Java version on Flutter
I have Android Studio version 3.0 When I use the command flutter doctor it shows me the following, Unable to find bundled Java version My current Java version...

この投稿を参考にして問題解決に至った人たちが、同じ悩みを抱えた人(例えば私とかw)向けに日本語のブログを書いてくれて、それが広まっていったのだと思います。

しかし、今回の内容であれば実行しても別に害の無い物ですが、投稿者と読者では当然環境が異なるため、内容によっては何も考えずコピペして実行すると悲惨な事になる場合もあり得るなと思いました。

そして、自分もStack Overflowの内容をブログで紹介したりしているので、この辺は気を付けないといけないなと感じました。

ちなみに、UGCのコピペでもっと危険な事例としてはこんなのもあるようです。

StackOverflowからのコピペをやめろ。今すぐにだ。 - Qiita
Original article: その昔コピペ...

そして、今回のエラーの件については、私の場合はAndroid Studioのalpha版をstable版に入れ替える事で直りました。

まとめ

UGCはインターネットの素晴らしい文化ですが、悪意の有る無し関係なく、鵜呑みにするのは良くないなと改めて感じました。

自分の頭で考えるのは、脳細胞の老化を遅らせるためにも大事ですね。

コメント

タイトルとURLをコピーしました