読者です 読者をやめる 読者になる 読者になる

tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

Firebase Test Lab使ってみた雑感

android 開発

f:id:tomoima525:20160601065604p:plain:w400
Google IO 2016にて発表されたFirebase Test Labを試してみました。メリデメ、感じたことなどまとめました。 (6/2/2016 追記しました)

tl;dr

2016年5月時点では、サポート端末の観点からアメリカ以外で使うにはまだ早そう。またネットワーク通信エラーでテストがぽこぽこ落ちるのでまだ様子見レベルで使うのが良さそう。

続きを読む

イースター島旅行についてガイドブックに載ってないことをまとめてみる(2016)

脱線 面白いもの

f:id:tomoima525:20160430095313j:plain:w400
4月28-5月2日(現地3泊4日)で、モアイで有名なあのイースター島を旅行してきました。ガイドブックは持っておらず、滞在中は現地の人に話を聞いて観光してきました。ガイドブックには載ってない(あるいはなさそうな)ナマの現地情報をまとめてみます。 今週のお題ゴールデンウィーク2016」というのにもちょうどマッチしたテーマです。

続きを読む

RxJavaで再帰処理をする、あるいは集合知は素晴らしいという話

java android tips

f:id:tomoima525:20160424160637p:plain:w400
先日、TwitterSDKのTwitterApiClientについてちょっとしたTipsを書こうと思い、サンプルアプリを作り始めました。当初はシンプルなものにする予定だったのですが、RxJavaを勉強中ということもあり、RxJavaで再帰処理を実装してみることにしました。この実装についてAndroidのSlackチームであるandroid-jpにて相談したところ、@hydrakecatさんより素晴らしいフィードバックをいただくことができました。
Slackでせっかく得られた知見は流れてしまうので、ここにまとめておきます。最終的な成果物だけ興味ある方は一番下の実装見ていただくとよいです。

tl;dr

続きを読む

ブラウザタブの断捨離したら集中力が上がった話とその運用方法

tips

ちょっと前なのですが、Chromeブラウザがクラッシュして開いていたタブが全部消える&リカバーできない事態に陥りました。が、それをきっかけにタブの断捨離を進めたところ、身長が伸びたり彼女が出来たりとかはなかったんですが、集中力が上がって精神疲労が緩和したので、ここに共有します。

続きを読む

個人でサービス、OSS開発をする時にモチベーションを継続させるノウハウ

android 開発 tips

個人で(≒会社とは別に)サービスやOSS開発することは、会社で身につけられる以上のスキル、実績が得られたり、コミュニティを広げたりするなどメリットが多くあります。

tomoima525.hatenablog.com

自分自身もこれまでいくつかサービスやOSSを開発してきたのですが、一番課題なのが、モチベーションの継続です。最初はテンション高く開発しますが、段々とやる気が下がってきます。一旦リリースした後のメンテも面倒です。そうしていくつかのサービスをクローズしてきました(涙)。
けど、これってとてももったいないです。そこで意識して改善した結果、TwitCalというカレンダーアプリを開発期間も含めると1年間以上継続してメンテ、機能追加を続けられました。今回は自分がどうやって取り組んできたかを整理してみたいです。

※ 飽きっぽい性格だったりなかなかサービスを継続メンテできない方向けです。たった1年?何言っているの?という方はそっ閉じしてやってください。

続きを読む

Rxjavaで川をズンドコする

android 面白いもの java

このツイートを見て。
Rxjavaでズンドコしてみました。ご査収ください。

public class Zundoko {
  private static final String ZUN = "ズン";
  private static final String DOKO = "ドコ";
  HashMap<String, Integer> map = new HashMap();
  Integer[] zundoko = {0, 0, 0, 0, 1};
  Random rand = new Random();
  boolean isKiyoshi = false;

  public void run(){
    map.put(ZUN, 0);
    map.put(DOKO, 1);
    LinkedList<String> list = new LinkedList<>();
    while (!isKiyoshi) {
      list.add(rand.nextInt() % 2 == 0 ? ZUN : DOKO);
      if (list.size() > zundoko.length) {
          list.removeFirst();
      }
      System.out.println("¥¥ " + list.getLast());
      doLambdaKiyoshi(list);
    }
    System.out.println("¥¥キ・ヨ・シ!");
  }

  public void doLambdaKiyoshi(List<String> list) {
    Observable.from(list)
      .map(s -> map.get(s))
      .toList().map(zunInts ->
      {
          if (zunInts.size() < zundoko.length) return false;
          return Arrays.equals(zunInts.toArray(new Integer[zundoko.length]), zundoko);
      }
    ).subscribe(matched -> isKiyoshi = matched);
  }
}

github.com f:id:tomoima525:20160312082051j:plain

エンジニアが手早く英作文をする時はかどる Tips

tips 英語

GithubのPRや海外Slackチャンネルでチャット、はたまた英語圏のエンジニアとやりとりする等、英語で文章を書くことはしばしばあります。そんな時、自分がよく使っている方法について書きます。

先に一番大事なこと

大事なことは、英語はあくまでもツールだということです。伝えたい内容が重要であり、英文を書くことに時間かけることはエンジニアにとって不毛です。 よっぽど英語が得意な人でないかぎり、一から英作文すると時間がかかって本質的でないところで時間を消費するということです。 なので一から文章を考えるのでなく、なるべく"型"を知ることがポイントだと考えています。それを踏まえた上で御覧ください。

続きを読む