Skip to content

Instantly share code, notes, and snippets.

View madr's full-sized avatar
🤘
Elixir, React, Phoenix Liveview, Rust.

Anders Englöf Ytterström madr

🤘
Elixir, React, Phoenix Liveview, Rust.
View GitHub Profile
@madr
madr / gist:1931862
Created February 28, 2012 10:50
Basic front controller for single page applications
/*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, curly:true, browser:true, indent:2, maxerr:50 */
/*!
front.js
(c) 2011 Anders Ytterström
front.js may be freely distributed under the MIT license.
TODO: pushState support
*/
/*
@madr
madr / gist:1931955
Created February 28, 2012 11:14
Click listener and delegator
/*!
light-weight click listener, v 1.0
Copyright (c) 2010 by madr <http://madr.se>
Licensed under the MIT license: http://en.wikipedia.org/wiki/MIT_License
*/
/*
Usage:
Alter the below snippet for your needs and put the modified snippet in a js-file or a <script> and add it to your document. If your webapp depends on libraries or other resources to load, you better keep that in mind.
*/
(function(document, undefined) {
@madr
madr / gist:1931992
Created February 28, 2012 11:20
Misc JavaScript Helpers
function adate(daysFromNow) {
var date, datestr, mm, dd;
datestr = new Date().getTime();
if (!!daysFromNow) {
datestr += (1000 * 60 * 60 * 24 * daysFromNow);
}
date = new Date(datestr);
mm = date.getMonth() + '';
if (mm.length == 1) {
mm = '0' + mm;
@madr
madr / gist:1932023
Created February 28, 2012 11:26
Useful sass mixins
/* vertical ruler using pseudo-elements */
@mixin columnseparator {
@extend .relative;
&:before {
content: '';
position: absolute;
top: 0;
width: 3px;
background: #eee;
@madr
madr / gist:2006856
Created March 9, 2012 14:56
Factorials in JavaScript
/*jslint indent: 2 */
var factorial = function (x) {
"use strict";
var results = 1;
if (x === 0) { return results; }
results = x * factorial(x - 1);
return results;
};
@madr
madr / gist:2225916
Created March 28, 2012 12:58
sprintf i JavaScript
/*
Thank you, almighty!
http://www.nczonline.net/blog/2011/10/11/simple-maintainable-templating-with-javascript/
*/
function sprintf(text){
var i=1, args=arguments;
return text.replace(/%s/g, function(pattern){
return (i < args.length) ? args[i++] : "";
});
}
@madr
madr / gist:2406978
Created April 17, 2012 15:45
Image management in SCSS
// -----------------------------------------------------------------
// Image management helpers
//
// Returns `background` declarations in three modes: single,
// sprites, embed.
//
// * `single` will return the original image. This is default in
// dev mode.
// * `sprited` will return the images position on a already
// generated sprite map.
@madr
madr / gist:2420908
Created April 19, 2012 13:12
Simple get_collection
# coding=utf-8
from pymongo import Connection
# configuration
MONGODB_HOST = "localhost"
MONGODB_PORT = 27017
MONGODB_DB = "guidenext"
def get_collection(name):
connection = Connection(MONGODB_HOST, MONGODB_PORT)
@madr
madr / gist:2469953
Created April 23, 2012 09:56
Basic idea of conditional JavaScript execution using CSS media queries, no libraries needed
/*jslint devel:true, browser:true, indent:2, maxlen: 70 */
(function (window) {
"use strict";
var Condition, Listener, watcher;
// Requires window.matchMedia:
// https://developer.mozilla.org/en/DOM/window.matchMedia
if (typeof window.matchMedia === "undefined") { return; }
Condition = function (mq, callback) {
@madr
madr / gist:2632993
Created May 8, 2012 06:15
autocomplete field with callback
/*
By Anders Ytterström 2012.
Example use:
<script src="autocomplete.js"></script>
<script>
var values = ["Hansi", "Andre", "The Omen", "Marcus", "Prince Charles"],
callback = function (k) {
console.log(k);
};