Multi-user git

Modify your ~/.ssh/config file as such to seamlessly utilize multiple git users on the same machine

Host user1
  Hostname github.com
  User git
  IdentityFile ~/.ssh/username1_pubkey
  IdentitiesOnly yes

Host user2
  Hostname github.com
  User git
  IdentityFile ~/.ssh/username2_pubkey
  IdentitiesOnly yes

Then for your repo ensure git remote -v is of the form

git@user1:<username1>/<username1-repo>.git

Of course, ensure your ssh key is added to the respective repo.

emacs vs vim

After spending the better part of last year using emacs (specifically the spacemacs distribution) before switching to neovim I can safely conclude I’ve shaved enough yaks to last me a lifetime. I’m switching back to Atom because configuring editors is a waste of time that could be better spent actually building things. I could be meticulously installing and configuring packages for crucial features like fuzzy project search, OR I could just use a modern editor.

Luckily most of the emacs navigation keybindings work in atom. God bless.

Rails and default_scope

It should be common knowledge by now NOT to use default_scope unless you know what you’re doing. I thought I knew what I was doing but was wrong, which is often the case.

Imagine having a model with a boolean :finished attribute. And in your schema for this table default: false. You want to only ever retrieve instances that are marked finished, so you write

default_scope {where(finished: true)}

Great, but guess what? New instances of this model will have their :finished default to true, contrary to the schema definition. Crazy right? Don’t use default_scope.

Public commitments

Another one of those corny lifehacks I’m fond of is public commitments. I guess it’s semi-common knowledge that announcing your intentions publicly or better yet, to friends, prompts action. I’ve also noticed it’s useful for folks suffering from depression and anxiety, insofar that making commitments to see friends or attend events gets you out of the house.

With that in mind, I’m announcing my intention to pivot my career towards automation and ops, plug some holes in my game and learn a few new tricks. Luckily, like Arnold, my cpu is a neural net processor…a learning computah.

Linux

Despite using the terminal and interacting with servers almost daily, my knowledge is broad but shallow. I’m getting a lot of mileage out of Unix for Mages and Servers for hackers as refreshers for things I don’t normally do.

Python

The tool of choice for automation scripting.

Ansible+Vagrant or Docker

Not sure which side to take yet, but for the time-being Ansible suits my needs nicely. Shout-out to the mad genius Shey over at polymorphic.ca for putting me on this path and sharing some of his hard-won knowledge and high quality scripts.

gittip

To remove a specific commit, aka reverse cherry-pick:

git rebase -p --onto SHA^ SHA

<< 3 of 5 >>