ALL OUT
 IN THE CLOUD




                     Jan Jongboom
                   PloneConf 2012
      10 October 2012, Arnhem, NL
@drbernhard

#cloud9ide
Program


•   Javascript, 1995 to 2012
•   Building Cloud9
•   Demo
1995
Javascript

•   Livescript
•   Netscape 2.0
•   Not like Java
    •   More like Scheme
JS had to "look like Java" only
     less so, [it had to] be
  Java's dumb kid brother or
    boy-hostage sidekick.
XMLHttpRequest
Beloved?
Reasons


•   Implementation differs
•   Lot of crap
    •   Search for the ‘with’ statement
DOM


•   Never meant to be scripted
•   Direct mapping of C structures
•   Incovenient API
Java vs. Javascript
People started to care

 •   VMs got faster
     •   And embeddable!
 •   EcmaScript 5
 •   JSConf
Google’s V8 engine
as an executable!
LibUV
Asynchronous is cool!
I hate
asynchronous!
Javascript   LibUV
Javascript bindings to LibUV

  Standard libraries in JS

     JS executed in V8
Not exclusive
Program


•   Javascript, 1995 to 2012
•   Building Cloud9
•   Demo
Normal developers
JavaScript Developer
Debugging
(Smart!) Code completion
Free Linux VM!
Real terminal
Collaboration
See each other type

 Debug together

  Productivity++
Create

Deploy
                       Run/Debug



   Share            Test
Openshift
Cloud9 datacenter
                    Remote VM




     IDE server     Remote VM




                    Remote VM
Install everything

•   Python 2.6.6
    •   But you can compile 2.7 if you like
•   Run Mongo, Postgres
•   Plone!
Not enough power?

•   Free OpenShift machine
•   128 / 512 MB Ram
•   Limited resources
•   Bring your own server!
Program


•   Javascript, 1995 to 2012
•   Building Cloud9
•   Demo
Prerequisites


•   Runs on my EC2 machine
•   Unified installer
•   Installs in 5 minutes
got ideas?




fork cloud9 and contribute

       or join us, we’re hiring
Happy coding!
http://c9.io


                    Jan Jongboom
          github.com/janjongboom
                     @drbernhard

All out on the Cloud - PloneConf 2012

Editor's Notes

  • #2 \n
  • #3 Hi!\n
  • #4 \n
  • #5 Let’s go to 1995, Altavista major search engine, Ajax winning Champions League, Montell Jordan\n
  • #6 Developed in 10 days, ‘or something worse than Javascript would have happened’\n
  • #7 Brenden Eich. Launched in the same time as Java support.\n
  • #8 Used to replace text in the status bar, but in 1999 things changed. Outlook Web Access launched.\n
  • #9 Launched in IE 5 as an ActiveX control, support added in Firefox in 2000 which gave it the name. In 2004 GMail launched.\n
  • #10 Still not very beloved, Plone tried to avoid it as well. 2005.\n
  • #11 Reasons for this: Implementation differs over browsers (AJAX in IE 6, IE 7, IE 8)\n
  • #12 The best sold book about javascript is called ‘Javascript: the good parts’\n
  • #13 And it’s 8 times smaller than ‘the definitive guide’\n
  • #14 But the reason people REALLY hated javascript wasn’t the language itself. It’s the DOM.\n\nTree structure internally used in the browser.\n
  • #15 This is incredibly tedious! And probably doesn’t work cross browser either.\n
  • #16 In the years after 2006 things started to change with the launch of jQuery.\nOr, more specific, ‘Sizzle’ the selector library that powers jQuery. 52% of most visited sites use it.\n
  • #17 In the years after 2006 things started to change with the launch of jQuery.\nOr, more specific, ‘Sizzle’ the selector library that powers jQuery. 52% of most visited sites use it.\n
  • #18 Google Trends volume, Java is red, JS is blue. Dumb kid’s brother has grown up.\n
  • #19 With the DOM out of the way, people started to care about Javascript.\n
  • #20 And javascript went server side as well\n
  • #21 1995 LiveWire server. Actual power from the underlying platform\n
  • #22 * Cross platform library\n* Fastest IO / Networking library on this planet\n* Async up blocking platform API calls\n
  • #23 File system API\n
  • #24 However, OS vendors try to abstract that away.\n
  • #25 Example of reading stream in C, nice streaming, low memory usage, but it’s a synchronous flow, Thread blocks. \n
  • #26 In LibUV / Node, you react on events. Don’t block your thread when waiting for a file. Async code flow.\nHas FS, DNS, Networking.\n
  • #27 Non blocking, no threads, massive scale up, 300 long polling connections -> tens of thousands.\n
  • #28 JS bindings to LibUV. Like the DOM.\n
  • #29 \n
  • #30 Not exclusive. Lua, C++, SpiderMonkey. \n\nJS most mature, largest set of 3rd party.\n
  • #31 Twisted with Python, existing eco system\nFast VM\nAsync networking\n
  • #32 The world is all about the web, from viewing information to online banking to editing documents: you won't have to leave your browser. \n
  • #33  Traditionally devs that use Java, .NET, they are completely used to having all the great tools: IDE's, testing suites, continious integration services;\n
  • #34 whereas the javascript developer, or actually anyone who does dynamic languages, well... not so much! They're happy with just syntax highlighting!\n
  • #35 \n
  • #36 Cool IDE features like ‘debugging’\n
  • #37 Context aware code completion\n
  • #38 Run everything you want. Because we give you a free VM, true freedom. Java? MemSQL? Already GIT.\n
  • #39 Fully functional. Real VIM, Telnet, Watch Star Wars ASCII. VM included on every project.\n
  • #40 Real time code collaboration like in google docs\n
  • #41 See each other typing, debug together and be more productive!\n
  • #42 Full lifecycle\n
  • #43 Even worse, part of our architecture is decentralized. Because you get your own VM where all code lives and all processes run. \n
  • #44 \n
  • #45 Not enough power, feel free to use your own machine. We use this system for new hires.\n
  • #46 To prove that it’s the real deal I’ll show you that you can do real plone development in cloud9\n
  • #47 \n
  • #48 \n
  • #49 \n
  • #50 \n