Pull to refresh
18
0
Александр @oleks

Front-end

Send message

Книга «UX-стратегия. Чего хотят пользователи и как им это дать»

Reading time5 min
Views10K
image UX-стратегия, или стратегия опыта взаимодействия (UX, User Experience), лежит на стыке UX-дизайна и бизнес-стратегии. Интернет продолжает предлагать потребителям бесконечный ассортимент цифровых решений. Каждый щелчок, жест или наведение мыши становятся решением, которое принимается пользователем. Пользователь постоянно сталкивается с выбором: покупать или не покупать, одобрить или высмеять, рассказать другим или забыть, завершить или отменить. Вы должны знать, какие возможности следует предлагать и как они используются людьми. Вы должны разбираться во всех последних и ожидаемых устройствах, платформах и приложениях, чтобы оценить возможность их применения в ваших решениях. Вы и ваша команда должны сделать все возможное, чтобы Алиса упала в кроличью нору и оказалась в Стране чудес.
Читать дальше →

React Native: очередная «серебряная пуля» для кросплатформенной разработки?

Reading time7 min
Views22K
Есть революции, которые происходят незаметно. Когда разработчики Facebook выпустили фреймворк React Native, никто не захватывал мосты и телеграфы. Новому подходу к кроссплатформенной разработке мобильных приложений удалось взять в плен самое ценное – мозги нативных программистов. Рассказать о центральной идее React Native, его преимуществах, перспективах и недостатках мы попросили Владимира Иванова.



Владимир более шести лет занимается разработкой под Android, обладает опытом создания приложений под iOS и Windows Phone. Последний год он увлекся React Native и начал двигать культуру кроссплатформенного кода в EPAM Systems.
Читать дальше →

Круглый график на Canvas

Reading time5 min
Views27K

Приветствую!


Совсем недавно для одного проекта мне понадобилось отображать проценты в круглых графиках(?). И как обычно я принялся искать готовое решение в интернете, однако ничего путного найти не удалось (возможно из-за того что я точно не знаю как этот элемент правильно называется). Более-менее то что мне нужно я нашел в библиотеке Knob, но его функционал оказался излишен, т.к изменять значения в графике нет необходимости, помимо этого в библиотеке затесался баг. В итоге пришлось сочинять очередной велосипед.

image
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №256 (27 марта — 2 апреля 2017)

Reading time4 min
Views19K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.

Читать дальше →

Как не наступать на грабли в Go

Reading time10 min
Views103K

Этот пост является версией моей же англоязычной статьи "How to avoid gotchas in Go", но слово gotcha не переводится на русский, поэтому я буду использовать это слово как без перевода, так и немного непрямой вариант — "наступать на грабли".


Gotcha — корректная конструкция системы, программы или языка программирования, которая работает, как описано, но, при этом, контринтуитивна и является причиной ошибок, поскольку её легко использовать неверно.

В языке Go есть несколько таких gotchas и есть немало хороших статей, которые их подробно описывают и разъясняют. Я считаю, что эти статьи очень важны, особенно для новичков в Go, поскольку регулярно вижу людей, попадающихся на те же грабли.


Но один вопрос меня мучал долгое время — почему я сам никогда не делал этих ошибок? Серьезно, самые популярные из них, вроде путаницы с nil-интерфейсом или непонятного результата при append()-е слайса — в моей практике никогда не были проблемой. Каким-то образом мне повезло обойти эти подводные камни с первых дней своей работы с Go. Что же мне помогло?


И ответ оказался довольно прост. Я просто очень вовремя прочёл несколько хороших статей о внутреннем устройстве структур данных в Go и прочих деталях реализации. И этого, вполне поверхностного на самом деле, знания было достаточно, чтобы выработать некоторую интуицию и избегать этих подводных камней.

Читать дальше →

Matreshka.js 2 — tl;dr

Reading time4 min
Views6.9K

image



Краткий обзор простого фреймворка для создания одностраничных приложений Matreshka.js. В посте используется ECMAScript 2017, который можно переписать на ECMAScript 5.


Основные функции


Функция bindNode связывает свойство и элемент.


const object = { name: 'Brendan' };
const node = document.querySelector('.name');
Matreshka.bindNode(object, 'name', node);
object.name = 'Doug';


