Skip to content

Instantly share code, notes, and snippets.

View rla's full-sized avatar

Raivo Laanemets rla

View GitHub Profile
@rla
rla / sync.js
Created January 27, 2012 18:15
Syncing data
function Server() {
this.rev = 0;
this.data = {};
this.changes = []; // { id, rev }
}
/**
* Finds changes after given revision. Returns array of {id, op, rev}.
*/
Server.prototype.changesAfter = function(rev) {
@rla
rla / sync-log.txt
Created January 27, 2012 18:17
Sync log
Client 1 data before 1st sync
Revision: 0
Data:
1: d1-1.0
2: d2-2.0
Changes:
r0 1
r0 2
Client 1 data after 1st sync
Revision: 1
@rla
rla / sync2.js
Created January 27, 2012 19:06
Syncing with conflict resolution
Client.prototype.sync = function(server) {
var scs = server.changesAfter(this.rev);
var ccs = this.currentChanges();
var conflicting = {}; // id -> true
var client = this;
// Find and resolve conflicting changes.
@rla
rla / sync3.js
Created January 27, 2012 19:26
Sync 3
function Server() {
this.rev = 0;
this.data = {};
this.changes = []; // { id, rev }
}
/**
* Finds changes after given revision. Returns array of {id, op, rev}.
*/
Server.prototype.changesAfter = function(rev) {
@rla
rla / gist:2689368
Created May 13, 2012 17:23
Node.JS startup scripts
start.sh:
#!/usr/bin/env bash
if [ -e 'master.pid' ]
then
echo 'Master PID file exists, cannot start.'
exit 1
fi
@rla
rla / app.js
Created May 13, 2012 17:41
Node.JS cluster startup
var cluster = require('cluster');
var fs = require('fs');
var config = require('./config.json');
var assets = require('./lib/assets');
// Fork child processes.
if (cluster.isMaster) {
// Run asset cleanup.
@rla
rla / cluster.js
Created June 29, 2012 17:54
Node.js 0.8.x cluster helper
var cluster = require('cluster');
var config = require('../config.json');
var fs = require('fs');
// Helper module to use cluster.
var pidfile = config.server.pidfile;
// Signals that can be caught and handled.
@rla
rla / MouseClickEventFilter.cpp
Created July 6, 2012 20:47
MouseClickEventFilter
// Header
class MouseClickEventFilter : public QObject
{
Q_OBJECT
public:
explicit MouseClickEventFilter(QObject *parent = 0);
signals:
void clicked();
@rla
rla / qt-creator-compilation-error.txt
Created July 17, 2012 13:04
Qt-Creator 2.5 compilation error
/usr/local/Trolltech/Qt-4.8.2/bin/moc -DMACROS_LIBRARY -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_NO_CAST_TO_ASCII -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.2/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.8.2/include/QtCore -I/usr/local/Trolltech/Qt-4.8.2/include/QtGui -I/usr/local/Trolltech/Qt-4.8.2/include -I../../../src -I../../libs -I/home/raivo/Downloads/qt-creator-2.5.0-src/tools -I../../plugins -I../../libs/3rdparty/botan/build -I.moc/release-shared -I.uic macrooptionspage.h -o .moc/release-shared/moc_macrooptionspage.cpp
g++ -c -pipe -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DMACROS_LIBRARY -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_NO_CAST_TO_ASCII -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.2/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.8.2/include/QtCor
@rla
rla / qt-configure-line.txt
Created July 17, 2012 13:08
Qt 4.8.2 configure line
./configure \
-release \
-opensource \
-shared \
-no-fast \
-no-accessibility \
-largefile \
-exceptions \
-no-stl \
-plugin-sql-sqlite \