What an awesome little game Replicube is. It’s like Picross 3D meets shader programming. The puzzles are a fun challenge and the interface is charming. Thanks @walaber! walaber.com/replicube
90% of the Ruby code I’ve written the past few years has been class methods without shared state. The code has clearer dependencies and is easier to read, test and maintain. OOP has its place, but I don’t think it fits the majority of web-app logic.
Whenever you’re tempted to reuse a method that *almost* does what you want: Stop, duplicate the method, make the modifications, and then refactor the actual duplication.
We all have different apps with different requirements. If vanilla Rails is plenty then I think vanilla Rails does too much. dev.37signals.com/a-vanilla-…
That said, this is coming from 37 Signals so it makes sense vanilla Rails is plenty for them. if it wasn’t then they would add it to Rails to fit their needs.
I wonder why more functional languages don't support local mutability within the scope of a function. It is convenient and still keeps the function pure.
Git tip: What if you want to amend an earlier commit? I have this function in my dotfiles.
gfix() {
git commit --fixup $1 && git rebase -i --autosquash $1^
}
Stage changes and run `gfix <commit-sha>`. This will open interactive rebase in your editor so you can review.
Git tip: I like to keep a clean git history on my local branch. I often run `gcn!` to amend the staged changes to the previous commit. This is an alias I stole from oh-my-zsh.
alias gcn!='git commit --verbose --no-edit --amend'
Tip for mac users: Make a shell script of `defaults write` commands to set up macOS the way you like it. Then just run the script when setting up a new system. (see macos-defaults.com/ for possible commands)