Skip to content

Instantly share code, notes, and snippets.

View jankuca's full-sized avatar

Jan Kuča jankuca

  • Prague, Czech Republic
  • 04:46 (UTC +02:00)
View GitHub Profile
@jankuca
jankuca / examples.js
Created February 28, 2011 22:31
Advanced JavaScript (ECMAScript 5) Inheritance
var A = Function.inherit(function () {
console.log('construct A');
}, {
'aa': function () {
console.log('aa A');
},
});
var B = A.inherit(function () {
console.log('construct B');
@jankuca
jankuca / object-events.coffee
Created June 5, 2011 16:37
Object Events - JavaScript event abstraction layer
###
! Object Events
! ==
! A little abstraction layer that connects all Object instances
! to the native event engine and adds custom event support.
! --
! Author: Jan Kuča <jan@jankuca.com>, http://jankuca.com
! Version: 1.0
! Last revision: 05 Jun 2011
###
@jankuca
jankuca / examples.coffee
Created June 21, 2011 09:35
Asynchronous JS Iterator
# == Synchronous loop ==
# It does the same as forEach.
input = ['a', 'b', 'c']
output = {}
iter = new Iterator input, (item, next, i) ->
output[item] = item
console.log 'Finished iteration ' + i
do next
iter.run ->
@jankuca
jankuca / index.js
Created July 14, 2011 18:43
Node.js ARGV parser
function parseInput() {
var input = {
modes: [],
args: [],
params: {},
};
var param_key = null;
var parts = process.argv.slice(2);
parts.forEach(function (part) {
@jankuca
jankuca / deferred.js
Created August 4, 2011 09:12
JavaScript Deferred
goog.provide('Deferred');
/**
* Handles deferred calls
* @constructor
*/
var Deferred = function () {
this.pending_ = [];
this.completed = false;
this.status = null;
@jankuca
jankuca / index.js
Created August 5, 2011 14:46
Colored console for node.js
var stdout = process.stdout;
var info = console.info;
var warn = console.warn;
var error = console.error;
var DEFAULT = "\033[m";
var BLUE = "\033[1;34m";
var YELLOW = "\033[1;33m";
var RED = "\033[1;31m";
@jankuca
jankuca / utils.js
Created March 25, 2012 18:19
JS Kit (node.js)
Object.defineProperty(Function.prototype, 'initializing', {
value: false,
writable: true,
});
Object.defineProperty(Function.prototype, '$super', {
value: function () {
throw new Error('The $super method is not available.');
},
writable: true,
});
@jankuca
jankuca / client.js
Created July 5, 2012 17:10
OT in JS
var area = document.getElementById('area');
var buffer = [];
var position = 0;
var last_id = 1;
var socket = io.connect('http://localhost:5000');
socket.on('operation', function (operation) {
@jankuca
jankuca / compose.js
Created July 14, 2012 17:50
OT Composition in JS
var assert = require('assert');
function dump(actions, graph) {
console.log();
actions.forEach(function (action) {
if (graph) {
switch (action[0]) {
case 'retain':
process.stdout.write(new Array(action[1] + 1).join('>') + ' | ');
var darkside = require('darkside');
var DashboardController = function (users) {
darkside.base(darkside.ViewController, this);
this.$users = users;
};
require('util').inherits(DashboardController, darkside.ViewController);