Skip to content

Instantly share code, notes, and snippets.

View masterkain's full-sized avatar
🤖

Kain masterkain

🤖
View GitHub Profile
@masterkain
masterkain / guide.md
Last active August 11, 2023 04:01
Getting Started with GPG Key Generation and Git Commit Signing

Using GPG

Step 1: Install Required Software

We'll use the Homebrew package manager to install the necessary software.

brew install gpg2 gnupg pinentry-mac

Step 2: Create the .gnupg Directory

If the directory doesn't exist, create it and configure the pinentry program.

DsvtUTnouyiN(30weKKI6U11ZgBpUUuUXnfDxutkqXuJj1oTt2ftjrjsyzrcskh7UuR6AFe0ril6biNaICeYriNGH6pNKPijTvlmEVp(533JFVNKrY(d7F4UhS3)my)vypba2Q2lQ9fyaLxZIdDqCrvo5TBc2AtZkvRmQAfVKTJCKeAij0F1ffmPOy6ueNtCrJIFhh6jtpn(p3b5bJcKQ7nkEiMYyPOQhOtThgsyiEEYIVGcDP8LhE8)c5imnsSeXtDNQQ7(TNedT160holEcC2ECIdkXM4UhI7GcLRSWoa6moGiKvoXbg6GcgGyuHCe7PxoDFmhjW0a36M(NLFWNdD11isok2nIdtVDRWwN4hs5OpspANcmJtgJqSpfbdLe58naNnbkDWdLArhs(kcNOBQDNXi6YVbqTkJ6GroJB4r4czdNcxPTR9eiFmsQd4iFDzZtHt9B2wxGg9APd)5O)kqRPzwNafe0Sz8esyMPWe)wkd609xqCZo9UI6hRDRjWG8g437Q39xq9UxrCE6G9Dq2gMjS0gyasGKwH0q0cr58zdZZwg)bHMmooQyUx30rD)QQh8E2AzQNDj6JKyQBL0PQUCsQZ46DblY8yQhrAzca(j60YdnbQ)iTgQvJl78Z55NDPDMcKH0i9sR49wWaPahdZFNsGTSHHJXd8JibUy26690J2UyNpRPgPEOwJQj2Oa6rziZmoi17UWnAxJ45lBSJ1GmtRFwNS9u)2162dOF0bGoV56zzcwYARRN1fL613IGzK6Dl6LrAZBwUmoV6guRKt3BwSmoMP)a61S4PwRA)a7MQhP96VVafcTdqwrZhLKhou7YJ4zFmqo3iPCiRJv)LxDigRAJ5Pd2dtJ7GvVeBnbscWS1shqB7jr88pu4280ue92qGnvVnIpBQyhD54056pTgH4U5jNovK3wzOQMS1tbMDzQ1boS1YqVetnO6X6lX0Zt7wlOF5MObBTCKWLlNgNmrVODbHNvCV(7)ppvl9)UCpU8nkd1ZnE4)n
Ds1YUTTruuq5208O1rsbvDlHtrHLJQbjTLJt2zzBfu0kuhjNh7chsoKZarYzWWHYYzjxL16tGFcEr)a8xWa)jOpb)fKHdfTvAHFGYfc37zo6EpZ5Ej1YpE0GpD4hp6VhE8k069GjC9rWWqit)nqa73y4xVD3Dn2TwzGPvTw1SBvZpFVuxoMeJJdwD2BGr69XbiEgzcKXWEq7S9zaFEXP9KNMi(b7SricLwGK98dG(G0qUe1zumMczRkEImz27HXEewbhv(zFaWGisAIQldKfxFrX8fFFlXd(YZYaos0bGPzrGPhXWUWChS3rqMlmMF03zS5R6oZje4ooeNWRDUli2fgoesjjCB6pVC6Xigmbrc9wZmyE5bVl2twOuUDMxkduCBxH2ahetyW)ICYblW0oFmesFBkiMJ5N20yEeG7IgXLnDe(ZquUuzhoLILLVPHObL4IGUJx3hZs4R7UWL645ebyJHCzadgilBzkysq7oYcSE3nKH3p6BzSXeLpMiNJTBNfHJvoJLv3GZKIpceQY)FQeR7VsmT(gLWk859b0Mw50cbmeMa5oLg6SKkdRP58RI)JejDuw6IbXAMUIh2s8O(06Q(RUgdGCeXRwHnlliN4oU5oZu3zIpMlXXXv4MIh3s8K(IgzvQ(sw5rln(wGmIKkxIs63deYtqzGY19euphq8y0WGuCOhI2qUYCYEl2bvYXw8JYE0k3bgsorHmv7Jf(21orhDSFaF9d6nuzydukzVjbD0T6AiFKbgBU7nZY04kwV8MzDDP25oAOIu37OFksBF7TtXzRBPBvCSU9MP4yw8Jr32lE03q))WUT4NKE9)mdgdCcH9sp1oVmS4ly2m17L8t1YRgYYyXV7VgaHeBIyfd2pveBGeMOEraCiIwVyaTNphYkFN1R9ffiYTHqhICpenFsYbYYXiN(EqykK5vMCXKKszPqfVG2Oay6YuxZWLwxHUetjOy1wINo5Yc12deuTjQrRxIeF1YP25rYfTRj8llUx)5)MNOJ8FxThx9UKM4
@masterkain
masterkain / array.rb
Created July 31, 2011 22:36
splice in ruby
class Array
def splice(start, len, *replace)
self[start, len] = replace
self
end
end
ruby-1.8.7-p352 :008 > initial_array = [:a, :c, :h, :g, :t, :m]
=> [:a, :c, :h, :g, :t, :m]
ruby-1.8.7-p352 :009 > initial_array.splice(2, 2, :test)
@masterkain
masterkain / routes.rake
Created January 7, 2012 02:16
Journey + Graphviz
namespace :routes do
desc "Writes doc/routes.html. Requires Graphviz (dot)"
task :visualizer => :environment do
File.open(Rails.root.join('doc', 'routes.html'), 'wb') do |f|
f.write Rails.application.routes.router.visualizer
end
end
end
{"item_photo":{"item_id":"10","content_type":"image/jpeg","original_filename":"test.jpg","photo_data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABQAAD/4QNxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MSA2NC4xNDA5NDksIDIwMTAvMTIvMDctMTA6 NTc6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9 InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMTk1RkVBNDIxMDE4OTQzMTUiIHhtcE1NOkRvY3VtZW50 SUQ9InhtcC5kaWQ6OEVBNjU2ODU2OUE3MTFFMTlDMDQ4RDBGMTVBOUYwMkYiIHhtcE1NOkluc3Rh bmNlSUQ9InhtcC5paWQ6OEVBNjU2ODQ2OUE3MTFFMTlDMDQ4RDBGMTVBOUYwMkYiIHhtcDpDcmV
@masterkain
masterkain / nginx_rails_3_1
Created April 17, 2012 20:03 — forked from shapeshed/nginx_rails_3_1
Nginx Config for Rails 3.1 with Unicorn and Asset Pipeline
upstream app {
server unix:/srv/app/current/tmp/sockets/unicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name www.app.com;
rewrite ^/(.*) http://app.com/$1 permanent;
}
server {
@masterkain
masterkain / Gemfile
Created March 1, 2012 03:29
Sidekiq GitHub issue reporter
gem 'sidekiq'
gem 'octokit'
require "resque"
require "resque/failure/multiple"
require "resque/failure/redis"
# Configure Resque connection from config/redis.yml. This file should look
# something like:
# development: localhost:6379
# test: localhost:6379:15
# production: localhost:6379
Resque.redis = YAML.load_file(Rails.root + 'config/redis.yml')[Rails.env]
# @topic = Topic.new(params[:topic])
# @topic.this_user = current_user
class Topic < ActiveRecord::Base
belongs_to :user
attr_accessor :this_user
def validate_on_update
# Make sure that this_user is an instance of User, otherwise just use the id
errors.add(:user, "Only the topic creator can update the topic") if user_id != this_user.id;