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

Front-end

Send message

Firebase: прощание с иллюзиями

Reading time6 min
Views82K
Маркетинг стал частью мира разработки. По количеству звездочек на GitHub определяют, какое из похожих друг на друга решений круче, а по количеству твитов можно спрогнозировать, какая технология будет развиваться в ближайшие полгода. В таких условиях мы рискуем стать жертвами хайпа, что мы в Лайв Тайпинге и сделали, принимая Firebase за Священный Грааль, способный решить все проблемы разом: сбора статистики, интеграции чатов, выбора базы данных, быстрой разработки MVP. Когда же я столкнулся с этим сервисом в бою, то понял, что моё представление о Firebase расходилось с реальностью настолько сильно, что понимание области применения технологии стало для меня настоящим откровением. Я хочу поделиться этим пониманием и тем, как всё-таки использовать Firebase правильно.


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

Самые популярные слова в двух терабайтах кода

Reading time6 min
Views26K
Привет, друзья! Я тут проанализировал 2ТБ кода и получил самые популярные слова в разных языках программирования. Результаты можно посмотреть в виде облаков тегов и простым списком:

image
Сайт находится здесь, а его исходники можно почитать на гитхабе.

Под катом описано в деталях о том как собирались данные, как строился сайт и как укладывались облака. И немножко наблюдений.

Приятного чтения!
Читать дальше →

Как работают ИТ-специалисты. Андрей Янковский, JS-тимлид CSSSR

Reading time5 min
Views12K
imageМы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом.

Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.

Сегодня наш гость — Андрей Янковский из CSSSR. Среди наших собеседников он выделяется тем, что работает не так много, как большинство, хотя занимает серьезную должность. О том, как Андрей объясняет сей феномен, читайте под катом.
Читать дальше →

История цветовой модели RGB

Reading time12 min
Views29K
Я собираюсь совершить экскурс в историю науки о человеческом восприятии, которая привела к созданию современных видеостандартов. Также я попытаюсь объяснить часто используемую терминологию. Кроме того, я вкратце расскажу, почему типичный процесс создания игры со временем будет всё больше и больше напоминать процесс, используемый в киноиндустрии.

Пионеры исследований цветовосприятия


Сегодня мы знаем, что сетчатка человеческого глаза содержит три разных типа фоторецепторных клеток, называемых колбочками. Каждый из трёх типов колбочек содержит белок из семейства белков опсинов, который поглощает свет в различных частях спектра:

image

Поглощение света опсинами

Колбочки соответствуют красной, зелёной и синей частям спектра и часто называются длинными (L), средними (M) и короткими (S) согласно длинам волн, к которым они наиболее чувствительны.
Читать дальше →

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views214K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →

Создаем шаблонизируемые переиспользуемые компоненты в Angular 2

Reading time9 min
Views32K
image Много раз слышал утверждение, что Angular 2 должен быть особенно хорош в корпоративных приложениях, поскольку он, мол, предлагает все нужные (и не очень) прибамбасы сразу из коробки (Dependency Injection, Routing и т. д.). Что ж, возможно это утверждение имеет под собой основу, поскольку вместо десятков разных библиотек разработчикам надо освоить один только Angular 2, но давайте посмотрим, насколько хорошо базовая (основная) функциональность этого фреймворка годится для корпоративных приложений.

По моему опыту, типовое корпоративное приложение — это сотни (иногда тысячи) практически идентичных страниц, которые лишь слегка отличаются друг от друга. Думаю, не мне одному приходила в голову мысль, что неплохо бы выделить повторяющийся функционал в отдельный компонент, а специфичное поведение определять через параметры и внедряемые шаблоны. Давайте посмотрим, что Angular 2 может нам предложить.
Читать дальше →

Понимание критического пути рендеринга

Reading time5 min
Views79K

Браузеру предстоит пройти много шагов, прежде чем HTML-ответ от сервера будет преобразован в пиксели на экране. Последовательность этих шагов, необходимая для первого отображения страницы, называется «Критический путь рендеринга» (ориг. Critical Rendering Path).


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

Попытка научить студентов программировать и о том, где этот процесс можно и нужно автоматизировать

Reading time5 min
Views15K


Именно эта цитата Стива Джобса встречает посетителей сайта cs.betlabs.ru, можно считать это попыткой мотивировать студентов работать усерднее над своими домашними и лабораторными заданиями. К сожалению, метрики для количественной оценки влияния мотивации от преподавателя на успеваемость студента у меня пока нет. Более того, я считаю, что конкурентная среда в учебной группе является куда более важным фактором в общем показателе успеваемости. Сейчас это всего лишь гипотеза, а ее проверка не лежит в области моих научных интересов.



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

Как стать продакт-менеджером? Часть 5: Get things done

