Google Spreadsheets and Python

This post is inspired by Patrick McKenzie’s reminder that sometimes you don’t need a database: So if you’re building out a quick CRUD app for e.g. internal use, Google Docs as a backend (consumed via JSON) is *surprisingly* powerful. — Patrick McKenzie (@patio11) July 5, 2014 In this tutorial, we’ll use Anton Burnashev’s excellent gspread Python package to read, write, and delete data from a Google Spreadsheet with… Read More

Tesseract.js: How To OCR Remote Images from a URL in Node

Tesseract.js is a JavaScript OCR library based on the world’s most popular Optical Character Recognition engine. It’s insanely easy to use on both the client-side and on the server with Node.js. Server side, Tesseract.js only works with local images. But, with a little help from the request Node package, we can download a remote image from a URL and then OCR it with Tesseract.js.  We’ll tackle this in three steps: Write… Read More

Fun with Markov Chains, Python, and Twilio SMS

One of the many allures of Twitter is that you can tweet at your favorite celebrity and (maybe) get a response. Still though, tweeting isn’t quite as intimate as trading text messages. So we thought it’d be fun to use Markov Chains, Programmable SMS, and Python to create a bot that impersonates your favorite Twitter personality.  We could use the code below to create an SMS chat bot that sounds… Read More

3 Things You May Not Know About Twilio Programmable SMS

Twilio Quickstarts make it easy to get started with Programmable SMS. But where do you go to learn more after you send and receive your first text messages? Twilio Guides are the documentation you need after “Getting Started.” Guides answer common questions and come replete with code snippets in all the most popular languages so that you can build your Twilio app faster. Here are three… Read More

Build a Fantasy Football Hotline with Ruby and Twilio Voice

A phone was once the fastest way for a sports fan to get their news. In the 70s, 80s and 90s a business called Sports Phone served as a fan’s lifeline for up-to-the minute sports reports. Grantland recently ran this fascinating piece on the rise and fall of Sports Phone: The concept couldn’t be simpler: You call a number and hear a minute-long message with the latest scores and sports… Read More

A Simple Way to Receive an SMS with Ruby, Sinatra, and Twilio

Here’s all the code you need to receive an SMS message and to send a reply using Ruby, Sinatra, and Twilio:

If you’d like some explanation on how that code works, watch this short video, or just keep reading. When someone texts your Twilio number, Twilio makes an HTTP request to your app with details about the SMS passed in the request parameters. In this post, we’ll… Read More

A Simple Way to Receive an SMS with PHP and Twilio

In this tutorial we’ll receive and reply to a text message in PHP. If you’re the type who likes to skip to the punchline, create a file named message.php and paste in this code:

To learn more about how this works, watch this one minute video, or just keep reading. Twilio’s HTTP Request When someone texts your Twilio number, Twilio makes an HTTP request to your app. Your app parses… Read More

How to Receive an SMS in Node.js with Twilio and HyperDev

When someone texts your Twilio phone number, Twilio makes an HTTP request to your app. Details about the inbound message, such as what it said and the number it was sent from, are passed in the parameters of that request. In this post we’ll look at how to receive and parse that request in JavaScript using Node.js and Express. Then we’ll look at how to reply to the inbound SMS with… Read More

How I Taught My Dog to Text Selfies with an Arduino and Twilio

When Twilio launched Programmable MMS, I started to wonder if we could teach our dog to text us selfies. Thanks to the Arduino Yun and a whole bunch of treats, the answer is a resounding “Yes!”, as you can see in this amazing video from Keith Hopkin over at Mashable: What you see in the video is a cigar box (your local cigar shop probably sells empties for $2)… Read More