Forward GnuPG agent from macOS to Linux
Run gpg once as your to create the directory structure
gpg --list-keys
DROPBOX_ROOT = File.expand_path("~/Hoge Dropbox") + "/hoge" | |
PROJECT_ROOT = "Unity" | |
ASSETS_ROOT = "#{PROJECT_ROOT}/Assets" | |
ADDRESSABLE_RESOURCES_ROOT = "#{ASSETS_ROOT}/AddressableResources" | |
REFERENCED_RESOURCES_ROOT = "#{ASSETS_ROOT}/ReferencedResources" | |
SPRITES_ROOT = "#{REFERENCED_RESOURCES_ROOT}/Sprites" | |
BACKGROUND_ROOT = "#{REFERENCED_RESOURCES_ROOT}/Background" | |
SPINE_CHARACTER_ROOT = "#{REFERENCED_RESOURCES_ROOT}/SpineResources/Characters" | |
SPINE_EFFECT_ROOT = "#{REFERENCED_RESOURCES_ROOT}/SpineResources/Effects" | |
SPINE_MAP_ROOT = "#{REFERENCED_RESOURCES_ROOT}/SpineMapResources" |
Last updated March 13, 2024
This Gist explains how to sign commits using gpg in a step-by-step fashion. Previously, krypt.co was heavily mentioned, but I've only recently learned they were acquired by Akamai and no longer update their previous free products. Those mentions have been removed.
Additionally, 1Password now supports signing Git commits with SSH keys and makes it pretty easy-plus you can easily configure Git Tower to use it for both signing and ssh.
For using a GUI-based GIT tool such as Tower or Github Desktop, follow the steps here for signing your commits with GPG.
1. Highlight a recommended option, | |
2. Allow users to switch currency (€/$/£) | |
3. Allow users to switch pricing monthly/yearly | |
4. Keep the entire pricing plan area clickable | |
5. Use slider to calculate how much a user would save | |
6. Provide free first month for good engagement | |
7. Prominently highlight testimonials prominently | |
8. Repeating call to action on top and bottom | |
9. Sell benefits instead of features | |
10. Indicate that users can cancel any time |
Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.
This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would
# -*- encoding: utf-8 -*- | |
import sublime | |
import sublime_plugin | |
class MinimapSetting(sublime_plugin.EventListener): | |
def on_activated(self, view): | |
show_minimap = view.settings().get('show_minimap') | |
if show_minimap: |
It "types" the contents of the clipboard.
Why can't you just paste the contents you ask? Sometimes pasting just doesn't work.
The Windows version is written in AutoHotKey and easily compiles to an executable. It's a single line script that maps Ctrl-Shift-V to type the clipboard.
brew install gnupg, pinentry-mac
(this includes gpg-agent and pinentry)
Generate a key: $ gpg --gen-key
Take the defaults. Whatevs
Tell gpg-agent to use pinentry-mac:
$ vim ~/.gnupg/gpg-agent.conf
# In order for gpg to find gpg-agent, gpg-agent must be running, and there must be an env | |
# variable pointing GPG to the gpg-agent socket. This little script, which must be sourced | |
# in your shell's init script (ie, .bash_profile, .zshrc, whatever), will either start | |
# gpg-agent or set up the GPG_AGENT_INFO variable if it's already running. | |
# Add the following to your shell init to set up gpg-agent automatically for every shell | |
if [ -f ~/.gnupg/.gpg-agent-info ] && [ -n "$(pgrep gpg-agent)" ]; then | |
source ~/.gnupg/.gpg-agent-info | |
export GPG_AGENT_INFO | |
else |
#!/usr/bin/ruby | |
require "open4" | |
def shell_exec(command) | |
puts("> " + command + "\n") | |
pid, stdin, stdout, stderr = Open4::popen4(command) | |
while Process::waitpid(pid, Process::WNOHANG).nil? do | |
stdout.each_line { |line| puts line } | |
stderr.each_line { |line| puts line } | |
sleep(1) |