Skip to content

Instantly share code, notes, and snippets.

View hackerrdave's full-sized avatar
🏠
Working from home

Dave Kerr hackerrdave

🏠
Working from home
View GitHub Profile
#!/bin/bash
sum() {
local result=$(($1 + $2))
echo $result
return $result
}
sum 1 4
# 5
#!/bin/bash
noisy_work() {
not_a_real_command
} 2> /dev/null
sum() {
noisy_work
echo $(( $1 + $2 ))
}
@hackerrdave
hackerrdave / bash_functions.sh
Last active July 7, 2019 19:19
Example Bash Functions
#!/bin/bash
sum() {
echo $(( $1 + $2 ))
}
sum 1 4
# 5
@hackerrdave
hackerrdave / lru-cache.js
Created August 12, 2018 21:55
Data Structures | LRU Cache | JavaScript
// Least Recently Used (LRU) Cache w/ Doubly-Linked List implemented in JavaScript
// By @hackerrdave
function LRUCache(capacity) {
this.capacity = capacity;
this.map = {}; //store mapping of key => linked-list node reference
this.nodeCount = 0;
this.cacheHead = new Node(null);
this.cacheTail = this.cacheHead;
}
@hackerrdave
hackerrdave / priority-queue.js
Created August 12, 2018 17:27
Data Structures | Priority Queue | JavaScript
// Priority Queue ADT w/ Max Heap implemented in JavaScript
// By @hackerrdave
function PriorityQueue() {
this.heap = [null];
}
function PriorityQueueNode(value, priority) {
this.value = value;
this.priority = priority;
@hackerrdave
hackerrdave / quick-sort.js
Created August 12, 2018 15:37
Algorithms | Quick Sort | JavaScript
// Quick Sort Algorithm implemented in JavaScript
// By @hackerrdave
function quickSort(arr) {
if (arr.length < 2) {
return arr;
}
let pivot = arr[0]; //let pivot point be the first element
let lesser = []; //track elements < the pivot value
@hackerrdave
hackerrdave / merge-sort.js
Last active August 12, 2018 15:18
Algorithms | Merge Sort | JavaScript
// Merge Sort Algorithm implemented in JavaScript
// By @hackerrdave
function mergeSort(arr) {
if (arr.length < 2) {
return arr;
}
let midpoint = Math.floor(arr.length / 2);
let leftHalf = arr.slice(0, midpoint); //slice an array of left-half items
@hackerrdave
hackerrdave / poller.js
Created May 17, 2015 19:43
Poller Service
import Ember from 'ember';
export default Ember.Service.extend({
eventInterval: 10000,
schedulePollEvent(event, interval) {
var eventInterval = interval || this.get('eventInterval');
return Ember.run.later(()=>{
event.apply(this);
this.set('timer', this.schedulePollEvent(event));
@hackerrdave
hackerrdave / pascaltriangle.scala
Last active August 29, 2015 14:20
Learning Scala
def pascal(c: Int, r: Int) = {
def factorial(n: Int): Int =
if (n == 0) 1 else n * factorial(n - 1)
factorial(r) / ( factorial(c) * factorial(r - c) )
}
@hackerrdave
hackerrdave / index.js
Created April 25, 2015 18:54
Ember Services Injection
// app/routes/index.js
import Ember from 'ember';
export default Ember.Route.extend({
authManager: Ember.inject.service(),
currentUser: Ember.computed.alias('authManager.currentUser'),
});