When
-
Programming Ruby: the classic “pick-axe” book. it’s a tome — i haven’t read it cover-to-cover. i think it’s useful for the first few chapters & then coming back to it as a reference when i need to get more in-depth on a topic: https://pragprog.com/book/ruby4/programming-ruby-1-9-2-0 — i’m a bit surprised that it seems not to have been updated for Ruby 2.1, 2.2, 2.3, or 2.4 :)
-
Ruby Koans: I found this really useful for getting over the initial learning curve with Ruby. Fun and approachable. http://rubykoans.com/ — I think this is also a bit dated, though likely still great for fundamentals
-
Michael Hartl’s Ruby on Rails Tutorial helped me get over the initial learning curve with Rails.
-
Learn Ruby the Hard Way — I have not read this one. It’s the newest learning-Ruby book that I know of, and I generally have a positive opinion of Zed Shaw’s “* the Hard Way” series.
I would recommend #4 and maybe #2 to someone starting with Ruby. #3 if you want to make sense of Rails. #1 as a reference, tho
[Ignite] Three ways to automate application deployment to Amazon Web Services | |
Comparing and contrasting full-stack automated app deployment using: | |
* Ansible, a task-centric tool with uses from configuration management to cloud provisioning | |
* Terraform, an model-/graph-centric tool for cloud provisioning | |
* Convox, a Heroku-like open source Platform-as-a-Service offering that can be deployed into your Amazon Web Services account |
SUBMODULE=lib/ansible/modules/core | |
SUBMODULE_COMMIT=4d9ce9cf2cdee14b1c417e92059d4ef83dbcc457 | |
for superproject_tag in $(git tag); do | |
git ls-tree -r $superproject_tag | grep $SUBMODULE | awk '{ print $3 }' | while read submodule_commit_in_superproject_tag; do | |
(cd $SUBMODULE && git rev-list $submodule_commit_in_superproject_tag | grep $SUBMODULE_COMMIT >/dev/null && echo "Found submodule commit in superproject tag $superproject_tag") | |
done | |
done |
Another CoreOS gist |
Hello again |
A domain model is much more than the “M” in MVC. As Martin Fowler writes, “Learning how to design and use a Domain Model is a significant exercise--one that has led to many articles on the ‘paradigm shift’ of objects use.”
Let’s talk about evolving a domain model in sustainable ways that allow a codebase to organically grow in a way that supports agility and adaptability. Highlights include:
- What is a domain model? What are the alternatives?
- What is sustainable software development?
- Ubiquitous language, and thinking twice about naming something a Manager, Service, or DAO
module Enumerable | |
def sum(identity=0) | |
inject(identity) { |sum,each| sum + each } | |
end | |
end | |
class BowlingGame | |
class Frame | |
def initialize | |
@rolls = [] |
class Integer | |
def factorial | |
raise if self < 0 | |
self > 0 ? (1..self).reduce(&:*) : 1 | |
end | |
end | |
describe Integer, '#factorial' do | |
context "for values larger than 1" do | |
example { 2.factorial.should == 2*1 } |
import org.junit.Test; | |
import java.util.EmptyStackException; | |
import java.util.Stack; | |
import static org.hamcrest.core.Is.is; | |
import static org.junit.Assert.assertThat; | |
public class StackTest { | |
Stack<String> stack = new Stack<String>(); |