Skip to content

Instantly share code, notes, and snippets.

Avatar

Andy Zhang zhangandyx

  • San Francisco, CA
View GitHub Profile
@zhangandyx
zhangandyx / .profile fragment
Created Jun 11, 2012 — forked from jcamenisch/.profile fragment
Lightning-fast project-wide find/replace with git grep and sed
View .profile fragment
gg_replace() {
if [[ "$#" == "0" ]]; then
echo 'Usage:'
echo ' gg_replace term replacement file_mask'
echo
echo 'Example:'
echo ' gg_replace cappuchino cappuccino *.html'
echo
else
find=$1; shift
@zhangandyx
zhangandyx / _profile_preview.haml
Created Sep 6, 2012
CarrierWave Image Preview/Upload
View _profile_preview.haml
.river-pics
= profile_image_for current_user
%p #{current_user.first_name}, #{current_user.age}
.blurb
%p
#content
%h1 Satisfied?
%p Hover your mouse over your picture.
%p This is how others will see you.
View raskell.rb
$stack, $draws = [], {}
def method_missing *args
return if args[0][/^to_/]
$stack << args.map { |a| a or $stack.pop }
$draws[$stack.pop(2)[0][0]] = args[1] if args[0] == :<
end
class Array
def +@
View long_running.txt
Log onto bad mongo primary
Use mongotop to find bad database
Run this to find long running queries
db.currentOp()['inprog'].filter(function (t){return t.secs_running > 10}).map(function (t){return t.opid})
Kill bad ops with
db.killOp(<opid>)
@zhangandyx
zhangandyx / find_missing_number.rb
Last active Dec 23, 2015
Find missing number from array
View find_missing_number.rb
def missing_number num_array:
n = num_array.length + 1
expected = n * (n + 1) / 2
actual = num_array.reduce :+
missing = expected - actual
return missing
end
@zhangandyx
zhangandyx / fizzbuzz.rb
Created Sep 26, 2013
Extensible FizzBuzz
View fizzbuzz.rb
def fizzbuzz(max):
1.upto(max).each do |num|
line = ''
line << 'Fizz' if num % 3 == 0
line << 'Buzz' if num % 5 == 0
line = num if line.empty?
p line
end
end
@zhangandyx
zhangandyx / tokenize_string.rb
Created Sep 26, 2013
Given string and punctuation, tokenize string on punctuation and whitespace. Done using both split and scan.
View tokenize_string.rb
def tokenize_query_split query, punctuation
punc_regex = /[#{punctuation}\s]+/
tokens = query.split(punc_regex)
tokens.each do |token|
p token
end
end
@zhangandyx
zhangandyx / simple_datastore.rb
Created Oct 2, 2013
Simple key-value datastore. Basic data & transaction commands.
View simple_datastore.rb
## SUMMARY
# Use Hash($db) to maintain state
# Track # open transactions
# Memoize modified vars per transaction ($history)
# Be naught, use globals (not thread-safe)
$db = {}
$transactions = 0
$history = {}
@zhangandyx
zhangandyx / stack_machine_functional.rb
Created Oct 8, 2013
Functional-ish version of stack machine
View stack_machine_functional.rb
$stack = []
def solution(s)
s.each_char do |c|
case c
when /[0-9]/
$stack.push c
puts c
when '+'
return -1 unless op_nums(lambda { |left, right| left + right })
@zhangandyx
zhangandyx / sudoku.py
Created Oct 10, 2013
Quick solution to sudoku checker. Does NOT check if board is correctly completable, only if it's currently correct.
View sudoku.py
# Check nums for rows, columns and blocks
def check(nums):
num_dict = {}
# assume nums is a list of integers
# placeholder for empty is None
for num in nums:
if not num:
continue
if num in num_dict:
return false