ssh -i workshop.pem [email protected]
Replace 01 in lxc-1-01 with index assigned to you. Download workshop key below.
| import play.api.libs.concurrent._ | |
| import play.api.libs.concurrent.Execution.Implicits._ | |
| import play.api.libs.iteratee._ | |
| import scala.concurrent.duration._ | |
| def circuitBreakers = Action { | |
| Ok.stream(Enumerator.generateM { | |
| val promise = Promise[String]() | |
| Akka.system.scheduler.scheduleOnce(1 second) { | |
| promise.completeWith(circuitBreakers) |
ssh -i workshop.pem [email protected]
Replace 01 in lxc-1-01 with index assigned to you. Download workshop key below.
| // compile 'com.github.groovy-wslite:groovy-wslite:1.1.0' | |
| // compile 'com.google.apis:google-api-services-compute:v1-rev29-1.19.0' | |
| // compile 'com.google.http-client:google-http-client-jackson2:1.19.0' | |
| // compile 'com.google.oauth-client:google-oauth-client-jetty:1.19.0' | |
| import com.google.api.services.compute.Compute | |
| import com.google.api.services.compute.model.* | |
| import wslite.rest.ContentType | |
| import wslite.http.HTTPClient | |
| import wslite.rest.RESTClient |
| java ee (v1.4, and partly 5) | cf / bosh |
|---|---|
| (proprietary) deployment descriptor | bosh manifest |
| xml | yaml |
| ear(-s) | bosh release |
| ee app server, "fits all purposes" | cloudfoundry elastic runtime |
| transparent clustering, availability | multi-az deployment, resurrector |
| statefull | stateless |
j2ee ship sunk ~9 years ago.
There are two alternatives to start with the SDK:
Note: everyone will get a separate index, ie. hacker02, hacker03, etc.
$ ssh [email protected]
Download and build PyPy as described here. It will take about 1 hour of modern machine time. The pre-built PyPy archive does not have all the stuff we need.
Instead, I supply you with a powerful Linux VM in case you choose to work in the cloud:
$ ssh [email protected]
pypy binary is in your PATH. And PYPY env var is also set to the path of unpacked and already built PyPy sources.
| def f(params) | |
| puts params | |
| end | |
| opt = {} | |
| opt[:config] = 1 | |
| f (:p1 => 'x', :p2 => ( [{ :r => 'const', :t => opt[:config] }] if opt[:config] )) | |
| # {:p1=>"x", :p2=>[{:r=>"const", :t=>1}]} |
| object Main { | |
| def main(args: Array[String]) { | |
| val date = new Deserializer().deserialize[java.util.Date]("2014-02-15") | |
| val ints = new Deserializer().deserialize2[Int]("[1, 2, 3]") | |
| } | |
| } | |
| class Deserializer { | |
| import scala.reflect.{ ClassTag, Manifest } |
I'm here not to teach you - see me as a guiding friend, a facilitator. We'll go together through a journey of getting better at some particular, non-hype, well understood yet sometimes problematic, still modern technology for developing web- and service-oriented applications. Hopefully it will give you a new perspective on how such things could be built.
It's up to you to choose what it'll be for you - an epic or a walk in the park. Most of the value will be to stay till the end, though.
To do the homework I expect about 5 hours of commitment per week -- similar to [Coursera]. Some colleagues already demonstrated that it could be done. But, compared to consuming nicely prepared material, we're on raw side this time -- you'll be setting your own tactical learning plan and digging for materials instead.
Last but not least, my opinion and judgments are always subjective.