December 12, 2012

  • Hosted at QConnect (Get confirmed URL soon)


by Randall Degges

Problems he wants to solve in Caller ID

  • Ancient tech dominates (1905 era)

  • 15 character strings for caller ID isn’t enough

  • Caller ID doesn’t really work on Mobile - it involves serious hacks

  • Users pay around 1 cent per query

  • resolving it is hard

    • Pricey: Telco negotiating means talking to Executives and very expensive
    • Resources: Tiny community of developers who know CNAM telephony
    • Complex: Based off really weird switches that cache CNAM data without updating
  • Summary

    • Hacks for mobile
    • Data quality issues
    • Pricey
"It's just a string"

-- Every developer, ever

How they resolved it

  • Figure out how to replace it

  • Provide longer Unicode string

  • Make it cheap: .04 cents per query (really cheap)

  • Encrypt everything

  • Provide an API:

    $ curl -H "Accept: application/json" # TODO add rest


  • Flask

    • Fast
    • Under 1000 lines of code so they know it’s stable
    • Lots of good libraries for it
  • AWS

    • Dynamic scaling

    • DynamoDB

      • Similar to MongoDB, at least as fast and much more stable

      • Really, really fast

        • In their case it’s 2500% (25x) faster than PostgreSQL if you are in the Amazon Datacenter
        • DynamoDB is so fast in their case it’s faster than using MemcachedD
      • Reliable (data replicated across data centers)

  • Heroku

    • Simple to get started
    • Reliable (99.99%)
  • PostgreSQL

    • Via Heroku can scale up as needed
    • Use read-slaves to increase for performance
  • Stripe

  • BitPay for BitCoin

Method - SOA

  • They broke up the project into a bunch of components

    • API service (handles telephony)
    • Accounts App (user authentication)
    • Website app (public facing site)
  • Benefits

    • Developers can focus on individual components
    • If one part breaks, the other parts will still function

Flask Libraries they used

  • dynamodb-mapper

    • Replicates ORM functionality
    • Pretty fast
  • flask-login

    • Handles authentication
    • flask-login decorator


  • You don’t need marketers

  • Use this formula

    • Google your industry
    • Find your customers
    • Put names, urls, and emails into a google docs
    • Email 3 customers per day, asking for feedback
    • Listen to feedback

Selling: xCNAM

A better protocol for Called ID

  • 100 character Unicode string
  • CNAM Storage product
  • Make it faster
  • Make it cheaper

The Role and Representation of Python in the Online Educational Boom

By Justin Hampton


  • First distance learning system was proposed in 1892!
  • In the 1970s correspondence education picked up with television lectures
  • Now we have a ton of on-line courses

The Future is in the Headlights

  • Modular vs. Linear
  • Personalized vs. Generic
  • Distributed vs. Localized
  • Accessible vs. Elite

… but we’re not there yet.

What we have today

  • MOOCs: Massive Open Online Courses (e.g. Coursera, Udemy, Udacity, EDX, etc)
  • DIY courses: (hackerspaces, Maker Fair)
  • Peer-to-peer Learning Exchanges (Meetups, PyCons, et al)

MOOCs are the new kid on the block. MIT Courseware and other things have been around for a while, but haven’t taken off until recently.

Why this is important: 1 trillion dollars in US student debt means that many students feel can’t educate themselves via college.

The MOOC Controvery

Issues that people raise against MOOC:

  • Is that a real education that you’re getting?!?!

    • read Clay Shirky’s essay on the subject.
  • The encroachment of entrepreneurs

    • Is it wise to drive education through business?
    • What skills will entrepreneurs want people to learn?
  • Potentially inapplicable for most forms of education

    • Can you get your medical degree this way?
  • Impossible to stop cheating/other forms of academic dishonesty

    • How do you really test the student?
    • How can the education system get validated if online?

What does this have to do with Python?

  • Everyone offers a Python programming course.
  • Python pops up even in non-programming courses such as statistics
  • Python is “the new Basic”

Taking Advantage

  • Getting with the programs: Working with EDX, Coursera, et al on local tutoring programs (can be part of paid portions)

  • Making room for the influx

  • Reinforcing via tutorials and small instructional efforts like PyCon tutorials

  • Devising our own platforms: the black best system

    • College degrees take this place in traditional educational systems
    • What can we do to enforce standards across MOOCs

Continuing Education

  • Not much use for advanced Python developers - perhaps just reinforcement.
  • There is a need that exists to educate towards a an individual’s unique circumstance, no matter who one is.
  • Opportunity and money for experimentation is there.


  • Collegiate/University education provides a type of socialization that can be a factor in employment. This factor is often ignored by people who advocate not attending Collegiate/University. IE - lack of cultural context needed to interact at certain levels:

    • History
    • Literacy
    • Sociology
  • Entrepreneurs are often shockingly uneducated and inexperienced, relying on sales rather than any other skill. Do we want them determine the future of education?

  • Really interesting discussion about online education at SoCal Python.

    • Are MOOCs really the answer?
    • Do we want business driving education?