Разум веб-технолога

Современный веб и всё, что мне интересно

Плакаты и объявления в московском транспорте №2

18 марта, 16:01

Коллекция больших настенных плакатов за 2017 год.

Здесь рекламируют новую систему транспорта москвы, тройку и дают советы детям

Рукопожатие и микробы

17 марта, 21:26

Пожимать руку вредно. По крайней мере, если вы видитесь чаще одного раза в неделю

В любом мужском коллективе каждое утро и каждый вечер происходит ритуал приветствия и прощания. Это жуткий атавизм.

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

У всякого, кто протягивает руку, на лице заметно полное безразличие к происходящему. В большом коллективе все относятся к этому формально и без интереса.

Это отвлекает от работы. Мы вынуждены отвлекаться от своих мыслей и уделять внимание каждому кто вошел или уходит.

Это не гигиенично. Человек пришел с улицы: держался за поручни в транспорте, принимал пищу, ковырялся в носу. Да мало ли где бывали его руки?

Большинство людей делают это на автомате, потому что так принято. Потому что ты же мужик, а мужики пожимают руку. Потому что ТЫ ЧТО РУКИ ОБОССАЛ?!

Мы видимся каждый день. К чему эта показуха? Простого словесного приветствия достаточно. Даже не обязательно отвечать каждому «Привет!». Всегда можно поприветствовать лично того, к кому хочешь обратиться по делу или при близком контакте.

Женщинам в этом плане повезло...

Сбербанк и Амазон

26 января, 10:25

При попытке купить что-нибудь на Амазоне, Сбербанк обязательно заблокирует вашу карту.

Как обычно, это решается звонком в службу поддержки.

Обучающие материалы по JavaScript и программированию

18 октября 2017, 12:18

Уроки спецпроектов

1 августа 2017, 18:40

1. Нельзя доверять стороннему АПИ:
— данные могут не прийти
— нужные вам поля могут быть пустыми или иметь неожиданное значение.

2. Следствие п. 1 — ваш код должен быть к этому готов.
Всё должно отображаться и работать без ошибок даже если данные некорректны или отсутствуют.

3. Обязательно учитывайте кэширование на стороне клиента.
— «скручивайте версию»: ссылка на файл скрипта или стилей должна меняться при изменении содержимого файла, чтобы клиент всегда получал свежую версию;
— если используете Реквайр, то придется переименовать файл, потому что Реквайр не умеет дополнять путь к отдельному файлу ГЕТ-параметром;
— если используете Вебпак, то добавляйте хэш к имени файла чанка, но не забывайте скручивать версию в месте подключения точки входа:

output: { 
...
    chunkFilename: '[name].[chunkhash].min.js'
}

4. Сафари в Айос  — чума 21 века для веб-разработчика

Сафари на айфонах по-особенному работает с айфреймами, у которых динамический контент. Например, с виджетом Твиттера.

Если такой айфрейм положить в абсолютно позиционированный блок с фиксированной высотой и внутренним скроллом (owerflow-y: auto), то он не будет растягиваться и скролл не будет работать. Похоже, сафари определяет границы блока и его контент при первом рендере и не учитывает загрузившийся айфрейм высотой 6000+ пикселей. Помогает такой хак:

*
    -webkit-overflow-scrolling: touch
.block__wrapper
    height: calc(100% + 1px)

5. Айфреймы в мобильном Сафари вообще часто ведут себя не так, как вы ожидаете. Например, их размер может внезапно зависеть от размера контента или от размера еще непонятно чего. Если нужно сделать адаптивный айфрейм, то помогает такой хак:

iframe {
        width: 1px;
        min-width: 100%;
        *width: 100%;
    }

6. Фоновый SVG в IE9-11 требует обязательно указывать атрибуты width и height, иначе его размер вырастет непредсказуемо, растянув или уменьшив картинку.

<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="1117" height="1403" viewBox="0 0 1117 1403">
...

Спусковые крючки для очистки мозга

25 мая 2017, 23:02

По мотивам книги «Джедайские техники» Максима Дорофеева.
Сохраню здесь чтобы не потерять.





