木木木

Swift / Ruby on Railsなどの学習メモ。


Macで自分のipアドレスを調べる

WiFi利用の際のIPアドレスはとりあえずこのコマンドで表示される。

$ ipconfig getifaddr en0

Macではen0 (イーサネット0の略)というインターフェイスWiFiに割り当てられているので、このコマンド一発で表示される。

ネットワークサービスの一覧を表示

$ networksetup -listallhardwareports

すべてのネットワーク設定を見たい場合

$ ifconfig

Android Studio を立ち上げずにAVDエミュレーターをローンチする

以前は重くて使い物にならないと感じていたAVD。
開発のときはもっぱらGenyMotionを使用していた。

しかし、最近はAVDの方が動作が軽い!
ので、AVDを使いたいが、FlutterやReact Nativeで開発している時にいちいちAndroid Studio を立ち上げるのが面倒。
以下の方法でコマンドから一発で立ち上げることができた。

まずは、デバイス名を調べる

$ ~/Library/Android/sdk/emulator/emulator -list-avds

これが必要なのは最初の一回だけ。 出てきたデバイス名をメモる。

そしたら、次回からはこちらで一発起動が可能。

$ ~/Library/Android/sdk/emulator/emulator -avd デバイス名

atomでrubyの文字列をシンボルに置換する

プログラム上でシンボライズするって話じゃなくて、
ソースコード上で文字列になってるのを一括置換で 文字列 => シンボルにするメモ。
Atomの検索 / 置換は正規表現が使えるので以下が可能。
Replace AllすればOK。

f:id:device_me:20181105190736p:plain

プロダクションのWordPressをローカルにDockerで再現する[調査中メモ]

WordPressって別に詳しくないしあまり好きではない。
できるだけ触りたくないんだけど、男には長い人生においてWordPressを触らないといけない事象がしばし発生する。

今まさにやってて、うまくいかなかったんだけど、とりあえずメモを残しておく。
いいやり方ご存知の方いらっしゃったら教えていただけますと助かります。

docker-composeの設定

まずはプロダクション環境をローカルで再現する所から始める。
docker-composeを使う。

のだけど、プロダクションのDBダンプファイルをそのまま dbのvolumeに

./db-data/mysql.dump.sql:/docker-entrypoint-initdb.d/install_wordpress.sql

とかって設定してdocker内wordpressの初期データとして入れようとしても、ちゃんと動いてくれない。
多分httpアクセスあったらhttpsで自動リダイレクトする設定が効いてるような気がしてて、
DBのそこの部分を書き換えられればちゃんと動くような気がしてるけど未調査。

docker-compose.yml

version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
      - "./.data/db:/var/lib/mysql"
      # 下記はちゃんと動かなかった
      # - ./.db-data/mysql.dump.sql:/docker-entrypoint-initdb.d/install_wordpress.sql
    restart: always
    environment:
      MYSQL_ROOT_USER: root
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    links:
      - db
    ports:
      - "8000:80"
    restart: always
    volumes:
        # テーマファイルをプロダクションからDLして./themes/my_themeに置いておく
        - ./themes/my_theme:/var/www/html/wp-content/themes/my_theme
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DEBUG: 1

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=db
      - PMA_USER=root
      - PMA_PASSWORD=wordpress
    links:
      - db
    ports:
       - 8080:80
    volumes:
       - /sessions
$ docker-compose up

phpmyadminも入れてみて、ここからプロダクションのDBダンプをインポートしてみたけど、それもうまくいかなかった。

themeファイル以外をdockerコンテナ内にぶちこむ

プロダクションから以下をDLしてきて、volumeなりを使って同じ場所に入れておく - wp-content/uploads/ - wp-content/plugins/

DBをエクスポート => dockerコンテナでインポート

管理画面でDBのエクスポート、インポートができる。
ほんとはdocker-compose.ymlでスマートにやりたいけど、一旦場当たり的に。
f:id:device_me:20181024093826p:plain

パーマリンク設定の反映

管理画面の設定 > パーマリング設定 より。
なぜかこれはDBインポートしても反映されてなかったので、手動で設定。

これで一旦プロダクションの状態を再現できた。

結論

WordPress触りたくない

ubuntuの勉強メモ

$ #ユーザーを作成
$ adduser <ユーザー名>

$ # sudo グループに追加
$ gpasswd -a <ユーザー名> sudo

$ ユーザー切り替え
$ su - <ユーザー名>

$ ユーザー切り替え (PATHなどの環境変数を引き継がない)
$ su <ユーザー名>

Kindleでamazon.com (co.jpではなく) に接続される時の対処法

Kindle for Macを利用してKindle本を読もうとしたら、
購入した本がKindleサーバーから同期されず、全然ダウンロードされません。
何でやろ、と思ったら、どうやら日本のAmazon (amazon.co.jp) サーバーではなく、USのamazon.com サーバーにつなぎに行ってるみたいでした。

理由は全くわかりません。
が、対処法は分かりました。

amazon.comに接続される場合は、amazon.co.jpでパスワードを変更せよ

amazonのカスタマーサポートに問い合わせた所、
「原因はわかりませんが、とにかくamazon.co.jpでパスワードを変えてみてください」と言われました。
言う通りに変更してみると、kindleも即座にco.jpにつなぎに行くようになり問題解決!
技術書などはiPhonekindleでなく、Mackindleの方が読みやすいのでありがたい。
またkindleロックインが進みました。