Skip to content

Instantly share code, notes, and snippets.

@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