Ctrl + ↑ Позднее

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

26 января 2018, 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

Справка для бассейна не нужна

23 ноября 2016, 14:51

Для регулярного посещения большинства плавательных бассейнов в России вам потребуется Справка.

Чтобы получить справку для бассейна нужно обратиться к участковому терапевту в поликлинике по месту жительства. Терапевт вас направит сдать анализы крови, мочи и кала. Вы сдаёте все анализы и возвращаетесь к терапевту. На это у вас уйдёт пару дней.

Оказывается, справка для бассейна платная, если у вас нет показаний для посещения бассейна.

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

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

Что бы вы выбрали: ходить по врачам, сдавать анализы и покупать официальную справку или заказать всё с доставкой на дом?

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

Можно провести эксперимент: взять случайного бомжа, купить справку в интернете и отправить его в ближайший бассейн поплавать.

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

24 сентября 2016, 14:01

Метро заботится о пассажирах, разъясняет всякое и предупреждает об опаснасти.
Прямо как моя мама.

Processwire — ЦМС/фреймворк с удобным АПИ

12 августа 2016, 14:04

Процессвайр я использовал в трёх проектах. В одном из них на базе этой системы я разработал отличное АПИ для веб-приложения. Два других — типичные корпоративные сайты.

Прикол Процессвайр в исключительно удобном АПИ, написанном в духе ДжейКвери.
Она во многом напоминает МОДикс: тут есть страницы (ресурсы), к ним можно назначать шаблоны и поля (переменные, ТиВи).

Ещё, в отличие от МОДикс здесь по умолчанию нет никаких полей, кроме названия страницы и нет никаких чанков — вся логика прописывается в шаблонах, через плагины или хуки.

Основная особенность: здесь любая сущность — это страница (page), наподобие нод в Друпале. Например, пользователь здесь — это тоже страница.

Примеры использования АПИ

Текущая страница доступна в переменной $page

// Вывести название текущей страницы
echo $page->get("title");

// Хлебные крошки
echo "<ul>";
foreach ($page->parents as $parent) 
    echo "<li><a href='{$parent->url}'>{$parent->title}</a></li>";
echo "</ul>";

// Вывести случайное изображение
$image = $page->images->getRandom();
if ($image) echo "<img src='{$image->url}'>";

Можно обратиться к любой странице через $pages

// Вывести заголовок нужной страницы
echo $pages->get("/shop/category/product1/")->title;

// Найти все телефоны, выпущенные после 2014 года с размером экрана больше 4" и отсортировать по производителю
$phones = $pages->find("template=phones, year>2014, screen>=4, sort=-vendor");

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

Если вы устали от МОДикс и ищите что-то новое, то вам обязательно нужно попробовать Процессвайр.

Канал о Процессвайр в Телеграме

https://processwirecms.ru/

Ctrl + ↓ Ранее