Если свойство меняется, меняется и элемент, если элемент меняется (например, пользователь вводит текст), меняется и свойство. Из коробки Matreshka.js умеет обрабатывать любые элементы форм. Можно объявить байндинг для произвольных элементов см. документацию.


Функция calc связывает одно свойство с другими.


Matreshka.calc(object, 'fullName', ['firstName', 'lastName'], (firstName, lastName) => {
    return `${firstName} ${lastName}`
});
object.firstName = 'Brendan';
object.lastName = 'Eich';
// ...
console.log(object.fullName); // "Brendan Eich"

Когда меняется свойство-источник (firstName или lastName), меняется и свойство-цель (fullName).


Вместе с функцией bindNode можно объявлять длинные цепочки зависимостей: свойство a зависит от состояния элемента e1, свойство b зависит от свойства a, свойство c зависит от элементов e2 и e3 и от свойства b, изменение которого, как следствие, меняет e1, e2 и e3...


Дайджест продуктового дизайна, март 2017

Reading time14 min
Views7.2K
Уже семь лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-февраль 2017.

Дайджест продуктового дизайна, март 2017
Читать дальше →

Bash-скрипты: начало

Reading time11 min
Views2M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →

Фундаментальные законы информационной безопасности

Reading time7 min
Views50K

Все мы знаем о фундаментальных законах физики, открытые Ньютоном и Галилеем. Наверное хотя бы немного со школьных парт слышали об аксиоматике Евклида. Кто решил хотя бы приблизиться к положению homo universalis, (хотя в наш XXI век это весьма непросто) наверное что-то слышал о законах Данилевского, Тойнби и/или Сэмюэла Хантингтона...


А что с Информационной Безопасностью? Есть ли у нас, ИБ-шников свои фундаментальные законы? Да — есть! И в этой статье о них пойдет речь.


Дальше читать

Создание вашей первой игры на Phaser. Часть 3 — Создание игрового мира

Reading time2 min
Views14K

Phaser


Оглавление


0. Подготовка к работе
1. Введение
2. Загрузка ресурсов
3. Создание игрового мира [Вы тут]
4. (wip) Группы
5. (wip) Мир физики
6. (wip) Управление
7. (wip) Добавление целей
8. (wip) Последние штрихи


Пришло время создать маленький мир для нашего платформера, чтобы главному герою было где жить и его существование имело хоть какой-то смысл.


Не забывайте читать комментарии в коде, они важны!


Весь код, как и в прошлый раз, лежит в Github репозитории с тегом part-3.

Читать дальше →

Бесплатные инструменты сжатия изображений для ускорения работы сайта

Reading time4 min
Views79K
Оптимизируйте изображения для сайтов на WordPress, Joomla или любых других, чтобы увеличить скорость загрузки и занять более высокое место в рейтингах поисковых систем.


Читать дальше →

7 методик оптимизации рабочего процесса, о которых вы, возможно, не слышали

Reading time5 min
Views45K
Времени всегда в обрез, а дел всегда невпроворот – это аксиома двадцать первого века. Неудивительно, что человечество находится в непрерывном поиске магического ритуала (или же методики организации рабочего процесса, как их принято называть), который спасет нас всех от цейтнота, дедлайнов, прокрастинации и прочих темпоральных ловушек. Самые действенные из них вам, безусловно, уже известны, однако мы, усилиями своей команды, составили небольшой хит-парад чуть менее распространенных техник, которые нам доводилось успешно применять в работе.


Читать дальше →

Node.js Streams и реактивное программирование

Reading time4 min
Views13K

В этой статье мы попробуем решить реальную проблему при помощи Node.js Stream и чуточку Reactive Programming. В последнем не уверен – RP, в какой-то мере, "жупел" (как перевести buzzword?) о котором все говорят, но никто не "делает".


Статья рассматривает практический пример и ориентирована на знакомого с платформой читателя, по-этому намеренно не объясняет базовые понятия – если что-то непонятно по Stream API, то стоит обратится в документацию платформы или в какой-нибудь ее пересказ (например, этот).


Начнем с описания проблемы: нам нужно построить “паука” который заберет все данные с “чужого” REST API, как-то их обработает и запишет в “нашу” базу данных. Для удобства моделирования мы опустим детали о конкретных API и базы данных (в реальности, это было API одного известного стартапа связанного с гостиницами и Postgres база данных).

