hydrakecat’s blog

Walking like a cat

Deutsch–Jozsaアルゴリズムを追う

先日、Microsoft Q# Coding Contest - Summer 2018というコーディングコンテンストに参加しました。 その中でWarm Upとして出された問題の1つがDeutsch–Jozsaアルゴリズムを実装するものだったのですが、なかなかおもしろいアルゴリズムだったので追ってみたメモです。 なお、筆者はQ#も量子コンピューティングもこのコンテストに参加するまで触ったことがない素人なので、勘違いなどもあるかと思います。 その際はご指摘いただければ幸いです。

続きを読む

レビューしてもらいやすいPRの書き方

以下は元々Fablic在籍時の2017-10-05に会社の技術ブログinFablicに投稿した記事(http://in.fablic.co.jp/entry/2017/10/05/090000)でした。inFablicが閉鎖されてしまったため、会社の了承を取った上で転載しております。

元記事にリンクを貼っていただいていた方に対しては大変お手数なのですが、こちらにリンクし直していただければ幸いです。


f:id:hydrakecat:20171004165256j:plain

こんにちは。Androidエンジニアの黒川(@hydrakecat)です。

みなさん、Pull Request(PR)は書いているでしょうか?

PRを出したあとの1つの悩みに、なかなかレビューしてもらえないというもがあります。 長い間放置されて、ようやくレビューしてもらったときには、既に自分の変更内容を忘れていたり、ベースブランチとのコンフリクトが大量に起きていたり、とレビューが溜まるのは、レビュイーとレビュワー双方にとって良いことではありません。

レビュワーをランダムに指定したり、レビュータイムを設けたり、という工夫もありますが、PR自体の書き方を工夫することで、レビューしやすくすることも効果的です。

続きを読む

RxJava 1.x → 2.x 移行ガイド

以下は元々Fablic在籍時の2017-04-27に会社の技術ブログinFablicに投稿した記事(http://in.fablic.co.jp/entry/2017/04/27/110000)でした。inFablicが閉鎖されてしまったため、会社の了承を取った上で転載しております。

元記事にリンクを貼っていただいていた方に対しては大変お手数なのですが、こちらにリンクし直していただければ幸いです。


f:id:hydrakecat:20170426163836j:plain

こんにちは。Androidエンジニアの黒川(@hydrakecat)です。

この記事では、RxJava 1.xから 2.xへのマイグレーションについて説明します。

私が開発に携わっているフリルというフリマサービスのAndroidアプリでは、つい先日のアップデートでRxJava 2.0.8への移行を済ませました。 幸い、いまのところ問題は起きていませんが、マイグレーションにあたっては、当初予想していたよりも多くの作業が発生しました。この記事では、その知見を共有したいと思います。

続きを読む

Picasso にパッチを当てた話

以下は元々Fablic在籍時の2016-12-07に会社の技術ブログinFablicに投稿した記事(http://in.fablic.co.jp/entry/2016/12/07/115501)でした。inFablicが閉鎖されてしまったため、会社の了承を取った上で転載しております。

元記事にリンクを貼っていただいていた方に対しては大変お手数なのですが、こちらにリンクし直していただければ幸いです。


こんにちは。Androidエンジニアの黒川(@hydrakecat)です。

この記事は、Fablic Advent Calendar 2016 のエントリーです。

本日は、Androidのライブラリにパッチを当てた話をしたいと思います。先日、Picassoという画像ライブラリのバグにより、弊社のフリルで一部のユーザーさんに問題が発生しました。この記事では、その問題を解決するために、なぜパッチを当てることにしたのか、どのように行ったのか、どういう問題があったのか、という話をいたします。

続きを読む

近況報告

TL;DR

  • 4末でFablicを退職してフリーランスをやっていました
  • 8/1からmixiに入社し、家族で写真を共有するサービス「みてね」の開発に携わる予定です
  • 業務委託で働いているだけですが、 https://kibe.la を作っている BitJourney はいい会社なので興味がある人はぜひ

その他

Too longと書きつつ、ぜんぜん長くなりませんでしたが、そんな感じです。何社か話を聞かせていただき、ありがとうございました。また、向こうから声をかけていただいた企業もいくつかあり、感謝しております。 「みてね」は、試しに1日だけ働かせてもらったところ、チームの感じが良さそう、かつ、大企業だけれど新規事業でスタートアップっぽい雰囲気なところが気に入って入社を決断しました。

BitJourneyは前からフリーランスで働いてみてないかと声をかけていただいており、いい機会だからと働かせてもらいました。尊敬する @gfx さんと働くことができて、少人数ながらとても楽しかったです。 ちょうど資金調達もしてこれからというところなので、興味のある方はぜひ連絡してみてください。自分は次にやりたいことと少しずれたので入社という選択は見送りましたが、自分の普段使っているサービスを作る側に回れるのは楽しいと思います。

DroidKaigi 2018 でAndroid開発の陥りがちな罠について話します

明日から DroidKaigi 2018 が始まりますが、僕は2日目 2/9(金)の 11:20 から Room 2 で「Surviving a Discontinuous World」というタイトルで話します。

この話は初心者向けに、Androidアプリ開発でよく陥る罠を「不連続性」という観点から説明しようという試みです。

自分の持論なのですが、Androidアプリ開発でもっともバグが起きやすいのは非同期処理とライフサイクルだと思っています。この両者を不連続性という観点からまとめて説明しつつそれに対するアプローチやヒントを紹介したいと思っています。

オフィスアワーも予定しているので、質問のある方はぜひお気軽に声をかけてください。

https://droidkaigi.jp/2018/timetable?session=16933

f:id:hydrakecat:20180207234544p:plain

ソフトウェアエンジニアに必要な英語

ソフトウェアエンジニアと英語の話というのは、しばしば話題になります。 それだけ多くの人が英語について気にしていると思うのですが、「英語やらなきゃ」と言っている人に話を聞くと意外と動機が漠然としている印象があります。

果たして日本企業で働くソフトウェアエンジニアにとって英語は必要なのでしょうか?必要だとしたら、どういう英語が必要なのでしょうか? この記事は、そのあたりの疑問を自分なりに整理するために書きました。 いつもの固い記事とは違って、きちんと下調べもしていないし、勢いで書かれた内容となっていますが、ご容赦ください。

なお、この記事はエンジニアの英語力 - 怠惰を求めて勤勉に行き着くに触発されて、 Androidアプリのビルド待ち時間に書かれています。エモい記事を書いてくださったしろやまさんと、Androidアプリのビルド時間、それに業務時間中に記事を書くことを快く許してくれた会社に感謝します。

あ、あと、一応自分が働いているFablicという会社のFablic Advent Calendar 2017の1つでもあります。よかったら他の記事も読んでみてください。

続きを読む