Skip to content

Instantly share code, notes, and snippets.

View tpae's full-sized avatar

Terence Pae tpae

  • San Francisco, CA
  • X @tpae
View GitHub Profile
/*
* Enhances 'require' from RequireJS with Promises API while preserving its original semantics.
*/
(function() {
if (!Promise || !require) {
return;
}
@tpae
tpae / jquery ie placeholder fix
Created November 5, 2012 02:39
jQuery IE Placeholder fix
$('input,textarea').each(function() {
// set this attr placeholder into val, if ie.
if ($.browser.msie) {
if ($(this).val() == '') {
$(this).val($(this).attr('placeholder'));
}
}
}).focus(function() {
if ($.browser.msie) {
if ($(this).val() == $(this).attr('placeholder')) {
@tpae
tpae / stack.js
Last active November 10, 2016 05:25
JavaScript implementation of Stack Data Structure
// Implement a stack using LinkedLists.
// Operations:
// -> push
// -> pop
// -> peek
function StackNode(val) {
this.val = val;
this.next = null;
@tpae
tpae / LinkedListMerge.swift
Last active November 10, 2016 05:28
Merging two LinkedLists in Swift
import Foundation
class Node {
var val: Int
var next: Node?
init(val: Int) {
self.val = val
@tpae
tpae / Rakefile.rb
Last active November 10, 2016 05:29
Bumping version on a podspec when using CocoaPods
task default: %w[version]
version_sizes = ["major", "minor", "patch"]
task :version, [:version_size] do |t, args|
args.with_defaults(:version_size => "patch")
version_size = args.version_size
unless version_sizes.include?(version_size)
fail "invalid version size, please use: major, minor, or patch"
function MergeSort() { }
MergeSort.prototype.sort = function(values) {
if (values.length < 2) {
return values;
}
var mid = Math.floor(values.length/2);
var left = this.sort(values.slice(0, mid));
var right = this.sort(values.slice(mid, values.length));
@tpae
tpae / BSTree.swift
Last active May 8, 2018 16:51
Swift implementation of Binary Search Tree
import Foundation
class Node {
var val: Int
var left: Node?
var right: Node?
@tpae
tpae / OfferManager.sol
Last active March 7, 2021 16:24
Library to help manage multiple offer bids for tokens
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.7.0;
import "@openzeppelin/contracts/utils/Counters.sol";
import "@openzeppelin/contracts/utils/EnumerableSet.sol";
library OfferManager {
using EnumerableSet for EnumerableSet.UintSet;
using EnumerableSet for EnumerableSet.AddressSet;
using Counters for Counters.Counter;
@tpae
tpae / Trie.swift
Last active May 9, 2021 20:59
Swift implementation of Trie Data Structure
import Foundation
class Node {
var val: String?
var parent: Node?
var children: [String: Node] = [:]
@tpae
tpae / LRUCache.js
Created November 21, 2016 08:16
super simple JavaScript Implementation of LRUCache
// LRUCache.js - super simple JavaScript Implementation
// LRU stands for "Least Recently Used"
// https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU
// -----------------------------------------
function LRUNode(key) {
this.key = key;
this.next = this.prev = null;
}