[RakutenTechConf2013] [D-4] Singapore de Melonsoda

85
Singapore de Melonsoda Corin (Yuko Furusho) Jacob (Levine Jacob) Hoshipy (Sayuri Hoshikawa) Open Services Platform Department Rakuten, Inc.

description

Rakuten Technology Conference 2013 "Singapore de Melonsoda" Levine Jacob, Furusho Yuko, Hoshikawa Sayuri (Rakuten)

Transcript of [RakutenTechConf2013] [D-4] Singapore de Melonsoda

Page 1: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

Singapore de Melonsoda

Corin (Yuko Furusho)Jacob (Levine Jacob)Hoshipy (Sayuri Hoshikawa)

Open Services Platform Department Rakuten, Inc.

Page 2: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

2

Schedule

2

MelonsodaNew Domain Specific Language System for Ad and Affiliate

1

SingaporeSingapore Startup ChallengeOpen APIs hackathon activity

de

Page 3: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

3

Open

Services

Platform

Common Key Word

Page 4: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

4

What is Open Services Platform?

Outside of Rakuten Ecosystem

SPACE

SPACE

SPACESPACESPACE

SPACE

SPACE

SPACESPACE

SPACE SPACE

SPACESPACESPACE SPACESPACE

SNS

Partner companys

Developers

Page 5: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

5

What is Open Services Platform?

SNS

Partner companys

Developers

Review OpenBookmark

Facebook, twitter, Line

Affiliate Advertise Tag

APIs

Rakuten Ecosystem

Story 1

Singapore

Story 2

Meronsoda

Page 6: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

6

Schedule

2

MelonsodaNew Domain Specific Language System for Ad and Affiliate

1

SingaporeSingapore Startup ChallengeOpen APIs hackathon activity

de

Page 7: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

Self introductions

We are producers, Promote Rakuten Web service

Yuko Furusho2009 Joined RakutenPromotion@JAPAN

Levine Jacob2012 Joined RakutenPromotion@Overseas

Page 8: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

8

Schedule

2 What is Rakuten API?

3 Rakuten API Event

4 Singapore Startup Challenge

1 Our mission

Page 9: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

9

Schedule

2 What is Rakuten API?

3 Rakuten API Event

4 Singapore Startup Challenge

1 Our mission

Page 10: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

10

Our mission

Developers

ProvideRakuten API

Create APPusing Rakuten API

Customer Flow

Page 11: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

11

Schedule

2 What is Rakuten API?

3 Rakuten API Event

4 Singapore Startup Challenge

1 Our mission

Page 12: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

12

What is Rakuten API?

APIsRakuten Ichiba API

Rakuten Auction API

Rakuten books API

Rakuten GORA API

Rakuten Travel API

Rakuten Recipe API

Page 13: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

13

http://webservice.rakuten.co.jp/

What is Rakuten API?

We provide APIs on Rakuten WEB SERVICE.

Page 14: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

14

Schedule

2 What is Rakuten API?

3 Rakuten API Event

4 Singapore Startup Challenge

1 Our mission

Page 15: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

15

Are you using

Rakuten APIs?

Question

Page 16: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

16

2013, We noticed

Application with using Rakuten API is not so increasing…

Need more support!!

Rakuten API user is not so increasing…

Need more promotion!!

Page 17: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

17

Our Action for developers

Application Id

Techn

ic Level

High Level&

Have Account

High Level&

No Account

Low Level&

Have Account

Low Level&

No Account

Hackathon EventsTo promote Rakuten APIs

API Workshop To teachhow to use Rakuten APIs

Page 18: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

18

Rakuten API Event Activitys in 2013

Jan Apr

API Work Shop

July

Aug

Student Hackathon

Page 19: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

19

Mash Up Award 9

Tokyo Tokushima

Okinawa

Nagoya

Kyoto Osaka

Rakuten API Event Activitys in 2013

Page 20: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

20

Result of promotion in Japan

After Workshop and Hackathon,Application with using Rakuten API ,andRakuten API user are Increasing than before!!

Page 21: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

21

Schedule

2 What is Rakuten API?

3 Rakuten API Event

4 Singapore Startup Challenge

1 Our mission

Page 27: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

27

Planning: Challenges

Problem #1: Japanese only documentation

Page 28: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

28

Planning: Challenges

Solution #1: Translate documentation to English

Page 29: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

29

Planning: Challenges

Problem #2: Japanese only output

Page 30: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

30

Planning: Challenges

Solution #2: Machine translation

Page 31: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

31

Breaktime

Photo: Jacob Levine

Delicious

Page 32: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

32

API Workshops

Photo: Haider Aly-Reza

Time to hack

Page 33: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

33

API Workshops

Photo: Haider Aly-Reza

How do these APIs work?

Page 34: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

34

Mini-hackathon

Modified API call and CSS

Page 35: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

35

Startup Challenge Launched

Rankings based on amount of sales

Page 36: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

36

One-to-one support

Using social media to help developers

Page 37: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

2nd Prize: JFASH

Page 38: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

1st Prize: SuupaaCat

Page 39: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

39

Hobby purchases

Page 40: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

40

Shoe purchases

Page 41: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

41

Fashion purchases

Page 42: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

42

We open Rakuten services!We are here for you!We support any developers!Every time!Everywhere!

Page 43: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

43

I have good newsfor Rakuten API users!!

Page 44: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

44

Ruby SDK released!!

Page 45: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

45

API analytics released!!

https://webservice.rakuten.co.jp/analytics

Page 46: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

46

http://rakuten-webservice.tumblr.com/

http://www.facebook.com/RakutenWebservice

