array to map with reduce()

let months = [ {month: 1, data1: "test1", data2: "test2"}, {month: 2, data1: "test1", data2: "test2"}, {month: 3, data1: "test1", data2: "test2"} ];   let monthsAsMap = months.reduce((map, obj) => { map[obj.month] = obj; return map; }, {});   console.log(monthsAsMap); console.log(monthsAsMap[’2’]);let months = [ {month: 1, data1: "test1", data2: "test2"}, {month: 2, data1: "test1", data2: Read more about array to map with reduce()[…]

AES-128 in js/Node.js

const iv = Buffer.from(’aeghei1Di8tieNg0’);   exports.encrypt = function(text, password){ try { var cipher = crypto.createCipheriv(’aes-128-cbc’,password,iv); var crypted = cipher.update(text,’utf8′,’hex’); crypted += cipher.final(’hex’); return crypted; } catch (err) { console.error(’encrypt error’,err); return null; } };   exports.decrypt = function(text, password){ try { var decipher = crypto.createDecipheriv(’aes-128-cbc’,password,iv); var dec = decipher.update(text,’hex’,’utf8’); dec += decipher.final(’utf8’); return dec; } Read more about AES-128 in js/Node.js[…]

async.js – download multiple files from multiple urls to first success

var async = require(’async’);   var files = [’file1′,’file2′,’file3’]; var urls = [’url1′,’url2′,’url3’];   var down = function(url, file, callback) { setTimeout(function(){ var r = Math.random() >= 0.5; console.log(’— end ‘+file+’, ‘+url+’, ‘+r); callback(r); }, 1000); };   async.concat(files, function(file, callback){ async.someSeries(urls, function(url, callback1){ down(url, file, function(isOk){ callback1(null, isOk); }); }, function(err, r){ callback(err, r); Read more about async.js – download multiple files from multiple urls to first success[…]

async.js: parallel get

/** * jednoczesne wywolanie GET’ow na adresy * zwracana jest tablica odpowiedzi w callbacku * jako drugi parametr lub error jako pierwszy */ var parallelGets = function(urls, callback) { var calls = urls.map(function(url){ return function(callback){ $.get(url, function(data){ callback(null, data); }).fail(function(jqXHR){ callback(jqXHR); }); }; }); async.parallel(calls, function(err, res){ if(err) { callback(err); } else { callback(null, res); Read more about async.js: parallel get[…]

equality (==) vs strict equality (===) operators

equality console.log(0 == false); // true console.log(0 == ”); // trueconsole.log(0 == false); // true console.log(0 == ”); // true strict equality also compare types, different types never be equals console.log(0 === false); // false console.log(0 === ”); // falseconsole.log(0 === false); // false console.log(0 === ”); // false

Chrome Extensions: Pierwsze kroki

Oto moje pierwsze rozszerzenie do Google Chrome. API stworzone przez Google jest bardzo proste, daje dostęp do interfejsu przeglądarki, jak i przeglądanej strony. Konfiguracja naszego rozszerzenia “siedzi” w manifest.json, a reszta właściwie sprowadza się do pisania kodu w HTML i JavaScript. Prościutkie rozszerzenie poniżej ściąga aktualny wykres indeksu WIG20 z zewnętrznej witryny w postaci obrazka Read more about Chrome Extensions: Pierwsze kroki[…]