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

Mercari Engineering Blog

We're the engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Appdevcon 2017 in Amsterdam に登壇します!

iOS

こんにちは、iOSエンジニアの@yoichitgyです。

3月16-17日にオランダ・アムステルダムで開催されるAppdevcon 2017に弊社から私が登壇します。UK版アプリでヨーロッパに進出したメルカリもスポンサーとして協賛します!

f:id:yoichitgy:20170221143219j:plain

Appdevcon 2017 - Conference by App Developers, for App Developers

Appdevconとは、iOS、AndroidなどのOSに関わらず、世界中からモバイルアプリ開発に関わるエンジニアが集まるカンファレンスです。毎年アムステルダムで開催され、昨年までは mdevon と呼ばれていました。2016年には、try! Swiftのオーガナイザーとして著名なNatashaTheRobotさんも登壇されました。

今年はFabricチームのAndrea Falconeさん、JetBrains在籍でCatchで有名なPhil Nashさん、SwiftGenの開発のほかfastlaneCocoaPodsのコントリビュータとして知られるOlivier Halligonさんも登壇されます。

4トラックでそれぞれ魅力的な講演がありますので、詳しくはスケジュールを確認してみてください。

講演タイトル: Dependency Injection in Practice

Dependency Injectionは、モジュール間を疎結合にしてメンテナンスやテストのしやすいアーキテクチャを作るパターンです。WWDC 2016で紹介されて以来、iOS開発者の間で注目が集まりつつあります。Swift用のDependency Injectionフレームワークとして多くのプロダクトに採用されているSwinjectを開発した経験から、Dependency Injectionの基礎から実践まで話します。AppdevconはiOS開発者だけでなくAndroid開発者も参加するカンファレンスなので、Daggerについても触れながら、より多くの方のためになる発表にする予定です。

ビデオも公開されます!

各講演は後日ビデオが公開されます。きっと価値ある講演のビデオが見つかると思いますので、後日ぜひ確認してみてください!

iOSCon 2017 in Londonに登壇します

iOS

こんにちは、iOSエンジニアの@kitasukeです。

弊社から、@yoichitgyと自分の2名がiOSCon 2017に登壇します!

iOSCon 2017 - The conference for iOS and Swift Developers

iOSConとは、iOSやSwiftに関わるエンジニアのためのカンファレンスです。 今年もロンドンで開催される予定で、日程は3/30, 31の2日間です。 2014年から開催され、当初から世界的に有名なスピーカーが登壇しています。

skillsmatter.com

発表形式は下記の通りで3種類あります。  

  • ワークショップ(90分)

  • トーク(45分)

  • LT(15分)

今回は両者ともトークでの発表でCfPが採択されました。

簡単に発表内容を紹介したいと思います。 詳しい発表内容はこちらのプログラムを見てください。

続きを読む

Mercari Day 2017 Tech Track 発表資料まとめ

Mercari Day

iOS チームの @jarinosuke です。

2017年1月20日に Mercari Day 2017 というイベントを開催しました。

当日はあまり天気も良くない中、とてもたくさんの方々に足を運んで頂き大盛況の中イベントを終えることができました。

ご参加いただいた皆様、ありがとうございました!

この記事では、そのイベント内で行われた全ての技術系の発表資料をまとめて紹介させていただきます。

スライド一覧

以下、登壇者スライドの一覧になります。

続きを読む

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 によって更新されている

続きを読む