Developing Interactive, Scalable HTML5 Apps on the Cheap: Serverless, Unhosted, No Backend, BAAS, PAAS, Oh My
But one problem in particular has been my biggest hurdle, which I discuss more here: the cost of scalable hosting. With “old-fashioned” desktop apps or single-user applets or web animations or games, you can fire and forget it. Develop your app or site, slap it up on the web, and people download it or visit it and use it. Static web hosting is practically free (like this WordPress blog). However, if you want social features, persistence (database), or other things like that, you need to have a database or other backend at minimum, and it needs to be able to scale. I’ve always had my hopes up for Drupal - it is still my favorite go-to solution for social but non-interactive web applications, and several folks are using Drupal as a backend for HTML5 or mobile apps, but it is not so easy or so cheap to scale up. A lighter weight alternative to Drupal, perhaps built on node.js and MongoDB, has not yet emerged.
The Serverless, Unhosted, No Backend Options
Anyway, so, one hurdle to developing interactive educational HTML5 applications on the web is the cost of scalability. Web hosting is cheap (or even free) at the beginning, but can quickly spiral out of control and sometimes lock you into a proprietary platform (like google appengine). I could get a grant, but what about when the funding runs out? I could beg for money by posting my ugly mug at the top of every page like Jimmy Wales did on Wikipedia, but I’m not a sadist. I’m not a venture capitalist/entrepreneur, and unfortunately, I’m not at a university that supports or provides web application hosting (I used to be able to just run apps off the computer under my desk as an undergrad, grad, and professor, or by running cheap virtual private servers for as little as $15/year when scaling up wasn’t much of a concern).
Here are some sites that describe lower-cost, open source, and scalable cloud hosting solutions, by either letting visitors host their own data (in their browser’s local cache, or on dropbox or google drive or another site), or by using a cheaper backend-as-a-service that your front-end connects to. [Really, none of these (except WebP2P) are completely "serverless", and many do not eliminate the costs, either, but it is progress.] Various terms have been used for some of these concepts: serverless, no backend, unhosted, and there are also new and cheaper cloud hosting services that provide a backend-as-a-service (BAAS) or a platform-as-a-service (PAAS).
- No Backend – “a new approach to build data driven apps without thinking backend.” See the solutions and examples listed.
- Unhosted – “freedom from web 2.0′s monopoly platforms” – came before the “No Backend” movement and looks to be completely open source and not tied to one third-party platform. Their site also lists various tools and example apps that let users control their own data.
- Nimbusbase is an interesting option that uses Google Drive or Dropbox to store your user’s data.
- And here’s a sample PouchDB & CouchDB-based conference scheduling app that also works offline. (Just as some have stated a mantra that we should develop HTML5 applications “mobile first“, some have also stated that we should try to develop with “offline first” support, too, and to that I would also add “accessibility first“)
- WebP2P (peer-to-peer) is an effort that builds on top of WebRTC (real-time communication) to allow for truly serverless web apps – apps that connect from browser to browser. It is still very new, and only supported by bleeding edge versions of Chrome and Firefox (although there is a WebRTC datachannel polyfill to fill in some of the functionality for other browsers). See the WebP2P mailing list and WebRCT Google+ page for more info and examples.
- ShareIt, based on DirtyShare, is a proof of concept that allows you to share files from your browser
- PeerJS wraps the WebRTC implementation to provide a complete, configurable, and easy-to-use peer-to-peer data API.
- Open Peer is another WebRTC-based P2P Protocol & Specification
- GrimWire is a RESTful Browser OS that does Peer-to-peer over WebRTC. It is built on the Local framework, which allows you to securely run user applications on the page using Web Workers.
- KadOH (Kademlia Over HTTP) is a framework to build P2P applications for browsers and node.js. By implementing the basis of the Kademlia DHT used for decentralized peer-to-peer networks.
- hackview is a webRTC based multi-person video chat with a collaborative editor
- There are several other WebRCT based video chat apps and demos: appRTC is a basic demo, veckon is more polished, conversat.io adds a lunar lander game for you to play while waiting for others to join you, and the folks at Mozilla have a widget to embed video chat into your own website.
- There are various WebRCT SIP/VOIP gateways becoming available.
- The AirTheremin uses WebRTC and the Web Audio API to let you control sounds using gestures in front of your webcam
- Data URIs – New browsers support very long URLs, and you can actually store quite a bit of data in it, such as text or even an image.
- Shortly is a serverless pastebin service that uses this technique
- The webSemantics Data to URI Converter will convert your image to a data URL
- DataURL will similarly convert files or images to data URLs for embedding in HTML or CSS files
- Back toward more server-centered strategies, the Backend-as-a-Service (BAAS) and Platform-as-a-Service (PAAS) Wikipedia pages list several cloud hosting providers, none of which really solve the cost issue, because you still have to pay for scaling up, but they can be cheaper on the whole than prior solutions.
- OpenShift by RedHat is an open source PAAS that I have found very interesting, and it appears to be very reasonably priced (and free for the entry level). You can host anything with it, node.js, Drupal, Java, etc.
- The BAAS market appears to be a very hot topic at the moment (see this BAAS ecosystem map), especially after one provider, Parse, was bought out by Facebook. But Apstrata is one that looks interesting, because you only pay by the number of users you have (under 500 is free), and it is made to work with Dojo Toolkit (and other options), which as I mentioned is accessible and also incredibly full-featured.
For an older article that hinted on this “serverless” trend, see Why The Future Of Software And Apps Is Serverless, and a newer article explores the No Backend movement in more detail: NoBackend: Front-End First Web Development.
Here are slides for a talk I’m giving to my university about issues to consider before offering MOOCs or accepting MOOCs for credit.
I also participated in a webinar about MOOCs for corporate learning, hosted by Jeanne Meister of FutureWorkPlace. A few slides related to that are at the end of the above presentation.
My last advice to both groups is that, even if you decide to not go with MOOCs today, keep a close eye on them. MOOCs are evolving extremely rapidly, both technologically and pedagogically. See for example these MOOCs that are pedagogically more interesting than just videos and quizzes: Passion Driven Statistics, Learning Creative Learning, and the Open Learning Design Studio MOOC I mentioned in my previous post about pedagogical issues with MOOCs. There are also millions of dollars being invested in MOOC development, with both new and old tools evolving to accommodate the unique demands of MOOCs. Several MOOC platforms are emerging, both free (Instructure’s Canvas.net, Blackboard’s CourseSites, Google+ Communities and Hangouts and other Google Apps) and open source (Class2Go, OpenMOOC, CourseBuilder, edX, P2PU, WordPress).
So 6 months from now, a year from now, MOOCs may look quite different.
And my first advice to everyone is: try a MOOC out for yourself. That’s the best way to better learn about them.
I can’t really provide reviews for these books, I haven’t read most of them yet (they are just lying in my 10 year old amazon saved items queue), but I thought I’d share the list for future reference:
Some new Books on Teaching, Learning, Education, Faculty Development
- Managing Technology in Higher Education: Strategies for Transforming Teaching and Learning – Tony Bates, check out his blog if you haven’t already:
- Taking Stock: Research on Teaching and Learning in Higher Education - a book Tony Bates mentioned in this post: why the professional development model is broken.
- See also this free e-book/pdf: Effective Practice in a Digital Age
- A Guide to Faculty Development
- See also this recent online faculty development course on developing blended learning courses:
- And I’ve seen this faculty development book recommended as well: Teaching What You Don’t Know
- Academically Adrift – I probably don’t even need to mention this one, it’s gotten so much attention, but here is a recent discussion and summary of responses/criticisms of the book.
- The Formative Assessment Action Plan: Practical Steps to More Successful Teaching and Learning – formative assessment is one of the most effective things you can do to improve the effectiveness of teaching and learning environments (see also work by Paul Black).
- See also this current discussion of challenges to formative assessment
- Trends and Issues in Instructional Design and Technology – new edition (3rd) of this standard instructional design textbook
- Informed Design of Educational Technologies in Higher Education: Enhanced Learning and Teaching
- The Systems Thinking Playbook: Exercises to Stretch and Build Learning and Systems Thinking Capabilities
- Education and Technology: Key Issues and Debates
- Deconstructing Digital Natives: Young People, Technology, and the New Literacies - see also this recent post on net gen skeptic with more on how the digital natives / digital immigrants distinction is dead (or at least dying).
- The Challenge of Rethinking History Education: On Practices, Theories, and Policy
- The National Academies Press (which recently made all their books available in pdf form for free, including the How People Learn book and Engineering in K-12 Education), recently released some new education books:
- Learning Science Through Computer Games and Simulations - See also this just published journal article: The Learning Effects of Computer Simulations in Science Education
- Successful K-12 STEM Education:Identifying Effective Approaches in Science, Technology, Engineering, and Mathematics
- A Framework for K-12 Science Education
- Single-Case Design (pdf) – how to do research with a single class, from the Department of Education What Works group
Some of these aren’t out just yet
- HTML5 Canvas
- Core HTML5: Volume 1: Canvas
- Learning HTML5 Game Programming: A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL
- HTML5 Cookbook
- Coredogs – some free online lessons/books on web development, drupal
New Books in Psychology, Technology, Design, Embodied Cognition
- Enaction: Toward a New Paradigm for Cognitive Science - see also this recent article The enactive approach: Theoretical sketches from cell to society
- The Primacy of Movement - Maxine Sheets-Johnstone
- Why We Make Mistakes: How We Look Without Seeing, Forget Things in Seconds, and Are All Pretty Sure We Are Way Above Average and related books such as The Invisible Gorilla: How Our Intuitions Deceive Us and The Age of American Unreason
- The Information: A History, a Theory, a Flood – by James Gleick (author of Chaos)
- Exposing the Magic of Design: A Practitioner’s Guide to the Methods and Theory of Synthesis
- Now You See It: How the Brain Science of Attention Will Transform the Way We Live, Work, and Learn
- The Third Teacher – exploring ways design can transform teaching
Like I mentioned in the previous post, the CES show next week promises to reveal a slew of new android tablets and phones, so we’ll see what is announced (and what is actually released).
Here are some android tips & resources I’ve run across in the past year:
- How to root the Droid (the first droid)
- How to root the NookColor
- How to read library e-books on an android tablet – right now the only official way is to use Adobe Digital Editions (ADE, which only runs on windows or mac) and use a device that ADE supports, such as the NookColor or Pocket Edge. Here’s an ADE video tutorial.
- If you’ve got an older android phone or tablet with only a few screens, I’d recommend LauncherPro or a similar app to improve your home screens. See this comparison between LauncherPro and other options like ADWLauncher.
- Keeping up with android news: See this twitter list for various sources like androidcentral:
- Places to find recommended, popular apps
- Open source apps – see these lists of open source apps and open source games (you’ll have to google to find the actual source though).
- Android development
Some free educational apps:
- X Construction Lite – bridge building game
- Google Sky Map – shows the names of stars, planets, constellations that you point at, using the accelerometer and compass
- There are apps or android-friendly mobile front-ends for Blackboard (requires university subscription) and Moodle (see also
- Video podcasting is possible with apps from Qik or Ustream viewer or broadcaster
- Physics: space physics lite, space simulator, physics calculator
- Musical instruments: mypiano, guitar solo lite
- Programming: IProgram, scripting layer for android, ruboto
- Various math practice apps like Math Workshop or Math Attack
- Of course there are all the e-book reader apps such as Aldiko, Nook, Kindle, …
- See also AppBrain’s education section and this list of 101 best android apps in education
- See also the IEAR site for many educational apps, but they are mostly iphone/ipad apps at this point.
Some free games:
- angry birds, of course
- hungry shark
- falling ball
- hit the penguin
- air attack
- my paper airplane
- toss it
- winds of steel
- flying high
For a couple of projects, I’m looking into tablets that students can use for taking notes and so forth. There are finally some android tablets out already or coming out this month. This google doc I created has some notes on upcoming android tablets, including prices and features. The Archos 101, for example, is comparable to the ipad but half the price. My conclusion at the moment however is to wait a bit longer until we hear more about the next versions of the android OS (2.3, 3.0), which will run much better on tablets. There seem to be issues with android 2.2 and tablets. We should hear more about android 2.3 and 3.0 very soon, and as the NVIDIA CEO says (the Nvidia Tegra dual-core processor is used in most next generation android tablets coming out), there are lots of android tablets coming out.
Android tablets do seem to be a major focus of hardware development now:
“This isn’t a fad. Everybody’s building tablets because it’s just so important. Car companies are working on tablets, consumer electronics companies are working on tablets, computer companies are working on tablets, and communications companies are working on tablets. The medical industry is working on tablets,” he said during the earnings conference call. “I don’t remember in the history of computing [when] a singular device is being worked on by all of the industry.”
Here are some web sites for courses I’m currently teaching or recently taught:
- Distance Education Tools -
- This site now has dozens of links of various tools and technologies you can use with online and blended learning
- Multimedia Development with HTML5 -
- As I posted earlier, HTML5 is emerging as an alternative to flash and java
- Instructional Design Projects –
- We learn how to use a learning management system (moodle) and about “post-modern” instructional design techniques, such as constructivism, problem-based learning, simulations, games, cases…
- Internet Development:
- I’ll be teaching web development with the Drupal content management system again next summer. I hope to improve the videos.
At the AECT conference last week I gave a workshop on using Drupal to create web applications – here’s a Drupal Cheat Sheet I made for it. And here are slides for a talk on embodied cognition and instructional design.
Since at least the invention of BASIC and Logo in the 1960s, people, such as Seymour Papert, have made an argument that anyone can and should learn to how to program, and even make their own software applications. The argument is that we should think of it as a new literacy, a 4th “R” of sorts – computational thinking, or multimedia authoring, or just simply, programming. For me, it’s about knowing more than just how to make a powerpoint presentation or a web page, for example, and learning how to make an interactive animation or game or simulation and so forth. I’ve blogged about it before (Programming: The New Literacy) and wrote a chapter on the topic (Toward a Nation of Educoders).
The most recent work in this area is a short book by Douglas Rushkoff titled Program or Be Programmed, and it was originally a short talk (here’s the video, along with a newer video made after the book).
So I went into the book expecting to agree with most of the points. I’ve only gotten through the beginning pages so far and I do agree with many points, but there are also some problematic ones, especially relating to Rushkoff’s ideas about education and learning (which is not the focus of the book), and philosophy of technology.
First here are some quotes from the early part of the book to get an idea, including some relating to education:
p.7 “When human beings acquired language, we learned not justhow to listen but how to speak. When we gained literacy, we learned not just how to read but how to write. And as we move into an increasingly digital reality, we must learn not just howto use programs but how to make them. In the emerging, highly programmed landscape ahead,you will either create the software or you will be the software. It’s really that simple: Program, or be programmed. Choose theformer, and you gain access to the control panel of civilization.”
p.8 “the people programmingthem take on an increasingly important role in shaping our world and how it works”
pp. 12-13 “The Axial Age invention of the twenty-two-letteralphabet did not lead to a society of literate Israelite readers,but a society of hearers, who would gather in the town squareto listen to the Torah scroll read to them by a rabbi. Yes, it wasbetter than being ignorant slaves, but it was a result far short ofthe medium’s real potential.Likewise, the invention of the printing press in theRenaissance led not to a society of writers but one of readers”
p. 13 “Computers and networks finally offer us the ability towrite. And we do write with them on our websites, blogs,and social networks. But the underlying capability of thecomputer era is actually programming—which almost none of us knows how to do.”
So far so good. Now on education:
p. 15 “elementary school boards adopt “laptop” curriculums lessbecause they believe that they’ll teach better than because they fear their students will miss out on something if theydon’t.”
This sounds like the same argument Larry Cuban made before (see this post), that schools only get educational technology and software to be “hip” and “with the times.”
The book seems to not be based on any research-guided understanding of how people learn. It’s very centered on a model of a disembodied brain controlling our behavior (see my previous post on embodied cognition), and he also seems to share Nicholas Carr’s assertion that technologies like Google are making us stupid:
“Our brains adapt to different situations.” “The outsourcing of our memory to machines expands the amount of data to which we have access, but degrades our brain’s own ability to remember things.”
A recent article surveyed numerous scholars and the majority of them thought Nicholas Carr was wrong – Google and similar tools are helping make us smarter.
He also completely buys into the digital natives vs. digital immigrants idea (refuted by many), including the idea that the brains of digital natives are “wired” differently:
p.32 “A brain learning on computers ends up wired differently than a brain learning on textbooks.”
Rushkoff argues that technology is a part of us and an extension of us, and yet he somehow simultaneously argues that we shouldn’t stay connected with technology:
p. 37 “She is already violating the first command by maintaining an “always on” relationship to her devices and networks.“
Rushkoff keeps mentioning the Torah and religion over and over again, and the role of technologies/media in shaping religion (sort of an extreme version of Eric Havelock’s Preface to Plato and others’ ideas I guess (like most of these types of books & journalism, there are little to no citations).
He is also probably of the belief that online education is inherently inferior to face to face education (which is not the case, see these meta-analyses and other potential misconceptions about learning and technology):
pp.41-42 “But those back-and-forth exchanges are occurring at a distance. They are better than nothing—particularly for people in unique situations—but they are not a replacement for real interaction.”
Basically, I’ve seen this type of book so many times I can’t count. It’s a book about some new X, from the perspective of some person who has never done X, doesn’t like X, or was born long before X. X might be video games, it might be open education, it might be embodied cognition, distance learning, educational technology, open access research and scholarship, web 2.0, etc.
Larry Cuban argues that we only have new technologies in classrooms in order to placate (mostly non-parental) taxpayers and politicians, so that schools can seem “modern” and “with it.” Computers and so forth are just there as a status symbol, just like an ipod/iphone, or a nice car or dress (he actually used those analogies). I’m not really buying the argument. First, are schools awash in new technologies? When you visit your local school, does it seem “modern” and “with it”? 9 times out 10, I’d say not exactly, with richer private schools being the usual exception.
If this argument is correct, then why are technologies only being bought for schools now? Why not 50 years ago, 100 years ago? There were never TVs in every classroom, and 100 years ago there were no calls for “1 horse per child” or “1 locomotive per school” even though horses were just as much a ‘status symbol’ as computers and cell phones are supposedly today.
What’s the difference now? What’s different about computers (and interactive whiteboards, etc.)? Maybe it’s because teachers want it, students want it, parents want it, etc. That’s not ‘resource dependence’ (satisfying taxpayers) at all. In fact, the more something is likely to be a status symbol, the *less* likely teachers want it in the classroom, because it distracts from learning (such as iphones, etc.). It was when computers and laptops became a commodity, an everyday phenomenon, that they started to grow more present in the classroom.
A colleague of mine, Dr. Qing Li of the University of Calgary, along with Dr. Xin Ma, just had an article published in the journal Educational Psychology Review titled A Meta-analysis of the Effects of Computer Technology on School Students’ Mathematics Learning. She found “statistically significant positive effects” which were ” greater when combined with a constructivist approach to teaching than with a traditional approach to teaching.”
I first came across Dr. Li’s work last year when she published an article in the British Journal of Educational Technology titled Instructional Design and Technology Grounded in Enactivism: A Paradigm Shift? (Word doc). She presented this past Monday at the 2010 AERA conference in a learning sciences SIG session on embodied cognition and enactivism. Her AERA paper as well as my presentation are at this site:
Dr. Li is actually more known for her work on cyber-bullying. She has several papers on that topic.
Dr. Li and I are currently putting together a chapter proposal on applications of embodied cognition and enactivism to instructional technology for the forthcoming Handbook of Research on Educational Communications and Technology. I’m also hoping to submit a proposal on engineering education for that handbook.
By the way, the person who chaired my AERA session, Dr. Alan Amory, also just had an interesting theoretical article published in the journal Interactive Learning Environments titled Instructivist ideology: education technology embracing the past? From the abstract: “It is argued that against the background of a neo-managerial and market-driven global education system, the production and use of technology to support teaching and learning perpetuates hegemonic behaviorist values….The analyses show that education technologies are often designed to support masculine hegemonic behaviorist instruction practices. As an extension, education technology is used in the classroom as the object of instruction to support fundamentalist values rather than a tool to mediate knowledge construction.”
I currently have a small set of netbooks with Ubuntu Netbook Remix (download) installed that I use for various projects. If I were to set up a classroom netbook/laptop cart for a K-12 class or a school-wide 1-to-1 netbook/laptop program, I would follow what Jim Klein did as part of the SWATTEC program at the Saugus Union School District. They also used Ubuntu Netbook Remix, but with nice extras like a nice 10 second recovery system (by keeping system files in a read-only partition using UnionFS) and battery-life optimizations. The philosophy is, instead of locking down the machine, make it easy to recover from any mistakes (even the teacher can recover a netbook without needing tech support).
Karl Fisch blogged about how he implemented a variation on Jim’s program.
By the way, if you are in the market for school netbooks, or suffering from iPad envy, you might check out the $500 Eee PC T101MT touchscreen netbook, described in this liliputing post. It’s been reported to work perfectly fine with the latest version of Ubuntu (10.04, Lucid Lynx, due out later this April). Students can draw notes and pictures on the device (with a stylus), plus it has USB ports and a webcam, unlike the iPad.