Личное

  1. обещания
    • жене/мужу
    • детям
    • родителям
    • друзьям
    • родственникам
  2. предметы, взятые попользоваться
    • инструменты
    • книги/журналы
    • деньги
  3. информация
    • друзьям
    • семье
  4. события
    • торжества
    • дни рождения
    • путешествия
    • поездки на выходные
  5. административная сфера
    • финансы
    • оплата счетов
    • банки
    • кредиты / платежи
    • налоги
    • страховки
    • правовые вопросы
    • завещания
    • доверенности
  6. ожидания
    • заказы по интернету/почте
    • ответ на письма
    • ответный звонок
  7. дом
    • отопление
    • кондиционирование
    • водопровод/канализация
    • ремонт
    • электричество
    • мебель
    • коммунальные службы
    • платежи
    • кухня/оборудование кухни
    • санузел
    • места для глобальной уборки
    • гараж
    • кладовка
    • антресоль
  8. гардероб
    • свой
    • детей
    • супруги/супруга
  9. оборудование
    • компьютер
    • телевизор
    • интернет
  10. машина
    • гараж
    • страховка
    • ремонт
    • ТО
    • Шины / колеса
  11. здоровье
    • фитнес
    • стоматология
    • посещения врача
    • лекарства
    • диета/питание
  12. Личное развитие
    • семинары
    • курсы
    • самообразование
    • статьи
  13. домашние животные
    • прививки
    • корм
    • оборудование
  14. сообщество
    • соседи
    • школа
    • детский сад
    • церковь

Работа

  1. начатые проекты
  2. проекты, которые надо начать
  3. проекты, которые хорошо бы начать
  4. обещания
    • начальник
    • партнеры
    • коллеги
    • подчиненные
    • клиенты
  5. Коммуникации
    • звонки
    • письма
    • соц. сети
    • напоминания
  6. встречи/совещания назначить отменить посетить подготовиться
  7. документы
    • отчеты / таймшиты
    • оценки
    • обзоры
    • редактирование
    • вычитка
  8. Ожидания
    • информация
    • проектные мероприятия
    • ответы
    • письма
    • звонки
    • предложения
    • встречи
  9. проф.рост
    • обучение
    • семинары
    • ориентиры
    • чему стоит поучиться
    • нужные навыки
  10. исследования
  11. профессиональный гардероб

Учеба

  1. Домашнее задание
    • Сделать
    • Проверить
    • Списать
    • Передать
  2. Лекции / семинары
    • Взять конспект
    • Записаться
  3. Экзамены / зачеты
    • Список вопросов
    • Список литературы
    • Ответы предыдущих курсов
    • Справки о прогулах
  4. Диплом / Курсовая
      Тема Рецензент Научрук
  5. Статьи / Конференции
  6. Практика

RTL layout cross-browser element.scrollLeft issue solution

1 марта 2017, 16:42

Sometimes there is a moment as you make horizontal scrolling slider or timeline and become aware of the real world around you.

Some people will figure out the difference in how browsers implements Element.scrollLeft property on right to left layout (dir=«rtl»).

Most browsers have an initial value of scrollLeft equal to zero and will increase its value as you scroll (IE/Edge).

But in Chrome initial value of scrollLeft depends on scroll width (!) and is reduced to zero as you scroll.

Next problem is that some browsers increase scrollLeft value (Chrome, IE/Edge) while others decrease it to make it negative (Safari and Firefox).

Here is simple and obvious solution

// get initial value
var initial = el.scrollLeft();
// try to scroll with negative value
el.scrollLeft(-1);
// check if browser sets scrollLeft to negative
if ( el.scrollLeft() < 0 ) {
    // Safari, FF
    el.scrollLeft(/* ...  */);
} else {
    if ( initial > 0 ){
        // Chrome
        el.scrollLeft(/* ...  */);
    } else {
        // IE
        el.scrollLeft(/* ...  */);
    }
}

Поисковый робот Гугла не понимает ES2015

9 января 2017, 16:04

Google search crawler robot does not understand ES2015 JavaScript at all.

Будьте бдительны. Проверить можно через https://www.google.com/webmasters/tools/googlebot-fetch-details

Ctrl + ↓ Ранее