Damn are getting
the new generation students
iPads in high school

iText, Google App Engine, iPads, Html5

kars@q42.nl
q42.nl

Agenda

• About Q42
• The Case
• Demo 1
• Technical Architecture
• Demo 2
• Next
!2
q42.nl

Q42
Software Engineers 

&

Interaction Engineers 

(40+)



wanting to



make the user kick ass!
q42.nl

Q42 Office
The Case

q42.nl

Schooltas:
Let students learn more efficient


•
•
•
•
•
•

personal device: a device for every student
in a classroom
at home
traveling
teacher
digiboards

!5
Numbers

q42.nl

2011 Version 1.0, 1.1, 1.2



2012 Version 2.0, 2.1, ...


2000 daily users, 26 pilot schools
20.000+ personal notes
target audience: 900.000 students in High Schools
1.000’s books (for now)

!6
q42.nl

Tech stack

• Play framework 1.2.4
• Google App Engine
• iText
• iOS native + Html5 clients
!7
q42.nl

Demo

• Demotime

!8
q42.nl

Technical Stuff

• Platform
• Datamodel
• Setup
• Learnings
!9
Platform

q42.nl

Books: PDF’s

Enrichments: a lot

GAE Platform
iPad delivery (DRM)
Html 5 delivery (rendering) (tablets, laptop)
... (rest)

1.
Encryption

3.
CDN 
Delivery

2.
Rendering

!10

4.
FT search
...
Data

q42.nl

Split

Book
Task
Queue’s
Bundle
Backends

iText
encryption jobs

Encrypted Book

iText
Rendering jobs
Downloads
!11
q42.nl

GAE

• We deploy every day.

!12
q42.nl

GAE & iText

• Backends & Taskqueue’s
• BlobStore
• iText encryption tasks
!13
q42.nl

GAE & iText

• Learnings
• encryption is fast
• in-memory: we need RAM
• BlobStore unreliable and slow
• CDN delivery: oh yeah
• TaskQueue’s to the rescue
• B8’s dynamically (4.8Ghz, 1Gb ram); :)
• Backends: max 10Gb RAM in total
• Play Framework: slow bootup (10 .. 15 s)
• Objectify Play Framework Module: don’t. Use Siena
!14
q42.nl

Demo

• Demotime

!15
q42.nl

Next

• PDF fulltext search
• Interactive Document Format

!16
GAE

q42.nl

• Focus on what you want to do


• Code.
!17
GAE

q42.nl

•
•
•
•
•
•
•
•

Taskqueue’s
Backends

•
•
•
•

Bigtable
Admin
Deploys
Traffic Splitting
Scale up & down
FT logfiles

!18

Image Server & CDN
Cost
Global latency
BlobStore, GStore?
q42.nl

Tech startingpoints

• http://www.playframework.org
• http://code.google.com/appengine


• @q42 / q42.nl
• @schooltasapp
• schooltas.net
• @karsveling
!19

Damn, the new generation kids are getting iPads in Highschool!