Skip to content

Instantly share code, notes, and snippets.

View wilmoore's full-sized avatar

Wil (₩) Moore III wilmoore

View GitHub Profile
@wilmoore
wilmoore / es5-property-definition.js
Created August 8, 2012 06:27
Experiment: Which API is more intention revealing?
function Game(){
var total_score = 0;
var scoring_map = {ghost: 10, pellet: 1, fruit: 5};
Object.defineProperties(this, {
score: { get: function(){ return total_score; } }
});
this.eat = function (edible){
total_score += scoring_map[edible] ? scoring_map[edible] : 0;
@judofyr
judofyr / fizzbuzz.rb
Created August 1, 2012 21:37 — forked from JEG2/fizzbuzz.rb
Writing FizzBuzz with flip-flops
a=b=c=(1..100).each do |num|
print num, ?\r,
("Fizz" unless (a = !a) .. (a = !a)),
("Buzz" unless (b = !b) ... !((c = !c) .. (c = !c))),
?\n
end
@danparsons
danparsons / gist:3195652
Created July 29, 2012 01:46
How to stream the London 2012 Olympics

How to stream the London 2012 Olympics

There have been several HOWTOs posted regarding streaming the 2012 Olympics using HTTP / SOCKS proxies via SSH and other similar methods. None of these actually work using the latest Flash on Mountain Lion (with Firefox, Chrome or Safari). Additionally, the third-party streaming sites don't provide BBC's amazing interface, which lets you quickly skip to individual competitors and events. However, setting up an OpenVPN server does work, with some tweaks. You'll get the exact same UX that people in England receive.

@yorkxin
yorkxin / avoid-jquery-when-possible.md
Created July 7, 2012 13:04
Avoid jQuery When Possible

Avoid jQuery When Possible

jQuery does good jobs when you're dealing with browser compatibility. But we're living in an age that fewer and fewer people use old-school browsers such as IE <= 7. With the growing of DOM APIs in modern browsers (including IE 8), most functions that jQuery provides are built-in natively.

When targeting only modern browsers, it is better to avoid using jQuery's backward-compatible features. Instead, use the native DOM API, which will make your web page run much faster than you might think (native C / C++ implementaion v.s. JavaScript).

If you're making a web page for iOS (e.g. UIWebView), you should use native DOM APIs because mobile Safari is not that old-school web browser; it supports lots of native DOM APIs.

If you're making a Chrome Extension, you should always use native APIs, not only because Chrome has almost the latest DOM APIs available, but this can also avoid performance issue and unnecessary memory occupation (each jQuery-driven extension needs a separate

@MohamedAlaa
MohamedAlaa / tmux-cheatsheet.markdown
Last active July 17, 2025 02:24
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@wilmoore
wilmoore / word-reverse.js
Created June 16, 2012 04:37
Accept a string, tokenize into words (delimited by spaces), output words with reversed characters, words stay in original order
function wordify(string) {
var index = 0;
var word = '';
var words = [];
var end = string.length - 1;
while(string[index] !== undefined) {
word += /^\s/.test(string[index]) ? '' : string[index];
if (/\s/.test(string[index]) || index === end) {
@ckirkendall
ckirkendall / clojure-match.clj
Created June 15, 2012 02:26 — forked from bkyrlach/Expression.fs
Language Compare F#, Ocaml, Scala, Clojure, Ruby and Haskell - Simple AST example
(use '[clojure.core.match :only [match]])
(defn evaluate [env [sym x y]]
(match [sym]
['Number] x
['Add] (+ (evaluate env x) (evaluate env y))
['Multiply] (* (evaluate env x) (evaluate env y))
['Variable] (env x)))
(def environment {"a" 3, "b" 4, "c" 5})
@wilmoore
wilmoore / RECAP.md
Created June 1, 2012 19:57
'Hello, world': Programming languages quiz

Score: 17/20

The languages I missed were:

  • Haskell - I'm a little surprised I missed this but I'm not terribly worried about it
  • Cobol - I am very surprised I missed this one. The PROGRAM-ID keyword is a dead giveaway. Even worse was the review comments at the end for this question read "Once you've seen Cobol code, you can never forget it". Well, crap...I guess I must be dense.
  • Fortran - Not surprised at all. I don't recall every reviewing a Fortran program in my life.

Further observations:

@hellerbarde
hellerbarde / latency.markdown
Created May 31, 2012 13:16 — forked from jboner/latency.txt
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@wilmoore
wilmoore / butterflymachine.js
Last active October 5, 2015 00:17 — forked from tjstebbing/butterflymachine.js
Butterfly state machine ( http://harkablog.com/dynamic-state-machines.html ) in javascript
#!/usr/bin/node
/* butterfly state machine */
var Egg = function(species) {
this.species = species;
console.log("An egg");
this.hatch = function() {