Reading time5 min
Views8K


Сегодня мы выкладываем последнюю статью с тезисами из курса по продакт-менеджменту Product.Degree. В ней студент курса kirillkobelev рассказывает о бизнес-моделях приложений (бегло), фичеринге (подробно) и своем собственном опыте управления продуктом (чуть-чуть).
Читать дальше →

SystemJS 0.20 — Совмещая с браузерными модулями

Reading time6 min
Views13K

Это перевод поста в блоге Гая Бедфорда — основного разработчика таких замечательных инструментов, как JSPM — менеджера пакетов для браузеров и NodeJS, который работает на основе его же детища SystemJS — асинхронного загрузчика JS модулей любых известных форматов, способного расправляться в том числе с циклическими зависимостями, и который, в свою очередь, основан на его же детище под названием es-module-loader, полифиле для загрузки ES модулей. Как я понимаю, автор довольно сильно переписал SystemJS в данном релизе, и об этом будет интересно почитать хабраюзерам.


SystemJS 0.20 только что зарелизился — это полная его переработка, а также коррекция спецификации, в то время как ES модули уже находятся прямо здесь, в браузерах.


SystemJS изначально был разработан ещё в 2013-м году для проекта jspm, в то время когда RequireJS был лидирующим загрузчиком модулей. Параллельно развивался ES6, а модули ES6 всё ещё казались нематериальным сном. Идея SystemJS была простой и убедительной: модули приходят в браузеры, так что нам надо иметь возможность загружать любой модуль в любое время из браузера, что дало бы очень простой процесс разработки.

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

ТЗ высокой четкости

Reading time6 min
Views58K
Я аналитик, который пишет непонятные ТЗ. Т.е. я пытаюсь писать очень понятные ТЗ. В целом, я слушаю клиентов, потом я слушаю разработчиков, потом голоса в своей голове. Зачем я говорю с ними? В общем, получается то, что получается. Ну вы поняли.



Написать идеальное ТЗ проще простого:

1. Договорился о минимальном этапе (на 2-4 недели).
2. Описал юзер-стори по шагам.
3. Составил список экранов будущей системы.
4. Прописал названия методов API и форматы данных.
5. Запросил тестовый контент и составил таблицы с тестовыми данными.
6. Сформулировал из всего этого цели и задачи.
7. Согласовал план работ и выставил задачи в таск-менеджер.

Но не тут-то было! Давайте я расскажу, как все происходит в реальной жизни, а также поделюсь своими лайфхаками, как я с этим справляюсь.
Читать дальше →

KeepDraw.js — javascript framework для рисования на canvas

Reading time3 min
Views14K
Всем привет. В этой статье речь пойдет о библиотеке для рисования на canvas — KeepDraw.
Это фреймворк для работы с canvas 2d с поддержкой событий и анимации.

Отличительные черты:


  1. API в стиле ООП;
  2. События для мыши, клавиатуры и сенсорных экранов;
  3. Поддержка анимации;
  4. Рисование кривых безье по точкам;
  5. Множество функций, проверяющих пересечения фигур и точек;
  6. Заливка фигур градиентами и изображениями;
  7. Шаблоны объектов — линия, прямоугольник, текст, многоугольник и круг.
  8. Поддержка мобильных устройств.
  9. Сглаживание фигур с использование кривых безье.
  10. Легковесный. Сжатая версия весит 15 килобайт.
Читать дальше →

Cerebro – бесплатная альтернатива Alfred и Spotlight

Reading time2 min
Views17K

Хочу показать вам свой open-source проект Cerebro — это бесплатная альтернатива Alfred и Spotligth, работать над которым я начал несколько месяцев назад и лишь недавно добился стабильности и кроссплатформенности, с которой готов показать продукт широкой аудитории.



(под катом будет много скриншотов)

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

Проектная папка дизайнера. Создаём бекапы

Reading time4 min
Views11K

image


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

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

Как выковать процесс самому. Опыт компании 2ГИС

Reading time10 min
Views11K
Михаил Вязанкин

Михаил Вязанкин ( mihey911 )


Я расскажу вам историю про одну перегруженную команду.

У нас была команда, не очень большая, 20 человек высококвалифицированных специалистов — разработчиков, тестировщиков, DevOps. У этой перегруженной команды была дюжина заказчиков, в основном, внутренних. Эта дюжина заказчиков постоянно дралась за приоритеты. Для команды это большой стресс, напряженность, команде не понятно, что будет дальше — каждый день может какая-то новая бизнес-задача прилететь. В таких условиях Scrum, который два года у них работал и к которому они привыкли, начал ломаться, commitment (то, что они обещали сделать на спринт) они сделать уже не могли, потому что прибегал кто-то очень важный и хотел что-то очень ценное. А ценное — это деньги, их делать надо.

