Skip to content

Instantly share code, notes, and snippets.

Patrick Tran theptrk

Block or report user

Report or block theptrk

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@theptrk
theptrk / rust-black-scholes
Created Jun 16, 2014
Black Scholes Formula in Rust
View rust-black-scholes
/* The Black and Scholes (1973) Stock option formula */
use std::f64;
fn black_scholes(putCallFlag:&str, s:f64, x:f64, t:f64, r:f64, v:f64) -> f64 {
let d1 = ( (s / x).ln() + (r + v * v / 2.0) * t) / ( v * t.sqrt() );
let d2 = d1 - v * t.sqrt();
@theptrk
theptrk / SomeComponent.jsx
Created Aug 7, 2015
bindContext takes an array and binds a context
View SomeComponent.jsx
import React from 'react'
import bindContext from './path/to/bindContext';
export default class SomeComponent extends React.Component {
constructor() {
super();
// ========== Too verbose ==========
// this.toggleEventForm = this.toggleEventForm.bind(this);
// this.handleSubmit = this.handleSubmit.bind(this);
@theptrk
theptrk / KaleActions.js
Created Sep 8, 2015
Flux with promises
View KaleActions.js
import alt from '../libs/alt';
class KaleActions {
create(data) {
return new Promise((resolve, reject) => {
var post = $.ajax({
type: 'POST',
data: data,
url: '/kaleapi',
});
@theptrk
theptrk / circle.html
Created Aug 10, 2016
This is a circle in css
View circle.html
<!DOCTYPE html>
<html>
<head>
<title>Circle</title>
<style type="text/css">
.circle-container {
width: 150px;
height: 150px;
line-height: 150px;
text-align: center;
View reduce.js
// write reduce without Array.reduce
// @param {Array} list
// @param {Function} fn takes (acc, result)
// @acc {*} acc is the starting point or working accumulator
const reduce (list, fn, acc) => {
let i = 0;
var len = list.length;
while(i < len) {
acc = fn(acc, list[i])
View mapAndFilterInReduce.js
// Part 1
// write an array mapping function that can be passed into reduce
const mapping = (transform) => (acc, val) => acc.concat([transform(val)]);
// write an array filtering function that can be passed into reduce
const filtering = (predicate) => (acc, val) => predicate ? acc.concat([val]): acc;
// Part 2
// abstract out the "reduce" logic
const concat = (acc, val) => acc.concat([val]);
@theptrk
theptrk / spiral-traversal.js
Created Jun 20, 2017
Spiral Traversal of 2D array in JavaScript
View spiral-traversal.js
const test1 = [
[1]
];
const test2 = [
[1, 2],
[3, 4]
];
const test3 = [
[1, 2, 3],
[4, 5, 6],
@theptrk
theptrk / phone-number-mnemonics-iteratively.js
Created Jun 21, 2017
given a telephone number, return a list of possible mnemonics using a standard US telephone
View phone-number-mnemonics-iteratively.js
const phoneNumberMnemonics = (phoneNumber) => {
const letters = ["0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"]
const numbers = phoneNumber.split('');
const results = [];
const wipStack = [
{ wip: '', remaining: numbers }
];
while (wipStack.length > 0) {
let [wip, remainingNumbers] = wipStack.pop();
if (remainingNumbers.length > 0) {
@theptrk
theptrk / k-shifted-array.js
Created Jul 18, 2017
Algo. K shifted array. Find K
View k-shifted-array.js
// TODO TEST
// given [3,4,5,6,7,8,9,1,2]
// return 7
const test1 = [3,4,5,6,7,8,9,1,2]
const test2 = [8,9,1,2,3,4,5,6,7]
const findk = list => {
if (list[0] < list[list.length-1]) {
return 0;
}
View example.diff
--- /dev/null
+++ b/my_file.txt
@@ -0,0 +1,3 @@
+Dear Abby
+I met a new person today
+It was a good day
You can’t perform that action at this time.