Skip to content

Instantly share code, notes, and snippets.

@genewoo
genewoo / decode_transaction.py
Created October 27, 2022 08:04 — forked from yifeihuang/decode_transaction.py
Decoding an Ethereum smart contract transaction
import traceback
import sys
from functools import lru_cache
from web3 import Web3
from web3.auto import w3
from web3.contract import Contract
from web3._utils.events import get_event_data
from web3._utils.abi import exclude_indexed_event_inputs, get_abi_input_names, get_indexed_event_inputs, normalize_event_input_types
from web3.exceptions import MismatchedABI, LogTopicError
from web3.types import ABIEvent
@genewoo
genewoo / dump_k8s.sh
Created April 26, 2021 15:11
Dump Kubernetes into Export Folder
#!/bin/bash -e
if [ -z "$NAMESPACES" ]; then
NAMESPACES=$(kubectl get ns -o jsonpath={.items[*].metadata.name})
fi
RESOURCETYPES="${RESOURCETYPES:-"ingress deployment configmap svc rc ds networkpolicy statefulset cronjob pvc"}"
GLOBALRESOURCES="${GLOBALRESOURCES:-"namespace storageclass clusterrole clusterrolebinding customresourcedefinition"}"
@genewoo
genewoo / accept_xcode_license.sh
Created September 16, 2016 18:27 — forked from ryanmaclean/accept_xcode_license.sh
Accept Xcode License on the Command Line
# Run using "sudo accept_xcode_license.sh"
#
# Solving the OSX Yosemite Xcode Command Line Tools Licensing problem
# for multiple updates in order to script post-install tasks.
# Typical error reads after running "xcode-select --install" when setting up
# Homebrew is: "Agreeing to the Xcode/iOS license requires admin priviledges,
# please re-run as root via sudo"
#
# CREDIT:
# Based on a tip found at http://krypted.com/mac-os-x/licensing-the-xcode-command-line-tools/
@genewoo
genewoo / ruby_exceptions.rb
Created September 30, 2015 02:50
List all ruby exceptions (loaded)
exceptions = []
tree = {}
ObjectSpace.each_object(Class) do |cls|
next unless cls.ancestors.include? Exception
next if exceptions.include? cls
next if cls.superclass == SystemCallError # avoid dumping Errno's
exceptions << cls
cls.ancestors.delete_if {|e| [Object, Kernel].include? e }.reverse.inject(tree) {|memo,cls| memo[cls] ||= {}}
end
@genewoo
genewoo / tessdata.sh
Last active September 17, 2015 01:13
Download Tesseract Data by Script
#!/bin/bash
if [ $# -eq 0 ]
then
echo "tessdata.sh LANG [TAG]"
echo "check LANG and TAG from https://github.com/tesseract-ocr/tessdata/"
fi
BRANCH=master
if [ $# -eq 2 ]
then
@genewoo
genewoo / application_controller.rb
Last active August 26, 2015 09:54 — forked from scottwb/application_controller.rb
Get a list of all the filters on a given Rails 3 controller.
# Add these methods to your ApplicationController. Then, any controller
# that inherits from it will have these methods and can programmatically
# determine what filters it has set.
class ApplicationController < ActionController::Base
def self.filters(kind = nil)
all_filters = _process_action_callbacks
all_filters = all_filters.select{|f| f.kind == kind} if kind
all_filters.map(&:filter)
end
@genewoo
genewoo / sbt_china_mirror
Last active August 29, 2015 14:28 — forked from manuzhang/sbt_china_mirror
sbt China mirror
[repositories]
local
oschina: http://maven.oschina.net/content/groups/public/
oschina-ivy: http://maven.oschina.net/content/groups/public/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
#sonatype-oss-releases
#maven-central
#sonatype-oss-snapshots
@genewoo
genewoo / BSTree.rb
Last active January 4, 2016 00:39
BST Implement in Ruby
class BSTree
attr_accessor :left, :right, :parent, :value
def initialize(value, parent = nil)
@value = value
@parent = parent
end
def self.build_by_array(array, parent = nil)
return nil unless array
@genewoo
genewoo / api_profiler.rb
Created September 10, 2013 05:21
A simple rack to log api performance.
class APIProfiler
def initialize(app, config = {})
@app = app
# default print out log to STDOUT, otherwise you can inject rails logger
@config = config
@config[:logger] = Logger.new(STDOUT) unless config[:logger]
@config[:log_level] = :info unless config[:logger_level]
@config[:filter] = lambda { false } unless config[:filter] #turn off by default
end
=begin
@genewoo
genewoo / watchdo.sh
Created August 23, 2013 16:27
Watch File or Files changed in a folder to run a command
#!/bin/bash
# watchdo "rake" .rb
command="$1"
shift
fileSpec="$@"
sentinel=/tmp/t.$$
touch -t197001010000 $sentinel