http://twitter.com/RakutenAPI

Page 47: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

47

Schedule

2

MelonsodaNew Domain Specific Language System for Ad and Affiliate

1

SingaporeSingapore Startup ChallengeOpen APIs hackathon activity

de

Page 48: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

Melonsoda!

Oct/26/2013Sayuri Hoshikawa

Open Services Platform DepartmentOpen Services Platform SectionAffiliate Platform Group

Page 49: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

49

Self Introduction

Sayuri Hoshikawa

Open Services Platform DepartmentAffiliate Platform GroupRakuten Affiliate Team

My work~2011.03 2011.04 Join Rakuten2011.07- Develop Dynamic Ad Contents2013.06- Develop Something using Melonsoda

Call meHoshipy!

LanguageJavaScript

Page 50: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

50

Application

We create an application which changes the suggestion by the condition on the client side.

Condition

Suggestion A

Suggestion B

YES

NO

Page 51: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

51

For example

If you are a girl, we’ll suggest sweets.But if you are a boy, we’ll suggest Monster Hunter.

Are you a girl?

Suggestion B

YES

NO

Page 52: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

52

way

By creating many conditions and suggestions, we can offer the best one for the audience.

Condition

SuggestionYES

NOCondition

SuggestionYES

NOCondition

Suggestion

Suggestion

YES

NO

Page 53: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

53

Wishes

To realize it, we have two wishes!

1.Everyone including non-engineers can understand the logic.

2. Quickly changing logic

Page 54: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

54

Why is this needed?

1.Everyone including non-engineers can understand the logic.

Sales person

ask

answerask

answer

If they can understand..

Change by themselves

If they can’t understand..

Page 55: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

55

Why is this needed?

Time

Try 2nd Try 3rd

Try 4th

Try 5th

Try 6th

Try 7th

Try 8th

Try 1st

Goal

1

2Try 1st

Try 2nd

Not achieved..

We want to make AB test cycle quickly

to achieve goal in short time.

2. Quickly changing logic

Page 56: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

56

So, to realize these wishes, we made Melonsoda!

Page 57: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

57

Our Melonsoda

Page 58: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

58

MelonsodaVirtual

Machine

Melonsoda Material

Ices(Condition &

Action)Menu

(Source code)

Page 59: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

59

Melonsoda architecture

Parser

Menu

Create Ice

Page 60: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

60

MelonsodaVirtual

Machine

Melonsoda architecture

MVM interprets by order and figures out the result

Melt

Page 61: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

61

MelonsodaVirtual

Machine

Melonsoda architecture

Condition1’s data

MVM have informationand can decide the result

by it!

Page 62: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

62

If you use melonsoda…

Page 63: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

63

Change logic

It’s very easy

Menu

Page 64: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

64

Even if Sales person..

1.Everyone including non-engineers can understand the logic.

Sales person

ask

answerask

answer

If they can understand..

Change by themselves

If they can’t understand..

Page 65: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

65

If you use melonsoda…

So many call backs will disappear!And become readable and flexible!

Page 66: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

66

Our happy

No more long source code changes are needed

Page 67: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

67

To do tuning in two way

Melonsoda Not Melonsoda

Development : 5 hour

Coding : 1min

Integration Test

Release

Test

Release

Short Time!!

Design : 1 hour

Unit Test : 2 hour

Page 68: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

68

Quickly ABtesting

Time

Try 2nd Try 3rd

Try 4th

Try 5th

Try 6th

Try 7th

Try 8th

Try 1st

Goal

1

2Try 1st

Try 2nd

Not achieved..

We want to make AB test cycle quicklyto achieve find goal

in short time.

2. Quickly changing logic

Page 69: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

69

You can’t imagine..?

Let’s DEMO

Melonsoda!!

Page 70: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

70

Please answer below questions.with hash tag “#melon1026”

If your answer is correct,You get a prize in DEMO!

DEMO

Q1??? float

#melon1026

Q2??? float

#melon1026

Q3

??? float #melon1026What’s this name?

Page 71: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

71

By July

What I talked about so far is just until July,We didn’t have satisfaction before Melonsoda..

_人人人人人人_>   WE < ̄ Y^Y^Y^Y^Y^Y  ̄ 

Page 72: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

72

Member

Freddie AgeoAlliz

Page 73: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

73

Go to Development Camp

Then, we went to Atami!

Page 74: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

74

Then,,

Power up Function!

Page 75: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

75

Power up Function

1. Nested flow chart

2. Pass arguments

3. npm install

4. Pluggable ice

Page 76: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

76

Nested flow chart

sequential ice

More complicate logic!!

Page 77: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

77

Nested flow chart

someIce1 | Ice2 – Ice3

Horizontal Line connects adjoining ices

Vertical Line connects ices based on character’s index

Parser creates a binary tree called “Corn Tree”Each ice is placed on one corn

Page 78: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

78

Page 79: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

79

Pass arguments

Ice can get arguments!

Less ice

Page 80: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

80

npm install

Melonsoda is downloaded by npm install

Page 81: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

81

Pluggable ice

You can create ice by yourself!!It is pluggable now!

Page 82: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

82

At last

We’ll make Melonsoda open source code in near future.So if you are interested in, please tweet “interest!!” with hash tag “melon1026”.I’ll send you the announcement of“Melonsoda night”.

I hope you also enjoy developingMelonsoda!!

Interest! #melon1026

Page 83: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

83

Conclusion

SNS

Partner companys

Developers

Page 84: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

84

Thank you for listening!

Page 85: [RakutenTechConf2013] [D-4] Singapore de Melonsoda

Q & A