video play, Video upload, 360 photo
HLS
Http Live Streaming。つまり、くそでかい動画ファイルをちょっとずつクライアントに垂れ流すストリーミング配信がHTTPプロトコルで実現できる技術。必要に応じて使ったほうがいいかも。
Facebook User AccessTokenの有効期限は2種類
ウェブ上のアクセストークンの寿命は、多くの場合、約2時間ですが、必要に応じて自動的に更新されます。特にサーバー側でより長期的なウェブアプリ用のアクセストークンを使用する必要がある場合、長期トークンを生成する必要があります。長期トークンの有効期限は、通常、約60日間です。
あまり理解できていないが、Facebook Loginの際にユーザ基本情報を取得。その後1週間位経ってから、追加でPhoto情報を取得したいってなったら、再度AccessTokenを発行する(=ユーザにログインし直してもらう)必要があるのかな?面倒くさい
dump exportとimport
mysqldump Export ↓ レコード削除 ↓ Alterテーブルでカラム追加する ↓ Import
エラーなくImportできた。
# Export docker exec -i docker_mariadb_1 mysqldump -uroot <DB Name> > ./01221441.sql # Import docker exec -i docker_mariadb_1 mysql -uroot <DB Name> < ./01221441.sql
docker nginxでcontainer --> hostへプロキシしたい
前提
- docker-composeを使う
- nginxはコンテナを使う
- host(mac)上でNodejsサーバが動いている
- browser --> nginx --> nodejs という通信を実現したい
課題1
- Nginx側でプロキシする先のIPがわからない。具体的には
proxy_pass
で設定するIPのこと - host側で
ifconfig en0 | grep "inet " | cut -d " " -f2
-->10.13.165.28
のように取得できるIPを設定する必要がある
手段1
素直にIPをdocker-compose.ymlに直書き。欠点はIPが環境によってかわること
Dockerコンテナ内部からホストのSMTPを利用したい - Qiita
手段2
直書きではなく頑張って、動的にhostのIPを取得して、nginxのconfigファイルに渡す。どうやって…?
コンテナ内からホストのIPを知るコマンド。172.18.0.1
のようなアドレスが取得できるが下記のようなエラーになる。macが持つrealなprivate ipが取得できていないから? 192.168.xx.xx
or 10.13.xx.xx
みたいなやつがほしい。
/sbin/ip route|awk '/default/ { print $3 }'
/ # wget 172.18.0.1:1337 -O - Connecting to 172.18.0.1:1337 (172.18.0.1:1337) wget: can't connect to remote host (172.18.0.1): Connection refused
ちなみにmac側で自分のprivate ipを知るコマンド
ifconfig en0 | grep "inet " | cut -d " " -f2 ipconfig getifaddr en0
この辺が答えになるかも。 How to get the IP address of the docker host from inside a docker container - Stack Overflow
核心に迫ってきた。nginxの設定ファイル Document how to connect to Docker host from container · Issue #1143 · docker/docker · GitHub
172.18.xx.xx
は何者?
Dockerのネットワークを理解するために覚えたことまとめ - Carpe Diem
そして最後は公式ドキュメント
google-map-reactの使い方とoptions
What's this
シンプルで使いやすいGoogle Maps APIのreact向けwrapper
maps options
Google Maps JavaScript API V3 Reference | Google Maps JavaScript API | Google Developers
code example
<div className={`container`}> <GoogleMap options={MAP_OPTIONS} bootstrapURLKeys={URL_KEYS} defaultCenter={this.props.center} defaultZoom={this.props.zoom} onChange={this.onChange.bind(this)} > {markers.Markers.map((marker, index) => <MyGreatPlace key={index} onTouchTap={() => this.onTapMarker(index)} lat={marker.lat} lng={marker.lng} text={index.toString()} /> )} </GoogleMap> </div>