Заметки


🔥 Функция uniqid в JavaScript

В PHP есть шикарная функция uniqid. Она позволяет сгенерировать случайный идентификатор состоящий из цифр и букв, основанный на текущем времени. Выглядит он примерно вот так 526439af76c56.

Я очень часто пользуюсь ей (функцией), когда делаю что-то на ПХП. Конечно же мне очень хватало этой функции в JavaScript, поэтому я поискал в интернете, нашел один неплохой вариант, немного его подправил и вуаля:

(function () {
    this.uniqid = function (pr, en) {
        var pr = pr || '', en = en || false, result, us;

        this.seed = function (s, w) {
            s = parseInt(s, 10).toString(16);
            return w < s.length ? s.slice(s.length - w) : 
                      (w > s.length) ? new Array(1 + (w - s.length)).join('0') + s : s;
        };

        result = pr + this.seed(parseInt(new Date().getTime() / 1000, 10), 8) 
                    + this.seed(Math.floor(Math.random() * 0x75bcd15) + 1, 5);

        if (en) result += (Math.random() * 10).toFixed(8).toString();

        return result;
    };
})();

Использовать можно:

  • так uniquid() - результат 52643b81917b3
  • или вот так uniqid('prefix_') - результат prefix_52643bb682821
  • и даже вот так uniqid('prefix_', true) - результат prefix_52643bdf3b1fb7.38568327

Пользуйтесь на здоровье.

Тут ссылка на Gist.

Читать 1 мин | 24.10.2013 14:15

🔥 Apple TV в белорусских реалиях

Все сейчас покупают всякие умные телевизоры, чтобы и в интернет ходили и ВКонтакте позволяли посидеть и в Скайпе пообщаться. Зачастую такие Smart TV являют собой убогих и медленных динозавров, которые как бы все это умеют, но умеют медленно. У меня телевизор большой, современный, но без всяких умных штук внутри. Фильмы смотрю или подключив лэптоп, или с внешнего винчестера. Не очень удобно на самом деле.

Одним из возможных вариантов усовершенствовать мой телевизор стала покупка Apple TV. Перечитал массу обзоров и статей, но так и не понял, есть ли смысл покупать сию черную кробочку. Поэтому днями раньше взял один на работе на "попробовать".

Продолжение

Читать 8 мин | 20.10.2013 18:27

🔥 Pure JavaScript

Некоторые уже возможно видели сайт Pure JavaScript. Пока его назначение понять трудно. Но это мой маленький проект, который делается совсем неспеша. Так что... coming soon...

Pure Javascript

Читать 8 сек | 13.10.2013 22:56

🔥 Выступаю и рассказываю про Yeoman

Мое выступление на первом митапе WebNotBombs.

Читать 2 сек | 13.10.2013 01:08

🔥 Определяем браузер в JavaScript

В эпоху развития и массового внедрения мобильных технологий в жизнь простых граждан, все стремятся сделать свои сайты одинаково красивыми и доступными как на компьютерах, так и на телефонах и планшетах. Разработка таких сайтов требует определения типа браузера, чтобы максимально использовать преимущества каждого устройства. Разнообразие браузеров и движков создало большое количество уникальных для каждого из них функций. Их использование в JavaScript делает сайт лучше и привлекательнее для посетителя.

Чтобы правильно использовать эти функции необходимо знать, какой браузер в данный момент использует пользователь. Единственный правильный способ определить браузер в JavaScript - Useragent. Вот небольшой скрипт, который возвращает объект с различными свойствами, в том числе - мобильный или нет браузер, а также версию Android (может оказаться полезным):

var uAgent = navigator.userAgent || '';

var browser = {
	version : (uAgent.match( /.+(?:me|ox|on|rv|it|era|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
	opera : /opera/i.test(uAgent),
	msie : (/msie/i.test(uAgent) && !/opera/i.test(uAgent)),
	msie6 : (/msie 6/i.test(uAgent) && !/opera/i.test(uAgent)),
	msie7 : (/msie 7/i.test(uAgent) && !/opera/i.test(uAgent)),
	msie8 : (/msie 8/i.test(uAgent) && !/opera/i.test(uAgent)),
	msie9 : (/msie 9/i.test(uAgent) && !/opera/i.test(uAgent)),
	msie10 : (/msie 10/i.test(uAgent) && !/opera/i.test(uAgent)),
	mozilla : /firefox/i.test(uAgent),
	chrome : /chrome/i.test(uAgent),
	safari : (!(/chrome/i.test(uAgent)) && /webkit|safari|khtml/i.test(uAgent)),
	iphone : /iphone/i.test(uAgent),
	ipod : /ipod/i.test(uAgent),
	iphone4 : /iphone.*OS 4/i.test(uAgent),
	ipod4 : /ipod.*OS 4/i.test(uAgent),
	ipad : /ipad/i.test(uAgent),
	ios : /ipad|ipod|iphone/i.test(uAgent),
	android : /android/i.test(uAgent),
	bada : /bada/i.test(uAgent),
	mobile : /iphone|ipod|ipad|opera mini|opera mobi|iemobile/i.test(uAgent),
	msie_mobile : /iemobile/i.test(uAgent),
	safari_mobile : /iphone|ipod|ipad/i.test(uAgent),
	opera_mobile : /opera mini|opera mobi/i.test(uAgent),
	opera_mini : /opera mini/i.test(uAgent),
	mac : /mac/i.test(uAgent),
	webkit : /webkit/i.test(uAgent),
	android_version: parseFloat(uAgent.slice(uAgent.indexOf("Android")+8)) || 0
};
Читать 2 мин | 29.09.2013 21:25