Some cleaning 😢

This commit is contained in:
Thomas FORGIONE
2015-11-13 10:36:54 +01:00
parent 59518eb702
commit 5e0a6c3121
113 changed files with 433 additions and 67 deletions
+141
View File
@@ -0,0 +1,141 @@
"use strict";
let fs = require('fs');
class OutOfBoundError extends Error {
constructor(matrix, i, j) {
super(`Index array out of bound (${i},${j}) exceeds (${matrix.lines}, ${matrix.columns}).`);
this.name = 'OutOfBoundError';
}
}
class Matrix {
constructor(lines, columns) {
// this.lines = lines;
// this.columns = columns;
this.data = [];
for (let i = 0; i < lines; i++) {
let line = [];
for (let j = 0; j < columns; j++) {
line.push(0);
}
this.data.push(line);
}
}
get(i, j) {
// if (i >= this.lines || j >= this.columns || i < 0 || j < 0 ) {
// this._throwOutOfBoundError(i,j);
// }
return this.data[i][j];
}
set(i, j, value) {
// if (i >= this.lines || j >= this.columns || i < 0 || j < 0 ) {
// this._throwOutOfBoundError(i,j);
// }
return this.data[i][j] = value;
}
print(type) {
if (type === 'matlab') {
let maxColumns = 0;
for (let i = 0; i < this.data.length; i++) {
if (this.data[i].length > maxColumns)
maxColumns = this.data[i].length;
}
let str = '[';
for (let i = 0; i < this.data.length; i++) {
str += '[';
for (let j = 0; j < maxColumns; j++) {
str +=
(this.data[i][j] !== undefined ? this.data[i][j] : 0) +
(j === maxColumns - 1 ? ']' : ',');
}
str += (i === this.data.length - 1 ? ']' : ';');
}
console.log(str + ';');
return;
}
// for (let i = 0; i < this.lines; i++) {
// for (let j = 0; j < this.columns; j++) {
// process.stdout.write(this.get(i,j) + ' ');
// }
// process.stdout.write('\n');
// }
}
toArray() {
return this.data;
}
fromArray(array) {
// if (! array instanceof Array)
// throw new TypeError('Parameter is not an array');
// let columns = null;
// for (let line of array) {
// if (! line instanceof Array)
// throw new TypeError('Parameter is not an array of array');
// if (columns === null) {
// columns = line.length;
// } else if (columns !== line.length) {
// throw new Typerror('The lines have not the same size');
// }
// }
this.data = array;
// this.columns = columns;
// this.lines = array.length;
}
saveToFile(path, type) {
if (type === 'matlab') {
fs.writeFileSync(path, JSON.stringify(this.data).replace('],', '];'));
return;
}
fs.writeFileSync(path, JSON.stringify(this.data));
}
loadFromFile(path) {
this.fromArray(JSON.parse(fs.readFileSync(path, 'utf-8')));
}
_throwOutOfBoundError(i,j) {
throw new OutOfBoundError(this, i, j);
}
};
module.exports = Matrix;
function main() {
var m = new Matrix(2,3);
m.set(1,2,3);
m.print();
m.saveToFile('tests/myMatrix.json');
console.log('----');
var m2 = new Matrix();
m2.loadFromFile('tests/myMatrix.json');
m2.print();
}
if (require.main === module) {
main();
}
+85
View File
@@ -0,0 +1,85 @@
var Log = {};
var Colors = Object.freeze({
DEFAULT: '\033[0m',
BLACK: '\033[30m',
RED: '\033[31m',
GREEN: '\033[32m',
YELLOW: '\033[33m',
BLUE: '\033[34m',
MAGENTA: '\033[35m',
CYAN: '\033[36m',
ORANGE: '\033[38;5;202m',
});
var isDev = require('express')().get('env') === 'development';
var log;
if (isDev) {
log = function(elt, color) {
console.log(color + elt + Colors.DEFAULT);
};
} else {
log = function(elt, color) {
console.log(elt);
};
}
Log.ready = function(msg) {
log('[RDY] ' + new Date() + ' ' + msg, Colors.GREEN);
};
Log.request = function(req, res, time) {
if (req.headers['x-forwarded-for'] !== undefined || isDev) {
log(
'[REQ] ' + new Date() + ' ' +
(req.headers['x-forwarded-for'] || req.connection.remoteAddress) +
(time !== undefined ? (' in ' + (" " + time).slice(-6) + ' ms') : '') +
' : ' + (req.static && req.url !== '/favicon.ico' ? '/static' + req.url : req.url),
req.static ? Colors.YELLOW : Colors.CYAN
);
}
};
Log.socket = {};
Log.socket.connection = function(socket) {
log(
'[SOK] ' + new Date() + ' ' +
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' connection',
Colors.MAGENTA
);
};
Log.socket.disconnect = function(socket) {
log(
'[SOK] ' + new Date() + ' ' +
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' disconnect',
Colors.MAGENTA
);
};
Log.dberror = function(error) {
log(
'[DBE] ' + new Date() + ' ' + error,
Colors.RED
);
};
Log.mailerror = function(error) {
log(
'[MLE] ' + new Date() + ' ' + error,
Colors.RED
);
};
Log.debug = function(info, force) {
if (isDev || force === true) {
log(
'[DBG] ' + (info !== undefined ? info : ''),
Colors.ORANGE
);
}
};
module.exports = Log;
+101
View File
@@ -0,0 +1,101 @@
"use strict";
let fs = require('fs');
let THREE = require('three');
let L3D = require('../static/js/l3d.min.js');
function serialize(object) {
let data = {};
data.vertices = object.children[0].geometry.vertices;
data.children = [];
for (let objChild of object.children) {
let newChild = {};
// newChild.faceVertexUvs = objChild.geometry.faceVertexUvs;
newChild.faces = objChild.geometry.faces;
data.children.push(newChild);
}
return JSON.stringify(data);
}
function deserialize(str) {
let parse = JSON.parse(str);
let vertices = [];
let material = new THREE.MeshBasicMaterial();
let ret = new THREE.Object3D();
for (let vertex of parse.vertices) {
vertices.push(new THREE.Vector3(vertex.x, vertex.y, vertex.z));
}
for (let parseChild of parse.children) {
let geometry = new THREE.Geometry();
geometry.vertices = vertices;
for (let face of parseChild.faces) {
geometry.faces.push(new THREE.Face3(face.a, face.b, face.c));
}
geometry.computeBoundingSphere();
let newChild = new THREE.Mesh(geometry, material);
ret.children.push(newChild);
}
return ret;
}
function serializeToFile(path, obj) {
fs.writeFileSync(path, serialize(obj));
}
function loadFromFile(path) {
return deserialize(fs.readFileSync(path, 'utf-8'));
}
module.exports.serialize = serialize;
module.exports.deserialize = deserialize;
module.exports.serializeToFile = serializeToFile;
module.exports.loadFromFile = loadFromFile;
function main() {
let loader = new L3D.ProgressiveLoader(
'/static/data/castle/princess peaches castle (outside).obj',
new THREE.Object3D(),
null
);
loader.load(function() {
console.log("Loaded");
// console.log(loader.obj.children[0].geometry);
deserialize(serialize(loader.obj));
});
}
if (require.main === module) {
main();
}
+43
View File
@@ -0,0 +1,43 @@
/**
* Module dependencies.
*/
var express = require('express');
var fs = require('fs');
var Log = require('./NodeLog.js');
module.exports = function(parent){
Log.debug("Loading controllers :");
fs.readdirSync(__dirname + '/../controllers').forEach(function(name){
// index.js in controller, with function as pages (views.py for django)
var obj = require('./../controllers/' + name + '/index');
// urls.js, just like django urls.py
var urls = require('./../controllers/' + name + '/urls');
name = obj.name || name;
var app = express();
// allow specifying the view engine
if (obj.engine) app.set('view engine', obj.engine);
app.set('views', __dirname + '/../controllers/' + name + '/views');
// generate routes based
// on the exported methods
Log.debug(' ' + name + ':');
for (var key in urls) {
app.get(key, obj[urls[key]]);
Log.debug(' ' + key + ' -> ' + name + '.' + urls[key]);
}
Log.debug();
// mount the app
parent.use(app);
});
};
+6
View File
@@ -0,0 +1,6 @@
// Strict parseInt
module.exports.filterInt = function(value) {
if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value))
return Number(value);
return NaN;
};
+1
View File
@@ -0,0 +1 @@
[[0,0.07894736842105263,0.18421052631578946,0,0.02631578947368421,0.02631578947368421,0,0.02631578947368421,0,0.13157894736842105,0.2894736842105263,0.2631578947368421],[0,0,0.10526315789473684,0.15789473684210525,0.18421052631578946,0.02631578947368421,0,0.07894736842105263,0.02631578947368421,0.05263157894736842,0.05263157894736842,0.05263157894736842],[0,0.02631578947368421,0,0.5,0.02631578947368421,0.02631578947368421,0.02631578947368421,0.07894736842105263,0.02631578947368421,0.07894736842105263,0.07894736842105263,0.05263157894736842],[0,0.05263157894736842,0.07894736842105263,0,0.4473684210526316,0.02631578947368421,0.13157894736842105,0.02631578947368421,0,0.07894736842105263,0,0.13157894736842105],[0,0,0.02631578947368421,0.15789473684210525,0,0.3157894736842105,0.21052631578947367,0.05263157894736842,0,0.07894736842105263,0,0.10526315789473684],[0,0.10526315789473684,0,0.05263157894736842,0.13157894736842105,0,0.13157894736842105,0.05263157894736842,0.15789473684210525,0.02631578947368421,0.02631578947368421,0.02631578947368421],[0,0.15789473684210525,0.10526315789473684,0,0,0.10526315789473684,0,0.05263157894736842,0.21052631578947367,0.13157894736842105,0,0],[0,0.07894736842105263,0.05263157894736842,0.02631578947368421,0.07894736842105263,0.07894736842105263,0.10526315789473684,0,0.07894736842105263,0.02631578947368421,0.02631578947368421,0.05263157894736842],[0,0,0.10526315789473684,0.02631578947368421,0.02631578947368421,0.18421052631578946,0.15789473684210525,0,0,0.21052631578947367,0.07894736842105263,0.07894736842105263],[0,0.07894736842105263,0.10526315789473684,0.02631578947368421,0,0,0.07894736842105263,0.15789473684210525,0.13157894736842105,0,0.21052631578947367,0.07894736842105263],[0,0.02631578947368421,0.10526315789473684,0.07894736842105263,0.05263157894736842,0.02631578947368421,0,0.02631578947368421,0.23684210526315788,0.07894736842105263,0,0.10526315789473684],[0,0.18421052631578946,0.13157894736842105,0.13157894736842105,0.10526315789473684,0.02631578947368421,0,0.13157894736842105,0.02631578947368421,0.05263157894736842,0.07894736842105263,0],]
+1
View File
@@ -0,0 +1 @@
[[0,0.03125,0.09375,0.5,0.21875,0.03125,0.09375,0.1875,0,0.125,0.15625,0],[0,0,0.15625,0.0625,0.21875,0.0625,0.15625,0.09375,0,0.0625,0.03125,0],[0,0.21875,0,0.0625,0.0625,0,0,0,0,0,0.03125,0.0625],[0,0.09375,0.0625,0,0.25,0.03125,0.1875,0.1875,0.03125,0.25,0,0.03125],[0,0.125,0.0625,0.125,0,0.03125,0,0,0.1875,0.09375,0.15625,0.0625],[0,0.03125,0,0,0,0,0.21875,0,0.25,0,0,0.1875],[0,0.03125,0.0625,0.0625,0.03125,0.34375,0,0.125,0.34375,0,0.40625,0.0625],[0,0.125,0,0.15625,0,0.0625,0.25,0,0.03125,0.09375,0,0],[0,0.125,0.03125,0.0625,0,0.1875,0.15625,0.03125,0,0.0625,0,0.25],[0,0.1875,0,0.125,0.125,0,0.0625,0.03125,0,0,0.03125,0.125],[0,0.0625,0.0625,0.03125,0.09375,0,0.46875,0.09375,0.03125,0.09375,0,0.1875],[0,0,0.0625,0.0625,0,0,0,0.03125,0.1875,0.125,0.46875,0],]
+1
View File
@@ -0,0 +1 @@
[[0,0.05555555555555555,0.08333333333333333,0,0.16666666666666666,0.027777777777777776,0.5,0,0.05555555555555555,0.027777777777777776,0],[0,0,0.05555555555555555,0.08333333333333333,0.08333333333333333,0,0.08333333333333333,0,0.027777777777777776,0.027777777777777776,0],[0,0.05555555555555555,0,0.1111111111111111,0.027777777777777776,0,0.027777777777777776,0,0.027777777777777776,0.027777777777777776,0],[0,0.05555555555555555,0.027777777777777776,0,0.1111111111111111,0,0.027777777777777776,0.027777777777777776,0.08333333333333333,0.027777777777777776,0],[0,0.08333333333333333,0,0.1111111111111111,0,0.3888888888888889,0,0.16666666666666666,0.05555555555555555,0.027777777777777776,0.05555555555555555],[0,0,0,0.027777777777777776,0.25,0,0.1111111111111111,0.1388888888888889,0,0,0.2222222222222222],[0,0.05555555555555555,0.08333333333333333,0.1388888888888889,0,0.027777777777777776,0,0.027777777777777776,0.08333333333333333,0.16666666666666666,0.3055555555555556],[0,0.027777777777777776,0.027777777777777776,0,0.027777777777777776,0.1388888888888889,0.05555555555555555,0,0.08333333333333333,0.05555555555555555,0.027777777777777776],[0,0,0,0,0.08333333333333333,0.05555555555555555,0.1111111111111111,0.05555555555555555,0,0.1111111111111111,0.1111111111111111],[0,0.027777777777777776,0.027777777777777776,0.027777777777777776,0.16666666666666666,0,0.05555555555555555,0.027777777777777776,0.1388888888888889,0,0],[0,0,0.027777777777777776,0,0.1388888888888889,0.16666666666666666,0.1111111111111111,0.08333333333333333,0.1111111111111111,0,0],]
+1
View File
@@ -0,0 +1 @@
[[0,0.1,0.3,0,0,0,0,0,0,0.1,0.4,0.5],[0,0,0.1,0.2,0.2,0,0,0.2,0,0.1,0.1,0],[0,0.1,0,0.4,0,0,0.1,0.3,0.1,0.1,0.1,0],[0,0.1,0,0,0.4,0.1,0.2,0,0,0.1,0,0.2],[0,0,0,0.2,0,0.5,0.1,0,0,0.1,0,0],[0,0,0,0,0.3,0,0.1,0,0.3,0.1,0.1,0.1],[0,0.3,0.1,0,0,0,0,0.1,0.4,0.1,0,0],[0,0.1,0.1,0,0.1,0,0.4,0,0,0,0.1,0.2],[0,0,0.3,0,0,0.3,0.1,0,0,0.3,0.1,0],[0,0.1,0.1,0,0,0,0.1,0.4,0,0,0.2,0.1],[0,0,0.2,0.2,0.1,0.1,0,0.1,0.3,0,0,0],[0,0.2,0.2,0.3,0,0,0,0.1,0,0.1,0.1,0],]
+1
View File
@@ -0,0 +1 @@
[[0,0,0.1,0.5,0.3,0,0.1,0.1,0,0.2,0,0],[0,0,0.2,0.1,0.1,0,0.3,0.2,0,0.2,0,0],[0,0.2,0,0.1,0.2,0,0,0,0,0,0,0.1],[0,0.1,0.1,0,0.4,0,0,0.2,0,0.3,0,0],[0,0.2,0,0,0,0.1,0,0,0.4,0.1,0.2,0.1],[0,0.1,0,0,0,0,0.1,0,0.4,0,0,0.2],[0,0.1,0,0,0.1,0.4,0,0.1,0.1,0,0.3,0.1],[0,0,0,0.3,0,0.1,0.2,0,0,0,0,0],[0,0.2,0.1,0.1,0,0.2,0.2,0,0,0,0,0.2],[0,0.3,0,0.1,0.1,0,0.1,0,0,0,0.1,0],[0,0.1,0.1,0,0,0,0.3,0.1,0,0.1,0,0.2],[0,0,0.1,0.1,0,0,0,0,0.1,0,0.5,0],]
+1
View File
@@ -0,0 +1 @@
[[0,0.16666666666666666,0.16666666666666666,0,0.16666666666666666,0,0.5,0,0,0,0],[0,0,0.16666666666666666,0.16666666666666666,0,0,0,0,0.16666666666666666,0.16666666666666666,0],[0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0.16666666666666666,0,0,0,0],[0,0.16666666666666666,0.16666666666666666,0,0,0,0,0.16666666666666666,0.16666666666666666,0.16666666666666666,0],[0,0,0,0.3333333333333333,0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0],[0,0,0,0.16666666666666666,0.5,0,0,0,0,0,0.3333333333333333],[0,0,0.16666666666666666,0.16666666666666666,0,0,0,0,0,0,0.5],[0,0,0,0,0,0.3333333333333333,0.16666666666666666,0,0.16666666666666666,0,0],[0,0,0,0,0,0.16666666666666666,0.16666666666666666,0,0,0.5,0.16666666666666666],[0,0.16666666666666666,0,0.16666666666666666,0.16666666666666666,0,0,0,0.3333333333333333,0,0],[0,0,0,0,0,0.3333333333333333,0.16666666666666666,0.3333333333333333,0.16666666666666666,0,0],]
+43
View File
@@ -0,0 +1,43 @@
/**
* Module dependencies.
*/
var express = require('express');
var fs = require('fs');
var Log = require('./NodeLog.js');
module.exports = function(parent){
Log.debug("Loading controllers :");
fs.readdirSync(__dirname + '/../posts').forEach(function(name){
// index.js in controller, with function as pages (views.py for django)
var obj = require('./../posts/' + name + '/index');
// urls.js, just like django urls.py
var urls = require('./../posts/' + name + '/urls');
name = obj.name || name;
var app = express();
// allow specifying the view engine
if (obj.engine) app.set('view engine', obj.engine);
app.set('views', __dirname + '/../posts/' + name + '/views');
// generate routes based
// on the exported methods
Log.debug(' ' + name + ':');
for (var key in urls) {
app.post(key, obj[urls[key]]);
Log.debug(' ' + key + ' -> ' + name + '.' + urls[key]);
}
Log.debug();
// mount the app
parent.use(app);
});
};
+1
View File
@@ -0,0 +1 @@
[[0,0,0],[0,0,3]]
+9
View File
@@ -0,0 +1,9 @@
var hash = require('sha256');
var secretKey = require('../private.js').microSecretKey;
var campaignId = require('../private.js').microCampaignId;
module.exports = function(workerId) {
return 'mw-' + hash(campaignId + workerId + secretKey);
};