Читать дальше →

Runtyper — инструмент для проверки типов при выполнении JavaScript кода

Reading time2 min
Views7.2K

Runtyper — это плагин для Babel, выполняющий проверку типов прямо во время выполнения JavaScript кода. Он обнаруживает некорректные операции, например строгое сравнение строки и числа, и бросает предупреждение в консоль. Это позволяет вам находить ошибки типизации на ранней стадии, при этом не требует дополнительных аннотаций кода.


Runtyper warning example

Читать дальше →

Кроссбраузерная отправка формы с файлом или как переписать весь отправщик несколько раз после тестирования в IE

Reading time7 min
Views16K
Задача: отправка и обработка файлов с помощью FormData и FileReader в форме со всеми возможными полями и пересылкой дополнительных параметров для каждого поля c объединением всех данных формы (кроме файлов и системных полей) в общий массив.

Поддержка: все современные браузеры, IE 10+.

Плагины: jquery-2.1.4

image
Читать дальше →

CSS-анимация подождет

Reading time5 min
Views18K

Перевод статьи Making Animations Wait от Donovan Hutchinson.


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


Колокейшн: как, зачем и почему

Reading time16 min
Views26K
Колокейшн (colocation) определяется в Википедии как услуга, состоящая в том, что провайдер размещает оборудование клиента на своей территории (обычно в дата-центре), подключает его к электричеству, обеспечивает обслуживание и доступ к каналам связи с высокой пропускной способностью. Иногда указанное оборудование не принадлежит клиенту, а арендуется им у того же провайдера, в этом случае услуга называется «аренда выделенного сервера».


Читать дальше →

Инструкция по публикации iOS-приложения в App Store

Reading time6 min
Views129K
Однажды менеджеры Лайв Тайпинг подумали: «Как хорошо было бы иметь инструкцию-чеклист, чтобы ничего не забыть перед публикацией приложения в стор. С ней можно перестать носить всё в голове и не объяснять вновь пришедшим менеджерам, что к чему, а просто скинуть гуглдок». Подумали и написали — для себя. Но потом поняли, что нехорошо скрывать полезную информацию от общественности. Поэтому мы надеемся, что инструкция поможет менеджерам всех остальных студий так же, как помогает нам.

Тема этой заметки — публикация приложения в App Store. Чуть позже мы опишем порядок действий для публикации в Google Play.

Что же нужно сделать PM`y в ходе публикации:

  1. создать аккаунт в App Store для заказчика, если у заказчика его нет, или предложить
  2. опубликовать приложение с нашего аккаунта;
  3. подготовить маркетинговые материалы (иконка, скриншоты, текст, видео для предпросмотра приложения);
  4. приложить к сборке сертификат цифровой подписи;
  5. настроить оплату за пользование приложения;
  6. Отправить сборку в App Store.

Идём под кат и разбираем по порядку.


Читать дальше →

Создание вашей первой игры на Phaser. Часть 2 — Загрузка ресурсов

Reading time5 min
Views9.8K

Phaser


Оглавление


0. Подготовка к работе
1. Введение
2. Загрузка ресурсов [Вы тут]
3. Создание игрового мира
4. (wip) Группы
5. (wip) Мир физики
6. (wip) Управление
7. (wip) Добавление целей
8. (wip) Последние штрихи


Продолжим серию уроков, посвященных использованию Phaser в связке с TypeScript. В этом уроке, мы рассмотрим загрузку ресурсов в Phaser, а также немного "причешем" код из предыдущей части.


Как и в прошлых статьях, не пропускайте комментарии в коде.


Полный код, написанный в этой статье, вы найдете в Github репозитории с тегом part-2.


Приступим!

Читать дальше →

Мобильная платформа. Архитектура гибридных приложений на ReactNative

Reading time12 min
Views13K
Наверное, вы уже не раз слышали о мобильной разработке на ReactNative в Единой Фронтальной Системе (ЕФС) Сбербанка. Мы уже писали для чего мы используем саму технологию ReactNative в своих разработках, а также рассказывали как не бояться это делать.



Сегодня мы взглянем с высоты птичьего полета на построение архитектуры мобильных приложений с использованием ReactNative, Objective-C, Typhoon, VIP, SOA, TypeScript, React и Redux.
Читать дальше →

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Works in
Date of birth
Registered
Activity