Menu

Thursday, June 30, 2016

Generating hash using native Crypto API (Example)

You can find more information about the crypto api here:  https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto

function arrayBufferToStringAsync( /*ArrayBuffer*/ buffer) {
    var reader = new FileReader();
    return readAsync(reader, 'Text', new Blob([buffer])).then(function() {
        return new Promise(function(resolve, reject) {
            resolve(reader.result);
        });
    });
};

function arrayBufferToHexAsync( /*ArrayBuffer*/ buffer) {
    return new Promise(function(success, error) {
        arrayBufferToStringAsync(buffer).then(function(string) {
            var hex = '';
            for (var i = 0; i < string.length; i++) {
                var char = ('000' + string.charCodeAt(i).toString(16)).slice(-4);
                hex += char;
            }

            success(hex);
        }).catch(error);
    });
};

function readAsync( /* FileReader */ reader, as, data, encoding) {
    return new Promise(function(resolve, reject) {
        reader.onloadend = resolve;
        reader.onerror = reject;
        reader['readAs' + as](data, encoding);
    });
};

var blob = new Blob(['Hello World']);
var reader = new FileReader();

readAsync(reader, 'ArrayBuffer', blob).then(function() {
    var result = reader.result;
    return crypto.subtle.digest("SHA-1", result);
}).then(function(hash) {
    return arrayBufferToHexAsync(hash);
}).then(function(hexHash) {
    console.log(hexHash);
});

Sunday, February 16, 2014

Is NodeJS the best solution for your project

Ever since all the commotion around NodeJS started, I was wondering, if javascript is really good for backend development. So I started looking up various subjects regarding NodeJS, like how to configure a production server, benchmarks and others. After doing some reading I was able to form an opinion.

Thursday, February 13, 2014

CSS class generator using SASS

Sass give us a lot of flexibility when we are building big web apps. One of my favorite function is to be able to create css classes by using a loop:


@mixin zoom($scale) {
    $scale: $scale / 100;
    -webkit-transform-origin: 50% 0;
    -moz-transform-origin: 50% 0;
    -ms-transform-origin: 50% 0;
    -o-transform-origin: 50% 0;
    transform-origin: 50% 0;
    
    -webkit-transform: scale($scale);
    -moz-transform: scale($scale);
    -ms-transform: scale($scale);
    -o-transform: scale($scale);
    transform: scale($scale);
}

$zoomFactor: 100;
@while $zoomFactor >= 20 {
    .zoom-#{$zoomFactor} {
        @include zoom($zoomFactor);
    }
    $zoomFactor: $zoomFactor - 10;
}

Create a jquery extension for handling dom insert events

Very often when I'm building a web application, I need to dynamically create some objects and append them to the dom. Well thats ok, but if there are some additional calculations that you need to do after inserting your objects, then things are getting a bit messy. For example you need to position your objects according to a relative parent object's dimensions or initialize a plugin that requires your object to appended to the dom.  Well there is always a way of getting around issues like that, but I wanted to keep thing simple and to do that I needed some king of "onDomInsert" event.


Friday, March 29, 2013

Fixing filename encoding using a PHP console script

Recently i had received an archive with files required for a project. It was awful. The filenames were in ciryllic and on top of that the encoding was broken. So what to do when something like this happens? I wrote a little php script that walks all directories and files and renames the files with the appropriate encoding:

Friday, March 15, 2013

Startup Weekend Varna: Как ще протече събитието


Startup Weekend Varna започва с регистрирането на участниците в Петък 18.00 и на техните идеи. След това на всеки участник се дава възможност да презентира идеята си пред другите в рамките на 60 секунди (Elevator pitch / Power pitch). Участниците гласуват за най-добрите идеи и се присъединяват към определна идея, която им е допаднала. Сформираните екипи често включват маркетолог, програмист, дизайнер и бизнес анализатор или предприемач.
Дните Събота и Неделя се използват за разработването на продукт или крайното оформяне на бизнес идеята в бизнес план с ясни параметри за изпълнение. Като през тези два дни на разположение на екипите са Бизнес ментори и Технически помощници. Те помагат да се изясни пазара на различните идеи, как да се достигне до клиента, точни бизнес модели и монетаризационен модел.
В Неделя 18.00 всички екипи представят готовите си продукти или услугите пред всички частници и журито, което награждава най-добрите. Често този етап от събитието присъстват бизнес ангели и инвеститори желаещи да подпомогнат стартиращите идейни бизнеси.
Това събитие ще отбележи Варна на световната карта на предприемачестовто за млади хора и ще сформира кръг от млади, позитивни и предприемчиви хора които целят да използват знанието от университета, високите технологии и инновации за да стартират бизнес.

UI Creation using QtQuick


Justin Noel, Senior Consulting Engineer at ICS gives a detailed overview of Qt Quick, and how to create killer user interfaces using a combination of Qt Quick, C++, and PhotoShop.



Part 1:

Part 2: