Тег: c

Android-телефон и экшн-камера

Решился наконец-то вновь попробовать попользоваться телефоном на Android. Для этой цели обзавелся Xiaomi Mi4i. Не стал брать mi4, так как он не поддерживает LTE/4G.

Еще, имея большую скидку, взял на пробы китайскую экшн-камеру Eken A9. По результатом использования доложу позже.

10 января 2016
3 тыс.
13 сек

JavaScript Battery API

Все большее и большее количество людей предпочитай сидеть в интернете, используя мобильные устройства и планшеты. С недавних пор в некоторых браузерах появилась поддержка API батареи устройства для JavaScript. А в Хроме реализована поддержка в виде промисов. Давайте посмотрим как это работает...

05 января 2016
3.8 тыс.
1 мин

Fetch API

Современный сайт трудно представить без запросов к серверу. Все большее и большее количество страниц не требуют перезагрузки страницы при переходе по ссылкам, а всего лишь получают новые данные и перерисовывают необходимые блоки. Использование XMLHttpRequest уже не «торт», так как большинство современных браузеров поддерживают fetch API.

29 декабря 2015
7.1 тыс.
2 мин

Переписываем Ajax-запросы

Недавно у меня возникала необходимость показывать прелоадер каждый раз, когда в проекте отправляется запрос на удаленный сервер. Так как мы используем Babel для конвертации кода из ES6 в ES5, то fetch превращается в XMLHttpRequest. Это значит, что можно легко переписать два метода и задача будет решена.

var _oldSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function () {
  var _oldReadyStateChange = this.onreadystatechange;

  // Ваш код вначале Ajax-запроса

  _oldSend.apply(this, arguments);
  this.onreadystatechange = function () {
    if (this.readyState === 4) {

      // Ваш код, когда Ajax-запрос завершен

    }
    if (typeof _oldReadyStateChange === 'function') {
      _oldReadyStateChange.apply(this, arguments);
    }
  };
};

Для того, чтобы показать индикатор закгрузки, я переписал метод send, сохранив предварительно старую функцию в переменную _oldSend. Ну а onreadystatechange сообщает нам когда запрос завершен.

Этот способ отлично подойдет, если вы используете jQuery.

27 декабря 2015
3 тыс.
1 мин

Все доклады Girls Not Bombs #5

Видеозапись всех докладов с Girls Not Bombs #5. Мероприятие состоялось в субботу в минском коворкинге Imaguru. Список докладов:

  1. Настя Рыбик: «Yeoman: пишем свой собственный генератор»
  2. Machiko Yasuda: «Learn with friends: how to organize meetups around projects & code»
  3. Jacob Lowe: «SVG: Such vector goodness»
14 декабря 2015
3.3 тыс.
15 сек

npm без sudo на Mac OS

Со временем хочется использовать npm без надоедливой команды sudo. Но большинство руководств в интернете предлагает удалить node.js и все поставить заново в какие-то странные и непонятные директории.

Я здесь, чтобы помочь...

Все куда проще. Вот эта консольная команда поможет вам:

sudo chown -R $(whoami) ~/.npm && sudo chown -R $(whoami) /usr/local/lib/node_modules
11 декабря 2015
3.1 тыс.
16 сек

Воркшоп по MeteorJS

Трехчасовое видео воркшопа по MeteorJS от Webnotbombs.

02 декабря 2015
2.9 тыс.
3 сек

Читабельность: оптимальная длина строки

Текст – всему голова. Конечно, классно рассматривать картинки и смотреть видео в интернете, но, все же, большинство материалов в сети представляют из себя текст. Обращали ли вы внимание, что читать статьи на одном сайте удобнее, чем на другом? Это происходит от того, что один дизайнер (если он был) подумал об удобстве восприятия информации, а второй вовсе не задумывался об этом.

07 августа 2015
14.6 тыс.
3 мин

Заменяем аватар на цветной кружок с буквой с помощью JavaScript

Новый тренд в дизайне - милые цветные кружочки (квадратики) различного цвета с первой или двумя первыми буквами имени. Так сейчас делают все: браузер Сафари, почтовые клиенты, социальные сети.

Здесь я покажу как это сделать с помощью JavaScript. Главный вопрос – подбор цвета?

Цвет мы будет генерировать из строки с именем. На самом деле подойдет абсолютно любая строка, но так как и букву мы берем из имени, то и цвет будет генерировать из него же.

Вот так будет выглядеть наш HTML:

<div class="user-info">
    <div class="user-info-avatar" id="avatar"></div>
    <div class="user-info-name" id="name"></div>
</div>

Добавим немного CSS-стилей:

.user-info-avatar {
    display: inline-block;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 15px;
    text-align: center;
    margin-right: 10px;
    color: white;
}
.user-info-name {
    display: inline-block;
}

А теперь JavaScript:

var stringToColor = function stringToColor(str) {
    var hash = 0;
    var color = '#';
    var i;
    var value;
    var strLength;

    if(!str) {
        return color + '333333';
    }

    strLength = str.length;

    for (i = 0; i < strLength; i++) {
        hash = str.charCodeAt(i) + ((hash << 5) - hash);
    }

    for (i = 0; i < 3; i++) {
        value = (hash >> (i * 8)) & 0xFF;
        color += ('00' + value.toString(16)).substr(-2);
    }

    return color;
};

var name = 'Михаил';
var letter = name.substr(0, 1);
var backgroundColor = stringToColor(name);
var elementAvatar = document.getElementById('avatar');
var elementName = document.getElementById('name');

elementName.innerHTML = name;
elementAvatar.innerHTML = letter;
elementAvatar.style.backgroundColor = backgroundColor;

За генерирование цвета отвечает функция stringToColor. Она принимает строку с именем (любую строку), переводит ее в биты и уже из них в HEX-цвет. Если мы не передадим в функцию ничего, то получим в ответ цвет по умолчанию – в данном примере, #333333.

Вот таким нехитрым образом можно делать такое модное нынче оформление при отсутствии аватара.

02 июля 2015
12.7 тыс.
2 мин

Офис Booking.com в Амстердаме

Booking.com — система интернет-бронирования отелей, основана в 1996 году. Штаб-квартира компании находится в Амстердаме.

01 июля 2015
7.9 тыс.
1 мин