Skip to content

Instantly share code, notes, and snippets.

View chrisle's full-sized avatar
💭
probably partying...

Chris Le (TRIODE) chrisle

💭
probably partying...
View GitHub Profile
@chrisle
chrisle / scrollwaypoints.html
Last active May 28, 2021 06:51
Scrolling + jQuery Waypoints
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<!-- Download from here: http://imakewebthings.com/jquery-waypoints/ -->
<script src="https://raw.githubusercontent.com/imakewebthings/jquery-waypoints/master/waypoints.js"></script>
<style type="text/css">
/* A box that is 500px tall */
.content {
height: 500px;
@chrisle
chrisle / gist:9478860
Last active August 29, 2015 13:57
Is this what you mean?
You have ...
[1,2,3,4,5,6,7,8,9]
[1,2,3,4,5,6,7]
[1,2,3]
You want in chunks of N (say 3)
[
[1,2,3],
[4,5,6],
[7,8,9],
@chrisle
chrisle / gist:8588282
Created January 23, 2014 22:40
TLDR - Google Analytics
/**
* The very simplest explanation of how GA works in JavaScript is that it's simply an array.
* The GA tag (not the new Universal tag) looks similar to this:
*/
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-y']);
_gaq.push(['_trackPageview']);
(function () {
@chrisle
chrisle / gist:7055839
Last active December 25, 2015 23:19
Should an API allow for polling or instead push results? What do you prefer?

Question

If http://localhost/api/do_job kicks off a job on the backend that will take 45-120 seconds to complete, what should the API return?

POLL) Return 202 Accepted + a URL polling end point.

Eg:

202 Accepted
{ "job_id": 103859195, "poll": "http://localhost/poll/103859195", "complete": "0%" }
@chrisle
chrisle / gist:6368604
Created August 28, 2013 17:14
Humanize an underscored or camel cased string in JavaScript
/**
* Humanize a string. Turns underscored or camel cased string into human readable strings
*
* @example
* TextUtils.humanize( 'keyword_category' ); // => "Keyword Category"
* TextUtils.humanize( 'keywordCategory' ); // => "Keyword Category"
*
* @return {String}
*/
humanize: function(str) {
class Puzzle
attr_accessor :field
def initialize
self.field = true
end
def run
puts field.inspect # => true
@chrisle
chrisle / gist:5129460
Created March 10, 2013 17:06
Split Array By
/**
* Adds empty elements to an array
*
* @example
* A1: hello
* A2: world
*
* =splitArrayBy(A1:A2, 3)
*/
function splitArrayBy(array, n) {
@chrisle
chrisle / hashes.js
Last active September 16, 2020 13:12
Compute hashes for Google Docs
function computeMD5(str) {
var digest = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, str);
return Utilities.base64Encode(digest);
}
function computeSHA1(str) {
var digest = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_1, str);
return Utilities.base64Encode(digest);
}
@chrisle
chrisle / nico.js
Created February 11, 2013 20:14
Nicos bookmarklet
// This is to be used as a bookmarklet
// Supposed to show a prompt where you pick if you want to do a site: search alpha using 'a' or bravo using 'b'
// However, this isn't working as a bookmarklet but does work in the live w3 editor
javascript:var name=prompt("Please enter your name \n a = alpha \n b = bravo","x");
switch (name) {
case "a":
location.href='http://www.google.com/search?q=site%3A'+document.domain.replace('www.','')+" alpha"
break;
case "b":
<form id="myForm">
Name: <input type="text" name="name" id="name" /><br/>
Email: <input type="text" name="email" id="email" /><br/>
Password: <input type="text" name="password" id="password" /><br/>
Website: <input type="text" name="website" id="website" /><br/>
<button type="submit" onClick="trackUserEngagement('myForm');">Submit</button>
</form>
<script type="text/javascript">
// Track user engagement on a form