More than Just Lines on a Map: Best Practices for U.S Bike Routes
DOTGO
1. text “jakemcgraw” to
DOTCOM (368266)
super simple sms
with DOTGO
Sunday, October 17, 2010
2. text “jakemcgraw” to
DOTCOM (368266)
presenter
• jake mcgraw
• developer at DOTGO
• j.mcgraw@dotgo.com
• @jakemcgraw
Sunday, October 17, 2010
3. text “jakemcgraw” to
DOTCOM (368266)
sms rocks
• push updates
• higher engagement
• always available
Sunday, October 17, 2010
4. text “jakemcgraw” to
DOTCOM (368266)
sms sucks
• dedicated short codes are expensive, slow
and restrictive
• sms aggregators are expensive
• third party sms services suffer from the
same issues
• random shortcode, random keyword, did I
mention really expensive?!
Sunday, October 17, 2010
5. text “jakemcgraw” to
DOTCOM (368266)
solution
• make sms apps more like web apps
• own the access method
• own the app code
• remove the high cost
• diminish third party interference
Sunday, October 17, 2010
6. text “jakemcgraw” to
DOTCOM (368266)
DOTGO
• build an sms app like a web app
• instantly deploy code to your server
• use your domain as a shortcode keyword
• send, receive messages for free
• access a ton of additional features
• it’s good to go, right now!
Sunday, October 17, 2010
7. text “jakemcgraw” to
DOTCOM (368266)
compare
third party
roll your own DOTGO
service
Sunday, October 17, 2010
8. text “jakemcgraw” to
DOTCOM (368266)
cmrl
• concise message routing language
• xml-based language for text messaging
content
• describes what happens when a user
texts a domain name with a given
keyword pattern
• lives on your server
Sunday, October 17, 2010
9. text “jakemcgraw” to
DOTCOM (368266)
hello world
save index.cmrl to your domain root
<?xml version="1.0" encoding="UTF-8"?>
<cmrl xmlns:dotgo="http://dotgo.com/cmrl/1.0">
<match pattern="*">
<message>
<content>DOMAIN.COM<br/>
Hello World! </content>
</message>
</match>
</cmrl>
text domain to DOTCOM (368266)
Sunday, October 17, 2010
10. text “jakemcgraw” to
DOTCOM (368266)
match hierarchy
use match tags to create a hierarchy
<?xml version="1.0" encoding="UTF-8"?>
<cmrl xmlns:dotgo="http://dotgo.com/cmrl/1.0">
<match pattern="foo">
<match pattern="">
<message><content>Foo</content></message>
</match>
<match pattern="bar">
<message><content>Foobar</content></message>
</match>
</match>
</cmrl>
text domain foo or domain foo bar
Sunday, October 17, 2010
11. text “jakemcgraw” to
DOTCOM (368266)
reply to navigate
use a tags to create reply codes
<?xml version="1.0" encoding="UTF-8"?>
<cmrl xmlns:dotgo="http://dotgo.com/cmrl/1.0">
<match pattern="">
<message><content>Reply:<br />
<a query="domain foo" /> for foo<br />
<a query="domain foo bar" /> for foobar<br /></content></message>
</match>
<match pattern="foo">
<message><content>Foo</content></message>
</match>
<match pattern="foo bar">
<message><content>Foobar</content></message>
</match>
</cmrl>
text domain then reply with 1 or 2
Sunday, October 17, 2010
12. text “jakemcgraw” to
DOTCOM (368266)
dynamic content
use engine tags to generate messages
<?xml version="1.0" encoding="UTF-8"?>
<cmrl xmlns:dotgo="http://dotgo.com/cmrl/1.0">
<match pattern="time">
<engine href="http://domain.com/time.php" />
</match>
</cmrl>
<?php
print '<message><content>';
print date('c');
print '</content></message>';
text domain time to get current time
Sunday, October 17, 2010
13. text “jakemcgraw” to
DOTCOM (368266)
much more
• subscriptions • DOTCOM (368266)
• push updates • DOTNET (368638)
• keyword • DOTORG (368674)
corrections
• DOTGOV (368468)
• session variables • DOTEDU (368338)
• analytics • Send any domain to
• premium accounts DOTCOM
Sunday, October 17, 2010
14. one more thing...
• jQuery Mobile UI + CMRL
• http://jakemcgraw.com/jqcon/convert.php?
url=jakemcgraw.com
• http://goo.gl/fQf5
Sunday, October 17, 2010
15. text “jakemcgraw” to
DOTCOM (368266)
sources
• http://gigaom.com/2007/03/16/10-things-to-
know-about-short-codes/
• http://dotgo.com/Support/Documentation/
• http://github.com/jakemcgraw/dotgo-jqcon-
presentation
Sunday, October 17, 2010