タイトルの通り、ランダムなキーワードで、ニュースを見れるようなサイトを作ってみました。
※投稿後、早速不具合を発見しました。
※iPhoneやPCの言語設定を「日本語以外」にしていると、うまく動作しないかもしれません。
→リクエストURLで言語の指定をすることで回避できました
結論
サイトはココです。
ソースも公開しています。
(クソコードであることはご了承ください)
解説
ソースコードの解説を少ししてみようと思います。
まず、ディレクトリ構造は次のようになっています。
.
├── README.md
├── dockerfiles
│ ├── Dockerfile_mysql
│ ├── Dockerfile_php
│ └── docker-compose.yml
└── mountpoint
└── php
├── csv
│ ├── all.csv
│ ├── citys.csv
│ ├── country.csv
│ └── knowledge_category.csv
├── index.php
├── mario.gif
└── style.css
dockerfilesには、「PHP + Apache + MySQL」の環境が構築できるdockerファイルがあります。
環境構築するときは、dockerfilesディレクトリに入り、docker-compose up -d --build
を実行すればOKです。
すると、「mountpoint/php」配下がApacheのドキュメントルートとなります。
つまり、「http://localhost」にアクセスすると、「mountpoint/php」配下のコンテンツが表示されます。
次に、index.phpの処理をざっくりと説明すると、以下のようになっています。
- キーワードが詰まったcsvファイルをサーバ(PHP)でjsonに変換し、フロント(JavaScript)に渡します
- フロントがそれを受け取り、jsonファイルをそれぞれのジャンルの配列に変換します
- ボタンが押された時に、配列に入っているキーワードをランダムに抽出し、各サイトで検索をかけます
最後に
このサイトを作ろうと思ったきっかけは、Wikipediaの記事をランダム表示するChromeプラグインを作ったことによります。
当たり前だと思われるかもですが、何かを検索する時は、自分の知っている(あるいは知りたいと思っている)キーワードでしか検索することができません。
それだと、知見を広げることが難しいんじゃないだろうか、とつくづく感じていました。
話が少しそれますが、DuckDuckGoなどの、プライバシー保護をコンセプトにしたサービスが普及しつつあります。
これらの動きから推測すると、今後はこのような「秘匿性」や「乱雑性」を売りにしたサービスがトレンドになるのではないかと思っています(少なくとも私はそういうものに惹かれるので、今回のようなサイトを作っています)。
今回作ったものは、デモ的なものなので、気が向いたときにでも、より本格的なものを作ろうと思います。
コメントを残す