Skip to content

Instantly share code, notes, and snippets.


tampham tamphh

View GitHub Profile
View overcommit_debugger.rb
# added to .git-hooks/pre_commit/debugger.rb
module Overcommit::Hook::PreCommit
# Check for Debugger
class Debugger < Base
def run
keywords = config['keywords']
result = execute(command, args: [keywords.join('|')] + applicable_files)
unless result.stdout.empty?
janko / 1-activerecord.rb
Last active Sep 25, 2020
INSERTing 50,000 records into a database in ActiveRecord, Arel, SQL, activerecord-import and Sequel.
View 1-activerecord.rb
require "active_record"
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Migration.class_eval do
create_table(:records) do |t|
t.string :column
data = { |i| Hash[column: "Column #{i}"] }
wacko / pre-commit
Last active Sep 16, 2020
Git hook to avoid commit debug lines (binding.pry console.log debugger...)
View pre-commit
#!/usr/bin/env ruby
# Validates that you don't commit forbidden keywords to the repo
# You can skip this checking with 'git commit --no-verify'
exit 0 if ARGV.include?('--no-verify')
# Update this list with your own forbidden keywords
KEYWORDS = %w(binding.pry console.log debugger)
def red(text) "\033[31m#{text}\033[0m"; end
josephspurrier / values_pointers.go
Last active Feb 16, 2021
Golang - Asterisk and Ampersand Cheatsheet
View values_pointers.go
Golang - Asterisk and Ampersand Cheatsheet
Also available at:
p := Person{"Steve", 28} stores the value
staltz /
Last active Feb 28, 2021
The introduction to Reactive Programming you've been missing
errzey /
Created Sep 23, 2011
An interesting technique for creating a linked list like structure using SQL with minimal overhead.

I wrote this a long time ago as a proof-of-concept for a vaporware project. Recently I have had the need to something which seems easy at a high-level standpoint, but is actually quite hard to implement.

The original purpose for this concept was to easily maintain a strict order of data held within the rows, while still having the option to reorder the rows in an efficient manner (one table, no joins, no special embedded scripts etc).

A little insight into what I was doing: I once worked on a network security team for a tier-1 ISP. A coworker and myself had already written some really nice code to deal with the thousands (yes, thousands) of firewalls we dealt with on a daily basis. We created an API which generated abstracted structures of firewall configurations; by abstracting I mean creating a singular data-structure which represented rules, and rule-sets (a nice side-effect of this method was we could morph one firewall syntax structure to another. E.g., juniper filters -> netscreen rules. Needless to s