つよくなるブログ

その場にとどまるためには、全力で走り続けなければならない

Mac に Homebrew で任意のバージョンの PostgreSQL をインストールする

数年前にやったときはソースから入れて苦戦した記憶があるので, 最新の簡単な方法をメモ.

Homebrew Formulae からインストールしたいバージョンを選択

formulae.brew.sh

brew でインストール

$ brew update && brew install postgresql@9.5

現行版(10.4)の場合は brew install postgresql でok

起動

$ brew services start postgresql@9.5

psql コマンドにエイリアスを設定

$ alias psql='/usr/local/opt/postgresql@9.5/bin/psql'

バージョン確認して完了

$ psql --version
psql (PostgreSQL) 9.5.13

GitHub で fork 元リポジトリの Pull Request をローカルで確認する方法

目的

fork したリポジトリで開発中に, fork 元リポジトリに誰かが PR を出してくれて
そのコードをローカルで確認したい.

手順

fork したリポジトリを clone

$ git clone git://github.com/forked_rep

fork 元リポジトリをリモートに追加

$ git remote add upstream git://github.com/origin_repo

fork 元のリポジトリを fetch

$ git fetch upstream pull/pull_request_number/head:pull_request_branch_name

ブランチに切り替え

$ git checkout pull_request_branch_name

まとめ

$ git clone git://github.com/forked_repo
$ git remote add upstream git://github.com/origin_repo
$ git fetch upstream pull/pull_request_number/head:pull_request_branch_name
$ git checkout pull_request_branch_name

Etheremon Meetup #2 に参加した

ブロックチェーンゲーム Etheremon のミートアップに参加したメモと感想をまとめておこうと思う.

connpass.com

オープニング

主催: Blockman
暗号通貨なkimさん: https://twitter.com/kimnao3333 の挨拶

ゲストによるトーク

はるか先生は初顔出しだったとのこと!

現在のイーサエモンについて

できること by ダプマさん

  • レベル上げ
  • バトルして勝ったらトークンがもらえる

現状は上記 2 つだが今後の発展も含めて期待している.

dApps としての立ち位置 by ダプマさん

