macOSのelasticserachの使用メモリサイズの変更方法

気づいたら、2G使ってたので変更。そもそも開発用なのでそんなに必要ない。

$ vi /usr/local/opt/elasticsearch/libexec/config/jvm.options

-Xms256m # from -Xms2g
-Xmx256m # from -Xmx2g

256Mも使ってないけど一応。

Sublime Text 3のSwitch Projectの編集方法・削除方法

消したはずのプロジェクトが残る現象発生。 削除するのは現セッションのRecent workspacesから取り除く必要あり。

Sublime Textを閉じたあとに

$ vi ~/Library/Application\ Support/Sublime\ Text\ 3/Local/Session.sublime_session

で、recent workspacesを消す。

    "workspaces":
    {
        "recent_workspaces":
        [
            "/Users/shohey1226/gdrive/st_projects/Gauss.sublime-workspace",
            "/Users/shohey1226/gdrive/st_projects/Personal.sublime-workspace"  
        ]
    }

[React Native] HTTP requestのRetryを実装する

Mediumに英語のエントリRetry POST request when it’s failed on React Nativeを書いた内容と同じですが、地下鉄で地下に潜るとreact-native-oauthmakeRequestが失敗するケースが発生しました。Twitterの2つ目の投稿が投げられていなかったり、FBへの投稿も落ちていました。そこで、リトライするコードを書きました。

Async Retryを使います。これはnode-retryをラップしたもので、例がシンプルで良さそうだったので使います。(async/awaitの文法にも慣れているので)

 $ cd PROJECT_DIR
 $ yarn add async-retry # or npm install async-retry --save

問題なくインストールできます。そして、コードは、下記のような感じ。

import retry from 'async-retry'

...

  async _tweetWithRetry(text){
    return await retry(async () => {
      let encodedText = encodeURIComponent(text);
      const endpoint = `https://api.twitter.com/1.1/statuses/update.json?status=${encodedText}`;
      const res = await manager.makeRequest('twitter', endpoint, { method: 'post' });
      return res;
    }, {
      retries: 5
    });
  },

2つ目の引数にnode-retryのオプションを書いてくイメージです。今回はエラーハンドリングは特にしないで5回リトライする単純なコードです。iphoneのデベロッパーのところにある”Very bad network”で試したところ、コンソールに数回トライしているのを確認しました。(Testをうまく書けるのかな。。)

以上、リトライを実装したい方は参考にしてみてください。

[React Native]日本語環境下で日本語が垂直のセンターを取れない問題(vertical-align: middle)の対処法

地味に辛いこの問題。vertical-align: middle問題。 iOSが英語環境(設定 -> 一般 -> 言語と地域が英語)の場合は問題なくセンターとれるのですが、日本語環境にするとflex-startみたいにpaddingTopがゼロになってしまう問題があります。やっかいなのは、paddingで調整するとAndroidはこの問題がないため表示がずれます。。

コードはボタンだったら、下記みたいな感じ。ボタンに限らず、この問題はおきていると思います。

<FAIcon.Button onPress={this.onPressFBLogin} name="facebook" iconStyle= backgroundColor="#3b5998" borderRadius={0}>
	<Text style=>Facebookでログイン・登録</Text>
</FAIcon.Button>

解決方法は、fontサイズと同じViewでラップする。(試行錯誤後、閃きました)

<FAIcon.Button onPress={this.onPressFBLogin} name="facebook" iconStyle= backgroundColor="#3b5998" borderRadius={0}>
	<View style=><Text style=>Facebookでログイン・登録</Text></View>
</FAIcon.Button>