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

Mercari Engineering Blog

メルカリのエンジニアブログです。技術情報を日々発信していきます。

Our Image Classification Experiment with Deep Learning

Introduction

Hi, my name is Takuma. I am a software and machine learning engineer at Mercari.

Artificial Intelligence (AI) is a buzzword nowadays. We also often see terms, such as 'Deep Learning' and 'Deep Neural Networks' that are subsets of AI and machine learning. I would like to share our experiment on image classification using deep learning.

Neural Networks Winter

Deep learning is a variation of neural networks techniques. In the 7th International Conference on Document Analysis and Recognition (ICDAR 2003), held in Edinburgh, UK, Simard et al. (Microsoft Research) said in their paper 'Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis' that:

After being extremely popular in the early 1990s, neural networks have fallen out of favor in research in the last 5 years. In 2000, it was even pointed out by the organizers of the Neural Information Processing System (NIPS) conference that the term “neural networks” in the submission title was negatively correlated with acceptance.

(I actually attended the conference as a student and I made a presentation on digits detection and recognition.)

At that time, many researchers were being attracted to other algorithms like Support Vector Machine (SVM) and so on.

続きを読む

GoでとあるAPIサーバを実装し直した話

Go

サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。

Revel とは

A high productivity, full-stack web framework for the Go language

公式の説明にあるように、Revel は高機能でフルスタックな Web フレームワークです。

複雑なルーティングや、パラメータのパーシング、テンプレート機能など、Web アプリケーションを作ろうとなったときに必要な手段はたいてい兼ね揃えているようです。公式ドキュメントに詳しく書かれています。

Revel 以外にも Go 製の Web フレームワークは多数あり、有名どころだと以下のようなものが挙げられます。

その中でもはやり Revel は「重量級」「全部入り」「Rails のような」など表現されることが多いように思います。何をやりたいのか (どこまでやりたいのか) もしくは、API の将来的な全体像がはっきりしないときの選択肢として採用されることが多いのかもしれません。

最初は Revel で書かれていた

ある手段の実現のために、メインサービスとは別に新規の API を作りたい、という話になり Go で書くことになりました。要件としては簡単で、数百万規模のレコードを持つテーブルから SELECT して JSON 形式で返す API です。説明上のイメージとして、ここでは郵便番号から住所情報を引く API とします *1

$ curl $API_URL/zip_code/1066118 | jq .
{
    "zip_code": 1066118,
    "prefecture": "東京都",
    "city": "港区",
    "address1": "六本木6-10−1",
    "address2": "六本木ヒルズ森タワー",
}

最初、別の人が1週間くらいで実装しており稼働直前の状態で僕に引き継がれました。当初は「Revel なのか」くらいな印象で若干の整備とセットアップを加えてサービスインしました。

*1:ちなみに日々 KEN_ALL.csv によって更新されている

続きを読む

未来のCSSを先取るHoudiniとは?それは魔法である!

CSS

f:id:t32k:20161130124906j:plain

こんにちわ、メルカリアッテでFront-end Developerをしている@t32kです。

メルカリではセミナー参加補助制度があり、それを利用して海外カンファレンスに参加してきました。今回は11/30 ~ 12/01、オーストラリア・メルボルンで開催されたCSS/JSConf Australia 2016に行ってきたので、そのレポートを書きたいと思います。

f:id:t32k:20161130154633j:plain

今回はその中でも、CSSConfでのBarak Chamo氏が講演した内容が非常に興味深かったので紹介します。

続きを読む

監視だけじゃない!デプロイにMackerelを使う話

SREチームの @siroken3 です。

以前、メルカリでリリース手段としてChatOpsを採用していることを本ブログで紹介しました。今回は内部で使っている技術の一部を紹介したいと思います。

tech.mercari.com

tl;dr

  • メルカリではデプロイにAnsible使ってる
  • 毎日デプロイしつつサーバが増加/入れ替え激しいと心が削れる
  • MackerelのAPIとAnsibleを組み合わせたらハッピーになった
続きを読む

PHPカンファレンス2016で「Crowiの歩き方」という話をしてきました

サーバサイドエンジニアの @suzuki です。同僚の @Hiraku さんが「PHPカンファレンス2016でComposerプラグインの話をしてきました」という記事を書いていたので、負けじと書いてみたりしています。

似通った内容になってしまうのですが、2016年11月3日に開催された「PHPカンファレンス2016」で「Crowiの歩き方」という発表をしてきました。

phpcon.php.gr.jp

発表時の資料はこちらになります。

資料内にもありますが、Crowi というのは Node.js ベースの Wiki アプリケーションです。Markdown でページを記述できるので、イマドキのエンジニアには気持ち良く使えます。

また、ディレクトリ構造のように「/」を使った階層構造が簡単に作れるため、例えば「個人メモ」と「チーム共有情報」の領域を容易に分けることができます。

site.crowi.wiki

ソースコードは GitHub で公開されています。

github.com

今回の資料は、PHP ばかりやっていた私が、初めて Node.js ベースのアプリである Crowi に触れたときに、「あれはどこにあるのか?」や「これはどうやって直せばいいのか?」ということを試行錯誤しながら学んでいった内容を元にしています。

同じように初めて Crowi に触れる PHPer のみなさんが「この情報があれば最初の一歩は踏み出せる」という資料にしたつもりです。これが Crowi のソースコード・リーディングの手助けになると嬉しいです。

「PHPer のみなさんが」とは言っていますが、資料の一部で「Crowi が利用しているライブラリ」と「PHP のライブラリ」と対比させている程度ですので、他の言語が得意な方でも、それほど違和感なく読んで頂けるとは思っています。

Crowi を使ってみて「ちょっとここいじりたいなぁ」と思ったときに参考にしてみてください。そして、みなさんからの素敵な改修や新機能の pull request をお待ちしています!

また、Crowi のメイン開発者である @sotarok と、新米開発者である @suzuki が在籍しているメルカリでも素敵なエンジニアのみなさんからの応募をお待ちしています。合わせてこちらもよろしくお願いします!(かなり強引な締め)

www.mercari.com