Skip to content

Instantly share code, notes, and snippets.

View dividedmind's full-sized avatar

Rafał Rzepecki dividedmind

  • Wrocław, Poland
View GitHub Profile
@dividedmind
dividedmind / appmap-diff.md
Last active October 25, 2020 14:01
Simple execution trace diff with AppLand

Simple execution trace diff

At AppLand we're currently working on ways in which we can visualize how changes to the code affect program design and execution. But it turns out you don't need any fancy visuals to be able to tell something useful.

(BTW, see the whole code gallery!)

If you're not familiar with AppLand, at the very basic level, it allows you to record program execution traces. These traces can then be processed to surface interdependencies between code artifacts (such as classes, objects

@dividedmind
dividedmind / restclient_log.script
Created March 11, 2019 16:28
Example conjur CLI session using RESTCLIENT_LOG
$ RESTCLIENT_LOG=stderr conjur authn login
Enter your username to log into Conjur: admin
Please enter your password (it will not be echoed):
RestClient.get "https://cuke-master/authn/cucumber/login", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "User-Agent"=>"rest-client/2.0.2 (linux-gnu x86_64) ruby/2.4.1p111"
# => 200 OK | text/html 55 bytes
Logged in
$ RESTCLIENT_LOG=stderr conjur variable values add vaultName/lob8/safe_0/obj_832/password secret123
RestClient.post "https://cuke-master/authn/cucumber/admin/authenticate", "3j1aqpew0f2m02njp46c1pg0rft1j23r8a2zx878p3q5nb251njvkqh", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"55", "Content-Type"=>"text/plain", "User-Agent"=>"rest-client/2.0.2 (linux-gnu x86_64) ruby/2.4.1p111"
# => 200 OK | application/json 568 bytes
RestClient.post "https://cuke-master/secrets/cucumber/variable/vaultName%2Flob8%2Fsafe_0%2Fobj_832%2Fpassword", "secret123", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Authorization"=>"Token token=\"e
describe "Foo" do
before do
allow_any_instance # ... user thing
allow_any_instance_of(Event).to receive(:resource_visible) { resource_visible }
end
let(:perform!) { get "etc" }
context "with an event invisible to both" do
let(:resource_visible) { true }
@dividedmind
dividedmind / modbuilder.rb
Created September 1, 2015 13:26
Fake multiple inheritance example
class ModBuilder
def initialize path
@path = path
@files = []
end
def build! build_path
puts "building #{self.class.name} in #{build_path}"
build_mod_files!
puts "Files: #{@files}"
@dividedmind
dividedmind / logjam-fix.sh
Last active August 29, 2015 14:24
Logjam hotfix for older Conjur servers
#!/bin/bash -e
#
# Conjur servers older than v4.4.1 might be susceptible to Logjam attack
# (see weakdh.org for details). While the feasibility of such an attack is
# partly mitigated by network architectures Conjur is typically deployed into,
# the following script allows patching older appliances without upgrading to
# the new version.
#
# To apply the hotfix use `logjam-fix.sh apply`:
# $ wget https://gist.githubusercontent.com/dividedmind/aa32c62508ceefb8186e/raw/logjam-fix.sh
@dividedmind
dividedmind / gist:10012063
Last active August 29, 2015 13:58
keybase.md

Keybase proof

I hereby claim:

  • I am dividedmind on github.
  • I am divide (https://keybase.io/divide) on keybase.
  • I have a public key whose fingerprint is FB5E B7FF D5FE A129 6205 CE99 0EC0 BE49 5081 0AEC

To claim this, I am signing this object:

195 <13>1 2013-12-28T03:15:18.713037+00:00 app web.1 - - [authz-ci-conjur] [836de4aadf34a61d9f8f1c550227d0a7] Processing by RolesController#list_members as XML
227 <13>1 2013-12-28T03:15:18.715912+00:00 app web.1 - - [authz-ci-conjur] [836de4aadf34a61d9f8f1c550227d0a7] Parameters: {"members"=>nil, "account"=>"ci", "role"=>"layer/205cm0/ldap-test"}
202 <13>1 2013-12-28T03:15:18.720253+00:00 app web.1 - - [authz-ci-conjur] [836de4aadf34a61d9f8f1c550227d0a7] Sequel::Postgres::Database (3.9ms) BEGIN
296 <13>1 2013-12-28T03:15:18.725630+00:00 app web.1 - - [authz-ci-conjur] [836de4aadf34a61d9f8f1c550227d0a7] Sequel::Postgres::Database (3.7ms) SELECT * FROM "roles" WHERE ("id" = ROW('ci', 'layer:205cm0/ldap-test')::"role_id") LIMIT 1
279 <13>1 2013-12-28T03:15:18.738816+00:00 app web.1 - - [authz-ci-conjur] [836de4aadf34a61d9f8f1c550227d0a7] Sequel::Postgres::Database (12.0ms) SELECT * FROM "roles" WHERE ("id" = ROW('ci', 'user:kgilpin')::"role_id") LIMIT 1
sigi = sigma.instances[1];
var prefix = /.{7}/;
sigi.iterNodes(function (node) {
node.label = node.attr.kind + ": " + node.attr.name.replace(prefix, '');
});
WebFontConfig = {
google: { families: [ 'Lato::latin' ] }
#!/usr/bin/env ruby
# solution of http://uva.onlinejudge.org/external/13/1339.pdf
ARGF.map {|x| x.strip.chars.group_by(&:to_s).values.map(&:length).sort }.
each_slice(2) {|a, b| puts a == b ? 'YES' : 'NO' }
#!/usr/bin/env ruby
# I opted for a more conventional mapping, as in
# https://en.wikipedia.org/wiki/File:Telephone-keypad2.svg
MAP = {
'2' => 'abc',
'3' => 'def',
'4' => 'ghi',
'5' => 'jkl',
'6' => 'mno',