J.B. Rainsberger - Integration Tests are a Scam
J.B. Rainsberger - When Is It Safe to Introduce Test Doubles?
Gary Bernhardt - Boundaries
Gary Bernhardt - Functional Core, Imperative Shell
Tom Stuart - Thinking functionally in Ruby
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<title>test</title> | |
<link rel="stylesheet" href="stylesheets/screen.css"> | |
</head> | |
<body> | |
<div class="container c1"></div> | |
<div class="container c2"></div> |
J.B. Rainsberger - Integration Tests are a Scam
J.B. Rainsberger - When Is It Safe to Introduce Test Doubles?
Gary Bernhardt - Boundaries
Gary Bernhardt - Functional Core, Imperative Shell
Tom Stuart - Thinking functionally in Ruby
With Heroku's JRuby support you may have already seen that you can run TorqueBox Lite on Heroku. But, that only gives you the web features of TorqueBox. What about scheduled jobs, backgroundable, messaging, services, and caching?
With a small amount of extra work, you can now run the full TorqueBox (minus STOMP support and clustering) on Heroku as well! I've successfully deployed several test applications, including the example Rails application from our Getting Started Guide which has a scheduled job, a service, and uses backgroundable and messaging.
This example uses TorqueBox 3.0.2, but the instructions may work with other TorqueBox versions.
source :rubygems | |
gem 'json', '= 1.5.4' # knife/chef 11.0 and 11.20 is broken with json 1.5.5/1.7.7 | |
gem 'vagrant' | |
gem 'vagrant-hostmaster' |
This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang.
A comparison of Collection+JSON, HAL, JSON-LD and SIREN media types. | |
Discussion at | |
http://sookocheff.com/posts/2014-03-11-on-choosing-a-hypermedia-format/ |
{ | |
"name": "my-app", | |
"version": "1.0.0", | |
"description": "My test app", | |
"main": "src/js/index.js", | |
"scripts": { | |
"jshint:dist": "jshint src/js/*.js", | |
"jshint": "npm run jshint:dist", | |
"jscs": "jscs src/*.js", | |
"browserify": "browserify -s Validating -o ./dist/js/build.js ./lib/index.js", |
var animating = false; | |
// Define an animator consisting of optional incoming and outgoing animations. | |
// alwaysAnimate is false unless specified as true: false means an incoming animation will only trigger if an outgoing animation is also in progress. | |
// forcing dontClone to true means the outward animation will use the original element rather than a clone. This could improve performance by recycling elements, but can lead to trouble: clones have the advantage of being stripped of all event listeners. | |
function animator( incoming, outgoing, alwaysAnimate, dontClone ){ | |
// The resulting animator can be applied to any number of components | |
return function animate( x, y, z ){ | |
var config; | |
var parent; |
function multi(){ | |
var handlers = Array.prototype.filter.call( arguments, function( x ){ | |
return x instanceof Function | |
} ) | |
return function handle(){ | |
for( var i = 0; i < handlers.length; i++ ) | |
handlers[ i ].apply( this, arguments ) | |
} | |
} |