dApps で 2,3 位(多少の変動はある

  1. CryptoKitties
  2. AXIE infinity
  3. Etheremon

アクティブユーザー(200~300 人ぐらい
-> 現状大きくプロモーションが打ててない
-> 遊べるコンテンツが少ない
-> コンテンツが確立したらユーザを増やしに行くのでは?

最近の動向 by ダプマさん

アドベンチャーモードのプレセールが行われた

ゲーム内の土地を手に入れることができる.
プレセールで 200~300ETH ぐらい集まった.
ユーザが遊ぶごとに配当(トークン)がもらえる.

※記事にない不明な点があれば, ダプマさんに twitter で連絡すればすぐ記事にしてくれる(!)

最近の動向 by はるか先生

アクシー、イーサタウンといった次の dApps が出てきているので, プラットフォームとして展開していかないと
あとから出てくる dApps に抜かれてしまうので動向が気になる.

  • 今日(2018/07/04)のメンテでオフチェーンモードの実装が入って快適になった
  • 今後は Zilliqa に対応していく

今後の期待していることろ by ダプマさん

  • バトルはオフチェーン, 経験値の受け取りがオンチェーンに記録するという実装になっている(はず)
  • VR モード対応
    -> Decentraland のとの連携がうまくいけば、ユーザを引き込める
    -> バトルシーンを VR で見ることができるようになる -> 進捗としては, Discord の開発チャネルでデモが出ている程度

今後の期待していることろ by はるか先生

  • ゲーム性の向上
  • 資産性の向上
  • 日本製の dApps ゲームがもっと出てきて欲しい
    -> ERC721 を使った資産性をもたせたゲームを作って欲しい
    -> crypton 豚を育てるゲームがある

開発チームによるトーク by Marketing Director of Etheremon

今までのゲームの問題点

Blockchain でどう解決するか?

なぜユーザーがプレイするのか?

  1. レベルがあがるとモンスターの価値が上がる
  2. EMONT トークンがもらえる
  3. アドベンチャーモードの土地を所有することで、プレイヤーがプレイすることに手数料がもらえる

アドベンチャーモード

プレセールで 300ETH 調達した.
7 月実装予定だったがオフチェーン対応等で遅れていて, 8 月にはリリースできる予定.

スケーラビリティ問題対策

medium.com

Q&A

Q. 新しく実装されるアドベンチャーモードでの土地の利回りは?

土地で利益を得るのは手数料と売却する方法がある.
土地に入るための手数料は全額所有者に入る.
手数料の金額は所有者が自由に決められる(が, 極端に偏る場合は何らかの方法で均衡化されるとのこと)
上記に売却も加味すると 20~40 倍ぐらいのリターンを見込めるのではないか.

Q. 土地の数と販売数は?

全部で 108 あって, プレセールでは半分の 54 を売った.
残りは今後のイベント等での販売/配布を検討中. 54 の土地を 10 分割して 540 を販売した.
1 つ約 6ETH なので 10 で割って, 1 つあたりの購入額は 0.6 ETH ぐらい. 10 分割に順位/優先度などはない.

Q. どこの国のユーザが多い?

日本人が一番多い.
トランザクションは国別の判定ができないので Google Analytics ベースの計測.

ERC 721 トークン

  • アイテム
  • モンスター
  • アドベンチャーモードの土地
  • 土地に入るための手数呂う - モンスターを置くための手数料

所感

  • Blockchain で今までのゲームの課題を解決していく話は, Blockchain の活用方法としていいなと思った.
  • dApps ゲームの中の人の話を聞けると安心感がある(Aethia 運営から音沙汰がない.
  • Etheremon Tシャツもらった.

AWS WorkMail を使って SMTP でメール送信する時の注意点

背景

独自ドメインの割り当て, メールアドレス認証などが設定済の WorkMail を AWS サービス以外のメールクライントからもメールの送信に使いたいと思った.

設定

安定のクラスメソッドさんの記事を元にやっていけばほぼ問題ない.

dev.classmethod.jp

注意点

リージョンに沿ったホスト指定

WorkMail は、現在3つのリージョンで提供されているため
us-west-1, us-west-2, us-east-1 から WorkMail を使用しているリージョン用のホストを選択する必要がある.

docs.aws.amazon.com

Secure connection が必須

WorkMail の SMTP は Secure connection: Required なため
クライントの設定で SMTPS を有効にする
or
ホストに ssl://smtp.mail.us-east-1.awsapps.com と明示的に指定する必要がある.

非同期処理で行う

新規登録などユーザの動作をトリガーとしてメールを送る場合に
SMTP での送信処理は体感で, 500ms~2000msぐらい(場合によってはもっと)かかるので
同期処理だとユーザに待ち時間が発生してしまうため, SQS などを使って非同期で処理する.

Wercker を Steps の作成から公開までを解説する

背景と概要

Wercker を使っていて, デプロイプロセスにちょっとしたスクリプトを入れたくなって調査した記録.

公式にもあるが, 微妙に古い&ハマりどころもあるので解説していく.

devcenter.wercker.com

Wercker 上では Steps も Application と同様に扱う(ように途中で変わったらしい).
bash もしくは golang で実装するのが推奨されている.
今回は bash での実装で説明する.

必要なファイルは3つ

wercker.yml

他のリポジトリと同様、Wercker 上で実行する Pipeline を定義する

step.yml

Steps のメタデータを定義するファイル

run.sh

Steps の実行内容を記述するファイル

手順

テンプレートを clone

最低限のファイルを定義したリポジトリを用意したので clone する.

github.com

ファイルの修正

  1. wercker.ymlowner を修正.
    ※Wercker 上のユーザー名を同じものを設定しないと, publish が失敗するので注意

  2. step.yml の name, version, summary, tags をよしなに修正.

  3. run.sh に処理内容を実装する. 今回は Node.js のバージョンを出力する.

Wercker 上で設定

1. Application を作成

f:id:morugu:20180624143809p:plain

2. Add new Pipeline から Steps 公開用の Pipeline を作成する

f:id:morugu:20180624143845p:plain

f:id:morugu:20180624144122p:plain

3. Application 登録後に git push すると build が実行されて成功すると, 2 で設定した Pipeline が実行できるようになる.

f:id:morugu:20180624145012p:plain

4. steps-publish を実行して, 成功すると My Steps に公開される

f:id:morugu:20180624145305p:plain

使い方

使いたいプロジェクトの wercker.yml に追加する

build:
  steps:
    - shoya/node-version@1.0.0

今回作った Steps とリポジトリ

shoya / node-version

github.com