なんか書くぞ

web系だと思う

brew前提でmacにpyenv入れる

えるきゃぴたそで頑張ります

brew生存確認

$ brew
Example usage:
  brew search [TEXT|/REGEX/]
  brew (info|home|options) [FORMULA...]
  brew install FORMULA...
  brew update
  brew upgrade [FORMULA...]
  brew uninstall FORMULA...
  brew list [FORMULA...]

Troubleshooting:
  brew config
  brew doctor
  brew install -vd FORMULA

Developers:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  http://docs.brew.sh/Formula-Cookbook.html

Further help:
  man brew
  brew help [COMMAND]
  brew home

はい、生きてましたね

$ brew update

からの、

$ brew install pyenv

pyenv入ったかな〜

$ pyenv --version
pyenv 1.0.10

pyenvでpythonを入れます

$ pyenv install --list
ズラーッと出てきます

今回は3.5.1でいいや $ pyenv install 3.5.1

$ pyenv global 3.5.1

すると、

$ python -V
Python 3.5.1

完了

macのPHPのバージョンを7.1にあげる

$ brew update

$ brew install homebrew/php/php71

~/.bashrc

export PATH="$(brew --prefix homebrew/php/php71)/bin:$PATH" を追記

からの $ source ~/.bashrc

$ php -v

すると

PHP 7.1.6 (cli) (built: Jun 23 2017 08:42:20) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

alembicでテーブルができるまで

はい、pythonの話です

まあこれ読めばできるんですけどね Tutorial — Alembic 0.9.3 documentation

プロジェクトのルートで作業するのがやりやすかった

$ alembic init alembic

alembic氏のディレクトリが生える

コマンド打ったディレクトリに alembic.ini ファイルができる

そういえば今回は単一のDBのお話なので、複数のDBを管理したい時はまた別。

複数DB扱うときはこちら↓が参考になるかと思います(試してないので断定してない)

qiita.com

alembic.iniね

# ここ編集するぞ 
# あとDBはあらかじめ作っておく 
sqlalchemy.url = driver://user:pass@localhost/dbname 

$ alembic revision -m "initial create table"

これでスキーマ定義用のファイルが alembic/versions/ 以下にできる

できたやつ.py

Revision ID: {Revision ID}
Revises: 戻す時のやつ
Create Date: 2017-06-12 23:12:13.187440

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '{Revision ID}'
down_revision = '{戻す時のやつ}'
branch_labels = None
depends_on = None


def upgrade():
    op.create_table(
        "user",
        sa.Column("id", sa.Integer, primary_key=True),
        sa.Column("name", sa.String({max_length}), unique=True),
        sa.Column("email", sa.String({max_length}), unique=True),
        sa.Column("password", sa.String({max_length}), unique=True),
        sa.Column("mtime", sa.TIMESTAMP),
        sa.Column("ctime", sa.DateTime, default=sa.func.now())
    )

def downgrade():
    op.drop_table('user')

djangoっぽくuser.pyとかを作ってそこにmodelの定義書いて〜とか考えてたけどできるのかな、知らんけど、うーん。

で、これができたら $ alembic upgrade head ってやるとなんかテーブルできてる。

Error:No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions

Error:No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions

見つけたぞ

stackoverflow.com

build.gradleにこれ追加

 ScalaCompileOptions.metaClass.daemonServer = true
 ScalaCompileOptions.metaClass.fork = true
 ScalaCompileOptions.metaClass.useAnt = false
 ScalaCompileOptions.metaClass.useCompileDaemon = false

ほい

charles氏でアプリから任意のipにアクセスするぞ

別にブラウザとかだったらいいんですけど、リリース前のアプリの検証のためにサーバーの向き先だけ変えたいんじゃよ〜みたいな事がよく起こるのでいい加減メモる

charles氏はこれね

www.charlesproxy.com

用意するもの

  • mac
  • アプリ入ってる端末(アプリとOSのバージョンよく確認しといてね)
  • charles in mac

charlesの設定

Tool => DNS spoofing を選択して、こんな感じで設定します

f:id:koji_koji_koji:20170330221116p:plain

で、設定はこう f:id:koji_koji_koji:20170330222237p:plain

書いたPCにcharles入れ忘れて新たに入れるのめんどいので画像だけ持ってきた

URLの方は普通にコピペで、IPアドレスの方は接続したいstgサーバーのIPアドレスを指定します

次に、 Proxy => Proxy setting でポート番号を適当に指定 そしてこれをメモっときます📝

こんな感じ

f:id:koji_koji_koji:20170330222638p:plain

これでcharles氏の方は終わり

macの設定

システム環境設定 => ネットワークmacに割り当てられたIPアドレスを確認します👀 そしてそれをメモっときます📝

iOSの設定

  • 設定 => wifi => ネットワーク選択 => 最下部の HTTPプロキシ の部分を 手動 に変える
  • ここで、👆でメモっといたIPアドレスとポートをそれぞれ入力します

完了

スッとDNSいじりましたが、作業が終わったら各端末のHTTPプロキシをオフにするのとcharlesの Enable DNS Spoofing のチェックを外すことをお忘れなく

お疲れっした

laravelのmailer

laravelでメール送るメモ。

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class MarkyMail extends Mailable
{
    use Queueable, SerializesModels;

    var $mailVars;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($maiVars)
    {
        $this->mailVars = $maiVars;
    }

    /**
     * メール送信するぞ
     *
     * @return $this
     */
    public function build()
    {
        $this
            ->view($this->mailVars["mailForm"], $this->mailVars["attr"])
            ->subject($this->mailVars['subject'])
            ->to($this->mailVars['toAddress'], $this->mailVars['name'])
            ->bcc(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME'))
            ->from(config('mail.from.address'), config('mail.from.name'));
    }
}

これを app/Mail/ 以下に作っといて、 \Mail::send(new MarkyMail($attributes)); で送る。