夜の歌

プログラミング、音楽、本について緩く書いていきます。

おみくじの結果を返すプログラム

おみくじの結果を返す関数を実装した。

/**
* おみくじ結果を表示する
* @param {string} inputData
* @returns {string}
*/
function showOmikuziResult(inputData) {
    // おみくじ開始
    if (inputData.match(/^omikuzi$/)) {
        // おみくじリスト
        let omikuziList = ['大吉', '中吉', '小吉', '凶'];
        // おみくじ結果を出力
        let result = omikuziList[Math.floor(Math.random() * omikuziList.length)];
        console.log(result);
    } else {
        // 正しい入力値を促す
        console.log('「omikuzi」と入力してください!');
    }
}


Slackとhubotを連携して、面白いことができそう。

Vagrantで作った環境で、ゲスト側の変更がホスト側に及ばない

Vagrantで作った環境で、ゲスト側の変更がホスト側に及ばない問題にぶち当たった。調査し問題を解決

Vagrantfileのconfig.vm.synced_folderのコメントを外して、ゲスト側とホスト側のディレクトリを設定する。

  config.vm.synced_folder "./", "/vagrant"

その後、Vagrantfileがあるディレクトリで下記コマンドを実行。

vagrant reload



■参考

Vagrant の Rsync Synced Folders を設定して、ホスト側とゲスト側のディレクトリを同期する - てくてくテック☆

CakePHP3でテーブルにカラムを追加後、反映されない問題

テーブルに新しいカラムを追加。CakePHP3で作ったシステムで、改修を加えたテーブルに新しいデータを保存しようとしたが上手くいかず。どうやらテーブル構成のキャッシュが更新されないのが問題みたい。

k01ken.hatenablog.com


そこで、新しいカラムを追加したテーブル構成のキャッシュを削除し、新しいデータの保存処理を実行したら上手くいった。こういったことがあるから、CakePHP3のソースを読んでいった方がいいかも。

FaceBookログインがエラーが発生。SDKのバーションをv5.6系に上げて解決。

FaceBookログインがエラーになっていたので対応した。FaceBookログインボタンを押下しコールバックURL読み込んだ後、再度アクセストークン取得する際に下記エラーが出力された。

URLを読み込めません: このURLのドメインはアプリのドメインに含まれていません。このURLを読み込むには、アプリ設定のアプリドメインにすべてのドメインサブドメインを追加してください。


FaceBookのアプリ設定画面にドメインは正しく設定しているし、自サイトのコードもいじっていない。他に変更があり問題になりそうな箇所として、PHP版のFaceBookSDKかなと思ったので調査。PHP版のFaceBookSDKの公式リポジドリに、同様の問題にぶつかっている人がイシューを書いていた。

github.com
どうやら、SDKのバーションをv5.6系に上げれば問題は解消される書いている。さっそく、バージョンを上げたらFaceBookログインのエラーは直った。

ただ、SDKのバーションが上がったのは2ヶ月前で、今頃FaceBookログインエラーに繋がったのは謎だ。推測として、最近FaceBookログインの機能のうちユーザーから許可してもらえるのがデフォルトでemailとprofileだけになり、その対応とかが関係ありそう。その他の機能をユーザーから許可してもらうには、FaceBookの審査が必要。

今後、FaceBookログインの仕様変更をおっていこう。

4月22日

自分が作っているサービスでFaceBookログインを使ってログインするようにしているけど、現在使えなくなっている。ログインできなくなったのは、先週から。色々検索した結果、FaceBook側が行った仕様変更とかが原因かも。

developers.facebook.com



ドキュメントが英語なので、調べながら対応していく。

『人類5000年史I: 紀元前の世界』出口 治明

最初読んだ時に、さらっと読んでしまったので再読した。40億年前からBC1年まで。範囲長い。

出口さんの世界史の本には、よくその時代の主要国のGDP表が書かれていて、当時の主要国の国の力を理解するのに役立つ。本書に書かれているBC1年GDP表だと、漢帝国GDPは26.2%になっている。最近のイメージの影響で、欧米がずっと世界を支配していたと思ってしまうけど、昔は中国という存在もあったと気づかされる。現在もまた、強くなってきているということかなぁ。

ローマ人の物語』を何冊か読んでいるせいで、カエサルが出てくると面白い。出口さんがカエサル同様、不世出の政治家と仰っているダレイオス一世と始皇帝の本も読んで見たい。さて、次の巻はいつ頃出るのかな。

3月31日

動画レビューサイトは、少しずつだけど進んでいる。当初はYouTubeDataAPI を使って作ろうと思っていたけど上手くいかず。そこで入力フォームにYouTubeURLを入力してもらって、そこから動画IDを取得してIFramePlayerAPI を使って表示する方法に変更。

ただ、ちょっと実装で悩んでいた。IFramePlayerAPI が読み込まれたら、プレーヤーAPI 用のJavaScript のダウンロード開始され、完了するonYouTubeIframeAPIReadyが呼び出される。プレーヤーAPI 用のJavaScriptの関係上、onYouTubeIframeAPIReadyはグローバルに実装されないといけない。onYouTubeIframeAPIReadyには、動画IDを設定しないといけないので、動画IDを入れておく変数もグローバルに実装しようかなと一旦は考えた。

そこで何が問題かというと、最近触ったJavaScriptにグローバルに宣言されている変数が多くて、リファクタリングする際に影響範囲の調査に時間がかかったので、今後のことも考えてグローバルな変数を使うのはやめたかった。まぁ、今気づいたけど名前空間を使えばいいのか。はい、終了。