Slide 1

Slide 1 text

OpenCNAM How and why we built a Caller ID Name API.

Slide 2

Slide 2 text

Chief Hacker @ Telephony Research @rdegges http://rdegges.com Randall Degges

Slide 3

Slide 3 text

Telephony Research

Slide 4

Slide 4 text

What is CNAM?

Slide 5

Slide 5 text

This is CNAM +1 (818) 217-9229 DEGGES,RANDALL

Slide 6

Slide 6 text

What's wrong with CNAM?

Slide 7

Slide 7 text

CNAM Sucks!

Slide 8

Slide 8 text

BIG COMPANIES OLD STANDARDS COSTLY COMPLEX SMALL COMMUNITY

Slide 9

Slide 9 text

AT&T VERIZON

Slide 10

Slide 10 text

Big Companies Monopolize the infrastructure.

Slide 11

Slide 11 text

Big Companies Don't innovate!

Slide 12

Slide 12 text

Old Standards Been around since early 1900.

Slide 13

Slide 13 text

Old Standards CNAM is a 15 character ASCII string.

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Old Standards CASE INSENSITIVE!

Slide 16

Slide 16 text

Old Standards Different in every country!

Slide 17

Slide 17 text

Old Standards Not available in US mobile networks.

Slide 18

Slide 18 text

Costly Telco negotiations cost $xxx,xxx.

Slide 19

Slide 19 text

Costly Special hardware and software.

Slide 20

Slide 20 text

Costly Users pay around 1 cent per query.

Slide 21

Slide 21 text

Small Community

Slide 22

Slide 22 text

Complex

Slide 23

Slide 23 text

A person calls you.

Slide 24

Slide 24 text

Your carrier looks at the local switch for CNAM.

Slide 25

Slide 25 text

Not found? Look at the next switch.

Slide 26

Slide 26 text

Repeat.

Slide 27

Slide 27 text

Still not found? Query the provider.

Slide 28

Slide 28 text

What Doesn't Suck?

Slide 29

Slide 29 text

Hacks for mobile. Data quality issues. Bad user experience.

Slide 30

Slide 30 text

"So, why not get more hackers involved in the telephony industry?"

Slide 31

Slide 31 text

You kidding me, bro?

Slide 32

Slide 32 text

"Why is this so hard?"

Slide 33

Slide 33 text

"It's just a string!" - Every programmer, ever.

Slide 34

Slide 34 text

What's the solution?

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

What is OpenCNAM? A REST API for hackers that want Caller ID data without the bullshit.

Slide 37

Slide 37 text

"We should make a simple Caller ID API service." "Alright, let's do this."

Slide 38

Slide 38 text

How OpenCNAM Works

Slide 39

Slide 39 text

$ curl https://api.opencnam.com/v2/phone/+16502530000 GOOGLE INC

Slide 40

Slide 40 text

$ curl -H "Accept: application/json" https://api.opencnam. com/v2/phone/+16502530000 { "updated": "2012-12-05T19:58:13.770770", "name": "GOOGLE INC", "created": "2012-10-12T06:53:05.194858", "price": 0, "uri": "/v2/phone/%2B16502530000", "number": "+16502530000" }

Slide 41

Slide 41 text

CNAM Should be Simple

Slide 42

Slide 42 text

... And Open ... ● Free cached CNAM dips (60 per hour). ● No account necessary.

Slide 43

Slide 43 text

... And Cheap ... $.004 per query!

Slide 44

Slide 44 text

... And Cheap ... That's 300% cheaper than real life.

Slide 45

Slide 45 text

(funny story)

Slide 46

Slide 46 text

How does OpenCNAM work?

Slide 47

Slide 47 text

How OpenCNAM Really Works

Slide 48

Slide 48 text

● Flask ● Amazon DynamoDB ● Heroku ● Amazon Web Services ● SSL ● Service Oriented Architecture ● PostgreSQL

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

We <3 Flask Simple.

Slide 51

Slide 51 text

We <3 Flask Lightweight.

Slide 52

Slide 52 text

We <3 Flask Great libraries.

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

We <3 DynamoDB Simple JSON data store.

Slide 55

Slide 55 text

We <3 DynamoDB Hosted by Amazon.

Slide 56

Slide 56 text

We <3 DynamoDB Fast. Really fast.

Slide 57

Slide 57 text

We <3 DynamoDB Like 1ms fast.

Slide 58

Slide 58 text

We <3 DynamoDB 2500% faster than PostgreSQL.

Slide 59

Slide 59 text

We <3 DynamoDB Cheap.

Slide 60

Slide 60 text

We <3 DynamoDB Reliable (data replicated).

Slide 61

Slide 61 text

We <3 DynamoDB SSD storage.

Slide 62

Slide 62 text

"DynamoDB is so fast, you don't need memcache."

Slide 63

Slide 63 text

CNAM Lookup (free)

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

We <3 Heroku Built on top of AWS.

Slide 66

Slide 66 text

We <3 Heroku Simple.

Slide 67

Slide 67 text

We <3 Heroku Reliable. 99.99%

Slide 68

Slide 68 text

We <3 Heroku Easy to scale.

Slide 69

Slide 69 text

We <3 Heroku Lots of addons.

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

We <3 PostgreSQL ● heroku addons:add heroku-postgresql ● --fork ● --follow

Slide 72

Slide 72 text

The Heroku Hacker's Guide

Slide 73

Slide 73 text

SSL ... EVERYWHERE!

Slide 74

Slide 74 text

How do you architect your code?

Slide 75

Slide 75 text

We <3 SOA

Slide 76

Slide 76 text

SOA Rocks Simple code base.

Slide 77

Slide 77 text

SOA Rocks Clear purpose.

Slide 78

Slide 78 text

SOA Rocks Well defined APIs.

Slide 79

Slide 79 text

SOA Rocks Independent scaling.

Slide 80

Slide 80 text

SOA Rocks Isolated failure.

Slide 81

Slide 81 text

What libraries do you use?

Slide 82

Slide 82 text

dynamodb-mapper

Slide 83

Slide 83 text

dynamodb-mapper Queries

Slide 84

Slide 84 text

flask-login

Slide 85

Slide 85 text

flask-login Loader

Slide 86

Slide 86 text

flask-login Decorator

Slide 87

Slide 87 text

How do you do billing?

Slide 88

Slide 88 text

"This is fucking awesome." - Me Stripe

Slide 89

Slide 89 text

Bitpay "It's like Stripe, for bitcoin." "It's also ugly as hell." - Me

Slide 90

Slide 90 text

What about marketing?

Slide 91

Slide 91 text

Marketing

Slide 92

Slide 92 text

YOU DON'T NEED MARKETERS

Slide 93

Slide 93 text

You need to talk to people!

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

Google your industry. Find your customers. Put contact names, company URLs, and emails into a Google doc. Email 3 customers per day, asking for feedback. Listen to feedback.

Slide 96

Slide 96 text

What are you doing to fix this shit?

Slide 97

Slide 97 text

"The Future"

Slide 98

Slide 98 text

xCNAM { "number": "+18182179229", "cnam": "DEGGES,RANDALL", "xcnam": "Randall C. Degges II", ... }

Slide 99

Slide 99 text

CNAM Storage

Slide 100

Slide 100 text

Thank You

Slide 101

Slide 101 text

Give it a Go

Slide 102

Slide 102 text

Don't Settle for the Status Quo