Skip to content

Instantly share code, notes, and snippets.

View sudodoki's full-sized avatar

Джон, просто Джон sudodoki

View GitHub Profile
@sudodoki
sudodoki / interval in coffeeScript
Created November 6, 2012 13:17
setting and clearing interval in coffeeScript
intervalId = setInterval ( ->
console.log 'second passed'
), 1000
clearTimeout intervalId
@sudodoki
sudodoki / Ordinal numbers
Created November 12, 2012 21:58
Returning the original number and an ordinal suffix.
* @author Venkat K
* @see http://www.eggheadcafe.com/community/aspnet/3/43489/hi.aspx
* @param {Number} A positive number.
* @returns the original number and an ordinal suffix.
* @type String
Number.prototype.toOrdinal = function() {
var n = this % 100;
var suffix = ['th', 'st', 'nd', 'rd', 'th'];
var ord = n < 21 ? (n < 4 ? suffix[n] : suffix[0]) : (n % 10 > 4 ? suffix[0] : suffix[n % 10]);
return this + ord;

Basic pre-requisites

  • Some utilities:
sudo apt-get install vim tmux git
  • Copy/paste from the command line:
sudo apt-get install xclip
@sudodoki
sudodoki / gist:5019514
Created February 23, 2013 11:55
CanPlayType test for testing browser's abilities considering audio.
// As seen in https://hacks.mozilla.org/2013/02/simplifying-audio-in-the-browser/
var audioTest = new Audio();
var codecs = {
mp3: !!audioTest.canPlayType('audio/mpeg;').replace(/^no$/,''),
ogg: !!audioTest.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,''),
wav: !!audioTest.canPlayType('audio/wav; codecs="1"').replace(/^no$/,''),
m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/,''),
webm: !!audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,'')
};
@sudodoki
sudodoki / gist:5241839
Last active December 15, 2015 09:58
JavaScript window.onload chaining
(->
# As seen on http://snipplr.com/view/52589/javascript-windowonload-chaining/
# Backup previous onload method.
previous_onload = window.onload
window.onload = ->
try # Execute. Ignore if error.
previous_onload()
# Your code goes here
console.log "Running Code..."
@sudodoki
sudodoki / gist:5352706
Created April 10, 2013 08:02
Listing all events attached to document using jQuery.
$._data(document, 'events')
Getting all event listened by document.
var application_root = __dirname,
express = require("express"),
http = require('http'),
socket = require("socket.io");
var app = express();
var server = http.createServer(app)
var io = socket.listen(server);
io.sockets.on('connection', function(client){
@sudodoki
sudodoki / js tips
Created August 10, 2013 08:09
Useful snippets I'll lose other way I've seen in David Walsh's post http://tech.pro/tutorial/1453/7-javascript-basics-many-developers-aren-t-using-properly
// Cloning Array
var clone = myArray.slice(0); // naive clone
// Merging 2 arrays
var mergeTo = [4,5,6],
var mergeFrom = [7,8,9];
Array.prototype.push.apply(mergeTo, mergeFrom);
# Array::push.apply mergeTo, mergeFrom
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>Open your browser's console to see the results.</p>
@sudodoki
sudodoki / sharedWorker.js
Created August 10, 2013 11:43
Shared worker demo: proof of concept that different tabs can exchange messages using SharedWorker (so far isn't that spread (caniuse.com/#feat=sharedworkers)[http://caniuse.com/#feat=sharedworkers]
var clients = new Array();
clients.length = 0;
var broadcast = function(clients, message) {
var length = clients.length,
element = null;
for (var i = 0; i < length; i++) {
port = clients[i];
port.postMessage(message);
}