EthereumでICO実装するときの用語集
はじめに
色々用語あるので自分の解釈でまとめておく。
間違っている所は教えてくださいな:)
※随時更新予定
用語集
トークン(Coin)を対価に資金を調達すること
- Ethereum
分散アプリケーションのためのプラットフォーム
- Geth
Ethereumブロックチェーンに接続するためのミドルウェア(クライアント)
- Solidity
スマートコントラクトの記述言語
ネットワークでやり取りされるブロックチェーンの最初のブロックであるGenesisブロックの情報を記述したファイル
- solc
Solidityコンパイラ
- スマートコントラクト
契約とサービスの実行を自動で行うシステム
- DApps
分散型アプリケーション
- Truffle
Solidityのフレームワーク
- ERC-20
- Gas
イーサリアムプラットフォームを利用する際にETHを利用して支払う手数料
- Zeppelin Solidity
Solidityのライブラリ
RubyでOutlookAPIのOAuth2認証
はじめに
OutlookAPIを利用する機会があったので、今回はRubyでOAuth2認証をする方法について書く。
ドキュメントはこちら
アプリの登録
まずはこちらでアプリケーションの登録をする。
Sign in to your Microsoft account
認証コードの取得
認証コードを取得するメソッドは下記のようになる。
ClientId
とClientSecret
はアプリを登録すると取得できるのでそちらを利用する。
MICROSOFT_OAUTH_URL = 'https://login.microsoftonline.com' CLIENT_ID = 'your-client_id' CLIENT_SECRET = 'your-client_secret' REDIRECT_URI = 'https://your-redirect_url' def get_oauth_url "#{MICROSOFT_AUTH_URL}/common/oauth2/v2.0/authorize?client_id=#{CLIENT_ID}&response_type=code&redirect_uri=#{URI.encode(REDIRECT_URI)}&response_mode=query&scope="User.Read"&prompt=consent" end
このURLに飛ぶと、認証の画面が表示され許可をすると指定したリダイレクトURLに戻ってくる。
そして、次のフローで利用するcode
パラメータを取得できる。
http://localhost/myapp/?code= AwABAAAA...cZZ6IgAA&session_state=7B29111D-C220-4263-99AB-6F6E135D75EF&state=D79E5777-702E-4260-9A62-37F75FF22CC
アクセストークンとリフレッシュトークンを取得する
上の手順で取得したcode
パラメータの値を使い、API利用のためのトークンを取得する。
下記のリクエストを送る。
POST https://login.microsoftonline.com/common/oauth2/v2.0/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=AwABAAAA...cZZ6IgAA&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&client_id=<CLIENT ID>&client_secret=<CLIENT SECRET>
すると、下記のようなレスポンスを受け取れる。
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "token_type":"Bearer", "expires_in":"3600", "access_token":"eyJ0eXAi...b66LoPVA", "refresh_token":"eyJ0eXAi...b66LoPVB", "scope":"Mail.Read", }
access_token
が取得できればあとは、各エンドポイントを叩けるので自由にデータを取得できる。
Ruby要素そんなになかったです。
Google Homeを少し使ってみた感想
今更ですが、GoogleHomeを購入したので2週間ほど使用してみての感想です。
必要なもの
スマフォ端末はGoogleHomeをセットアップする際に必要です(もしかしたらいらないのかもしれませんが、そのやり方はわかりませんでした)。
セットアップ
セットアップ方法はとても簡単です。
- Google Homeを電源ケーブルで繋ぐ
- iOSもしくはAndroidで専用アプリをインストール
- インストール後、アプリの指示に従っていく
これだけです。専用アプリを起動すると勝手に近くのGoogle Homeを検索してくれて、あとは使用言語だったりwifiの設定だったりをするだけ。特に困るようなことはなかったですね。
使い方
GoogleHomeに「OK, Google」もしくは「ねぇ、Google」と話しかけると↑こんな感じで光るので、その間はGoogle Homeがユーザーの話を聞き取ってくれます。ただ必ず一問一答なので1つやり取りをしたら、また「OK, Google」という必要があります。これはちょっとめんどくさいかもしれないですね。
音楽
Spotifyなどと連携させておくとGoogle Homeから音楽を流せるようになります。
- 「かりゆし58流して」
- 「人気の曲流して」
天気
これは一番使ってる機能です。ただ単に「今日の天気は?」と聞くと現在位置をもとに教えてくれます。
- 「沖縄の天気は?」
- 「1週間後の天気は?」
- 「アメリカの天気は?」(ワシントンの天気を教えてくれました)
ニュース
これはGoogleが喋るのではなくラジオニュースが流れてきます。
- 「今日のニュースは?」
- 「IT関連のニュース教えて」
ピカチュウトーク
「OK, Google ピカチュー」と言うとピカチューと話すことができます笑。まず使わないですが、お子さんがいる場合にはいいかもしれないですね。
Siri
「Siriについてどう思う?」と質問すると色々なパターンで返答してくれます。笑 気になる方は質問してみるといいかもしれないですね。
総じて
音楽流して今日の天気を聞いてニュースを流すだけでもすごい便利になります。すげーってなります笑
ただSpotifyと連携させたくらいでまだ何もできてないので、これからは他のアプリ使ってみたりコンソールからいじってみたりしてみたいです。
AppStoreレビューページへ遷移
はじめに
アプリ内レビューに関しては、iOS11からはSKStoreReviewControllerクラスを使うことが推奨されていて 1年に3回までしか表示できないなどの制約があります。
今回はシンプルに、AppStoreのレビューページに遷移させるだけです。
レビューページURL
StoreページのURLにパラメータを付与するのみです。
e.g. ?action=write-review
実装コード
実際のサンプルコードを書きます。(LINEさんのレビューページを例にします)
func segueAppStoreReview() { if let url = URL(string: "https://itunes.apple.com/jp/app/line/id443904275?mt=8&action=write-review") { UIApplication.shared.open(url) } }
レビューページに遷移しました :)
Dockerコマンドチートシート
コマンドなんだっけなあっていう場面が結構あるので残しておきます。
忘れた時に使ってくだせい。
- コンテナ作成・実行
$ docker run ubuntu:latest
- イメージダウンロード
$ docker pull centos:7
- イメージ一覧
$ docker images
- 詳細情報確認
$ docker inspect centos
- イメージ検索
$ docker search centos
- イメージ削除`
$ docker rmi centos
- コンテナ生成
$ docker create centos
- コンテナ起動・停止
$ docker start
$ docker stop
- コンテナ削除
$ docker rm centos
- コンテナ一括削除
$ docker rm $(docker ps -aq)
- 稼働コンテナ一覧
$ docker ps
- 稼働コンテナへの接続
$ docker attach
- 稼働コンテナでプロセス実行
$ docker exec
- プロセス確認
$ docker top
- Dockerfileからイメージ作成
$ docker build
ReactNativeにESLint導入
はじめに
ReactNativeにESLintを導入する方法。
エディタはもちろんVim。
ESLint設定
まずは、プロジェクトでの設定。
ESLintの設定は、下記を用いる。
⑴必要パッケージをインストール
$ npm install --save-dev eslint-config-airbnb eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y eslint babel-eslint
⑵. .eslintrcファイル作成
{ "parser": "babel-eslint", "extends": "airbnb" }
Vim設定
⑴. プラグイン導入
NeoBundle使う。
NeoBundle 'scrooloose/syntastic' NeoBundle 'pmsorhaindo/syntastic-local-eslint.vim'
⑵. 設定周り
"""""""""""""""""""""""""""""" " syntastic """""""""""""""""""""""""""""" " ref. https://github.com/scrooloose/syntastic#settings " エラー行を表示 let g:syntastic_enable_signs = 1 " location list を常に更新 let g:syntastic_always_populate_loc_list = 0 " location list を常に表示 let g:syntastic_auto_loc_list = 0 " ファイルを開いた時にチェック let g:syntastic_check_on_open = 1 " 保存時にチェックする let g:syntastic_check_on_wq = 1 let g:syntastic_javascript_checkers=['eslint']
忘れずに :NeoBundleInstall
。
ここまでで下記のキャプチャのようなエラーが出ているはず。
ESlint設定おまけ
.jsx
だけでなく .js
は許可したいので、.eslintrc
にルールを追加しておく。
"rules": { "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], }
これで一通り設定完了。
[2018年版] iOSアプリ申請の前に準備しておいたほうが良い情報
iOSアプリ開発後、スムーズにアプリ申請を行うために以下の情報を事前に用意しておくと良いです。
基本的にiTunesConnectのhintを引用してます。
前提
- プロビジョニングプロファイル、証明書、ipaは作成済み
必要な情報
アプリ名
App Store に表示されるアプリ名称。30文字以内。
サブタイトル
iOS 11 以降のApp Store でアプリ名前の下に表示されるアプリ概要。(30字以内)
BundleID
バンドルIDは Xcode 内で使用されている値と一致する必要がある。最初のアップロード後は変更不可。
プライマリ言語
デフォルトの言語。アプリ情報がローカライズされていない地域のAppStoreではプライマリ言語がアプリ内で使用される。
カテゴリ
アプリに当てはまるカテゴリを選択する。(2つ)
プライバシーポリシーURL
子ども向けであったり、無料でもユーザー登録が必要な場合には必要。もちろんその他法律で必要とされる場合には必須であり、ユーザーやデバイスのデータを収集する場合もプライバシーポリシーが推奨される。
アプリの説明文
アプリの特長や機能の詳細など。(4000字以内)
プロモーション用テキスト
プロモーション用テキストを使用すると、更新内容を提出することなく、App Store の訪問者に現在のアプリ機能について知らせることができる。このテキストは、iOS 11 以降にてApp Store の説明の上に表示される。(170字以内)
App Store用のアイコン(1024x1024)
App Store で表示されるアイコン。Xcode 9 以降を使用してアプリをビルドした場合、このアイコンを設定する必要はない。Xcode9以前を使用してビルドしている場合、アイコンの設定が必要。
スクリーンショット
詳細は以下に記載。
Copyright(組織名)
アプリを所有する人物または組織の名前を入力する。
アプリ価格
App Storeでの販売価格。
サポート用サイト
アプリのサポート情報へのURL。
マーケティング
アプリのマーケティング情報へのUR。
検索キーワード(100文字以内)
アプリを説明するキーワード。キーワードを使用するとApp Store での検索結果がより正確になる。キーワードはコンマ(,)で区切る。
App Review時に必要な情報
App Review チームからの問い合わせ先となる、組織の担当者。
- 連絡先情報(名前、メールアドレス、電話番号)
- サインイン情報(ログイン機能があるアプリの場合)
スクリーンショット
スクリーンショットはiPhoneで5種類、iPadで3種類用意する必要がある。 以下、全てpixel値
iPhoneスクリーショット
ディスプレイ | 画像サイズ |
---|---|
3.5インチ | 640 × 960 |
4.0インチ | 640 × 1136 |
4.7インチ | 750 × 1334 |
5.5インチ | 1080 × 1920 |
5.8インチ | 1125 × 2436 |
iPadスクリーショット
ディスプレイ | 画像サイズ |
---|---|
9.7インチ | 768 × 1024 |
10.5インチ | 1668 × 2224 |
12.9インチ | 2048 × 2732 |