Skip to content

Instantly share code, notes, and snippets.

# Idiot solution to this dailyprogrammer idea
# <http://redd.it/yln9p>
puts """abandonments
abbreviating
abbreviation
abbreviators
abecedarians
aberrational
abjectnesses
@EvanHahn
EvanHahn / gist:3486751
Created August 27, 2012 08:50
After the DOM is ready, jQuery
// The most readable way (in my opinion)
$(document).ready(function() {
// your code here
});
// Alternate way that's supposedly faster
$.fn.ready(function() {
// your code here
});
@EvanHahn
EvanHahn / gist:3723731
Created September 14, 2012 18:24
EECS 281 discussion 1 notes

C++ I/O

  • cin.get

  • cin.unget

  • getline(cin, var)

  • cin >> var

  • cout is slow because it has to go to the operating system

@EvanHahn
EvanHahn / selectionsort.coffee
Created October 11, 2012 03:25
CoffeeScript selection sort with tests
# Destructive selection sort.
# [1, 12, 8, 5].selectionSort()
Array::selectionSort = ->
# Look forward from each element.
for num, i in this
# Find the smallest element in this partition.
smallest = null
smallestIndex
@EvanHahn
EvanHahn / mergesort.coffee
Created October 11, 2012 04:16
CoffeeScript merge sort with tests
# Non-destructive merge sort.
# [1, 8, 12, 5].mergeSort()
Array::mergeSort = ->
# If the array has one element, we're done.
return this if @length is 1
# Split the array in half.
halfwayMark = Math.floor(@length / 2)
firstHalf = @slice(0, halfwayMark)
@EvanHahn
EvanHahn / gist:3873495
Created October 11, 2012 16:10
Testing the behavior of Object.is
// Test my hypothesis that Object.is(a, b) is the same as a === b.
// Log an error if they're different.
var numTests = 0;
function test(a, b) {
if ((Object.is(a, b)) !== (a === b)) {
console.error('Object.is is different from === for ' + a + ' and ' + b);
}
numTests ++;
}
@EvanHahn
EvanHahn / quicksort_nodupes.coffee
Created October 11, 2012 17:37
CoffeeScript quicksort with tests
# Non-destructive quicksort.
# DOESN'T WORK WITH DUPLICATES. Too lazy.
# [1, 5, 8, 12].quickSort()
Array::quickSort = ->
# Is the array already sorted by nature of its length?
return this if @length <= 1
# Pick a pivot as a random element.
# This is probably not the best pivot we could choose.
@EvanHahn
EvanHahn / gist:4498026
Last active December 10, 2015 21:48
Example page that does its best to disable copy-paste. For more: <http://evanhahn.com/?p=379>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
body {
-webkit-user-select: none;
-khtml-user-drag: none;
-khtml-user-select: none;
-moz-user-select: none;
@EvanHahn
EvanHahn / gist:4945775
Last active December 13, 2015 17:09
A friend asked for help on some basic Java homework, and so here it is.

Let's first talk about booleans, which you might already know, so I apologize if this is review. If you think you understand booleans completely, skip this puppy.

Booleans

A boolean is a variable type in many programming languages. It usually that something can be true or false, yes or no, on or off, 0 or 1.

I imagine booleans like lightswitches. They can either be on or off -- true or false.

Most languages have true and false, but they vary somewhat. C++ writes true and false, where Python has capitalized True and False. CoffeeScript supplements the classics and adds yes, no, on, and off. C kinda doesn't have them built-in, you have to make your own.

@EvanHahn
EvanHahn / server.js
Last active December 17, 2015 10:39
Express server that looks for files in /common, then figures out the useragent and goes somewhere else.
// Load dependencies
var express = require('express');
var is = require('browseris');
var fs = require('fs');
// Build me an app!
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.compress());