ENB плагин для конвертации javascript из стандарта ES2015 в ES5

Оформил наконец в виде npm-пакета ENB технологию конвертации javascript кода из нового стандарта (es2015) в старый (es5), чтобы все браузеры могли работать c таким кодом.

Из интересного:

  • Преобразованный код не содержит лишнего, т.к. выбраны babel плагины, которые не добавляют дополнительный runtime;
  • Преобразуется довольно быстро по след. причинам:
    • Полностью заменяет стандартную технологию компиляции js — enb-js;
    • Код библиотек не преобразуется;
    • Нет sourcemaps (это, впрочем, и минус тоже).

Пакет с технологией тут — https://www.npmjs.com/package/enb-es2015

Спасибо @tenorok за изначальный код технологии.

Архитектура Facebook’s flux в рамках i-bem

Волна статей об «инновационных» JS технологий facebook’s flux, redux, react, immutable.js и пр. окончательно заполонили профильные ресурсы, и у меня практически не осталось выбора кроме как породить что-нибудь по мотивам и вкрутить это в БЭМ стек — основной рабочий набор технологий.

Благо, что i-bem по сути даёт практически всё, что нужно для реализации архитектурного подхода flux. Однако для проверки необходимости перерисовки понадобилась дополнительная библиотека, позволяющая использовать иммутабельные (неизменяемые) структуры данных, — Immutable.JS.

Мои размышления на этот счет вылились в блок и подход организации БЭМ проекта в целом — bem-store (https://github.com/DimitryDushkin/bem-store).

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

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

Яндекс.Диск: https://yadi.sk/d/7C9VQIRzpxH57
Slideshare (может быть заблокирован в РФ):

Слайды с семинара про БЭМ

1.5 года я работаю в проекте, полностью построенном на стеке технологий БЭМ и считаю этот стек действительно удачным решением многих проблем современного front-end.

Думаю, многие даже небольшие проекты во многом выиграют от перехода на этот стек, но большое количество технологий (иногда даже дублирующих друг друга), используемых в стеке, могут отпугнуть храбрецов, решивших освоить БЭМ.

hammer.js rocks or raps...

hammer.js rocks or raps…

На прошедшем семинаре я попробовал показать, насколько несложно использовать часть стека на проекте полностью построенном на Ruby on Rails, сайте о недвижимости «Идинайди«,  Ниже слайды с этого семинара. Сайт-пример — https://github.com/DimitryDushkin/bem-light-example.

Первая часть (она на слайдах) посвящена «карте» технологий БЭМ. Она весьма разнообразна, но в действительности каждому элементу на ней есть своё место, которое возможно заменить на что-то другое из другого стека. Например, в Rails Борщик можно заменить на Sprockets. Формирование BEMJSON — на использование хелпера.

Вторая часть практическая. В ней описаны базовые принципы сборки проекта и написания блоков.

Скачать и посмотреть презентацию можно на я.диске — https://yadi.sk/i/66-ZYR7YpxHFo

Slideshare (заблокирован в РФ =():

Internet explorer 10 (+ windows phone 8): проблемный z-index

Если у вас есть невидимые элементы управления:

ie10 example

 

на клик по которым надо что-то сделать, то учтите следующий баг на Internet Explorer 10 (который воспроизводится и на windows phone 8):

он игнорирует z-index «пустых» элементов.

То есть клик попадёт на красный элемент, а не на контрол, который расположен над ним.

Чтобы это поправить, можно просто добавить контролам стиль:

 background-color: rgba(0, 0, 0, 0); 

К слову, просто

transparent

не сработает.

Да, дорогой читатель, ослик всё так же держит верстальщиков в тонусе.)

Это решение совершенно случайно обнаружил тут.

Ускорение всех действий на Internet Explorer 10+ в Windows Phone

Для того, чтобы переходы по ссылкам, разнообразные кнопки, слайдеры и пр. быстро работали на windows phone необходимо сделать следующее:

1. Добавить мета-тег, удаляющий серое выделение активного блока:

 <meta name="msapplication-tap-highlight" content="no"/> 

2. На все активные элементы поставить следующие стили:


-ms-touch-action: none; /* IE 10 */
touch-action: none; /* IE >= 11 */
user-select: none;

Школа разработки интерфейсов Яндекса 2013 г.

С сентября по декабрь 2013г. я учился в Школе разработки интерфейсов Яндекса. Было очень здорово и интересно. Постараюсь позже написать по-подробнее. Сейчас я просто выложу экзаменационную работу, чтобы не забыть о её существовании.)

Итак, экзаменационная работа – http://sky2high.net/etc/projects/shri_exam/ и её исходный код – https://github.com/DimitryDushkin/shri_exam_1

Если кому интересен пример приложения на БЭМ (блок, элемент, модификатор), то можете посмотреть на облегченную версию задания на БЭМ – https://github.com/DimitryDushkin/shri_exam_1_bem

Не включается Macbook Air 13 2013 года выпуска

Это просто жесть, как я сейчас починил MacBook Air 13 2013 года выпуска.)
В общем, он у меня был в сумке и чехле, и сумка упала со стула. Высота небольшая, я даже не парился.

Через минут 10-15 я включил его (открыл крышку) поработал, закрыл крышку, а потом еще раз её открыл и НИЧЕГО. Черный экран. На hard reset (долгое нажатие power) не откликается. Ну, думаю, всё ппц.

Оказывается, я не один такой. По ссылке была горячая дискуссия по этому поводу. И нашёлся ВНЕЗАПНЫЙ способ починить: оказывается дело в сенсоре внезапного движения (SMS, sudden motion sensor). Он как-то глючит на новых моделях.

Короче, чтобы починить, нужно немного приоткрыть крышку, крепко взять мак в руки и сильно трясануть его пару раз (как писалось: «SHAKE IT LIKE YOU MEAN IT!»). Потом открыть крышку до конца и нажать Power. И та-да! Мак включается как ни в чем не бывало.))