{{ message }}

Instantly share code, notes, and snippets.

John Tantalo tantalor

Created May 5, 2014
Merge Algorithm
View merge.py
 def merge(streams): # Keep track of the least value in each stream. head = [stream.next() for stream in streams] while len(head): # Yield the least value of all streams. next = min(head) yield next index = head.index(next) try: # Get next value from that stream.
Created Nov 8, 2013
A perl script which outputs the usernames for new comments on Hacker News, preceded by the date.
 #!/usr/bin/perl my \$url = "https://news.ycombinator.com/newcomments"; sub html { `curl get \$url 2>/dev/null`; } printf "# %s", `date`;
Created Jul 2, 2013
Testing whether reservoir sampling works when you sample the RNG only once. reservoir1: Samples RNG once per stream element. reservoir2: Samples the RNG once per stream.
View reservoir.py
 from random import random as rand def reservoir1(stream): i = 1 choice = None for value in stream: if rand() * i < 1: choice = value i = i + 1 return choice
Created Jun 3, 2012
linear algorithm to generate catalan numbers
View catalan.py
 def catalan(): """Yields catalan numbers: 1 1 2 5 14 42 132...""" n = 0 c = 1 while 1: yield c n = n+1 c = c * 2 * (2*n-1) / (n+1) # print the first ten catalan numbers
Created Apr 26, 2012
liquidGraph minimal no-solution
View graph.js
 {"polys":[{"fillColor":"110-hsb(0.1820702975615859,0.7,1)-hsb(0.38207029756158595,0.9,1)","vertices":[{"x":0.0380517503805175,"y":0.25799086757990863},{"x":0.11643835616438353,"y":0.25722983257229837},{"x":0.13318112633181123,"y":0.21232876712328766},{"x":0.1582952815829528,"y":0.27853881278538817},{"x":0,"y":0.2808219178082192},{"x":0.1537290715372907,"y":0},{"x":0.33409436834094364,"y":0.2808219178082192},{"x":0.1811263318112633,"y":0.27929984779299843},{"x":0.20319634703196343,"y":0.21232876712328766},{"x":0.2161339421613394,"y":0.25494672754946723},{"x":0.29147640791476404,"y":0.258751902587519},{"x":0.1552511415525114,"y":0.04033485540334855}]}],"particles":[]}
Created Apr 3, 2012
View original.js
 var notification = navigator.mozNotification; if (notification && notification.requestRemotePermission) { // Ask the user to allow notifications. var request = notification.requestRemotePermission(); request.onsuccess = function() { var url = request.result; console.log('New push URL: ' + url); // We got a new push URL, store it on the server. jQuery.post('/push-urls/', {url: url}); };
Created Mar 29, 2012 — forked from jedsundwall/gist:2244379