И команда от этого устала, и готова была меняться. Это важное условие.
Читать дальше →

Как дизайнеры управляют удачей в играх

Reading time10 min
Views20K

16 сентября 2007 года японский ютубер под ником Computing Aesthetic загрузил 48-секундное видео с громким названием «ULTRA MEGA SUPER LUCKY SHOT» («УЛЬТРАМЕГАСУПЕРУДАЧНЫЙ ВЫСТРЕЛ»). В видео показан сверхрезультативный выстрел в популярной игре Peggle, частично основанной на принципе японских автоматов для пачинко. В этой игре шарик летает по экрану, зарабатывая очки при ударах об разноцветные штырьки, которые после удара почти сразу исчезают; чем больше ударов, тем больше очков. Хотя в Peggle и требуется мастерство — перед выстрелом игрок должен точно прицелиться — принципиально игра зависит от удачности отскоков шарика. В видео Computing Aesthetic игрок зарабатывает огромное количество очков благодаря удачным отскокам между штырьками. Чтобы подчеркнуть кажущуюся удачность выстрела, игра до последних кадров видео проигрывает эйфорическую «Оду к радости» Бетховена, после чего шарик падает в лунку внизу игрового поля и на экране появляется мерцающая надпись «FEVER SCORE». В описании к видео, просмотренному почти четверть миллиона раз, написано «I couldn’t balieve this when it happened!!!!!!!!!» («Не могу паверить, что это случилось!!!»)

«A» значит «Astral». Интервью с Иваном Поляковым (Apus Software)

Reading time11 min
Views5.8K
Существует определённый круг предметов и явлений, по отношению к которым люди чётко делятся на две категории. Услышав про некое Х, представители первой категории спросят:«А что такое Х? Возможно, я что-то слышал об этом, но ничего конкретного не припоминаю.» Те же, кто относится к категории второй, выдохнут:«О-о, то самое Х!» — и глаза у них загорятся слегка нездоровым энтузиазмом. Только две категории. Никаких полутонов не предусмотрено.

Отличным примером такого явления может служить белорусская компания Apus Software и их серия компьютерных карточных игр, большая часть которых содержит в своём названии слово Astral. Начиная с олдовой Astral Tournament, которая, будь она человеком, в прошлом году уже могла бы получить паспорт, и заканчивая недавно вышедшей Astral Heroes, в которой лучшее из прошлых игр соединилось с лучшим из того, чего в них не было, Apus Software исправно сдают карты тем картёжникам, кому эльфы и единороги милее карманной пары и ловленного мизера.



В далёких уже две тысячи нулевых, коротая ночи за «Турниром в Астрале», вряд ли я мог представить, что когда-нибудь стану брать интервью у его создателя. Однако жизнь — удивительная штука, и сегодня у моего (метафорического, конечно) микрофона — сам Иван Поляков, более известный как Cooler.

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

Reading time4 min
Views43K


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

Согласно последним исследованиям NowSecure более чем в 25% мобильных приложений есть хотя бы одна критически опасная уязвимость.

В 59% финансовых приложений для Android есть три уязвимости из списка OWASP Топ-10.

Чем больше используют мобильные телефоны, тем больше появляется мобильных приложений. В магазине приложений Apple App Store доступно более 2 миллионов приложений, а в Google Play Store — более 2,2 миллионов.
Читать дальше →

Рефакторинг салона видеопроката на JavaScript

Reading time31 min
Views11K
Моя книга по рефакторингу в 1999 году начиналась с простого примера расчёта и форматирования чека для видеомагазина. На современном JavaScript есть несколько вариантов рефакторинга того кода. Здесь я изложу четыре из них: рефакторинг функций верхнего уровня; переход к вложенной функции с диспетчером; используя классы; трансформация с применением промежуточной структуры данных.

Много лет назад, когда я писал книгу по рефакторингу, я начал с (очень) простого примера рефакторинга кода, который вычислял счёт для клиента за прокат видеофильмов (в те дни нам нужно было ходить в салон для этого). Недавно я размышлял об этом примере, в частности, как бы он выглядел на современном JavaScript.

Любой рефакторинг подразумевает улучшение кода в определённом направлении, в том, которое соответствует стилю программирования команды разработчиков. Пример в книге был на Java, а Java (именно в то время) подразумевала определённый стиль программирования, объектно-ориентированный стиль. Однако с JavaScript есть гораздо больше вариантов, какой стиль выбрать. Хотя вы можете придерживаться Java-подобного объектно-ориентированного стиля, особенно с ES6 (Ecmascript 2015), не все сторонники JavaScript одобряют этот стиль. Многие действительно считают, что использовать классы Очень Плохо.
Читать дальше →

Information

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