Pull to refresh
18
0
Лавлинский Николай @Nickmob

Метод Лаб — ускорение сайтов

Send message

Быстрый рендеринг с DOM шаблонизаторами

Reading time17 min
Views31K

Борис Каплуновский (BSKaplou)


Борис Каплуновский

Я довольно долго работал над докладом и старался сделать его настолько противоречивым, насколько это возможно. И сразу начну с противоречия – я в корне не согласен с тем, что веб-компонентами можно пользоваться. Уже поднимался вопрос о 300 Кбайтах, я глубоко уверен, что 300 Кбайт для страницы Javascripta – недопустимо много.

Сегодня я расскажу о довольно глубоком путешествии во фронтенд. Началось это путешествие тогда, когда я обнаружил, что фронтенд aviasales.ru тормозит, и надо что-то делать. Это путешествие началось года полтора-два назад, и вещи, о которых я буду рассказывать, – это сжатое повествование того, что я узнал.

Самым критичным, на мой взгляд, в производительности фронтенд-приложений является рендеринг. Все мы знаем, что работа с DOM – это такая вещь, которую нужно стараться избегать. Чем больше вы делаете вызовов к DOM API, тем медленнее работает ваше приложение.
Total votes 62: ↑52 and ↓10+42
Comments56

Современная операционная система: что надо знать разработчику

Reading time22 min
Views67K

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →
Total votes 102: ↑94 and ↓8+86
Comments51

Внедряем Brotli с помощью Nginx — экономим байты почти бесплатно

Reading time5 min
Views44K
Эта статья пригодится всем, кто неравнодушен к скорости доставки своего веб-приложения пользователю и хочет выжать дополнительные миллисекунды и килобайты экономии.


Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments4

Обзор расширения OPCache для PHP

Reading time33 min
Views126K


PHP — это скриптовый язык, который по умолчанию компилирует те файлы, которые вам нужно запустить. Во время компилирования он извлекает опкоды, исполняет их, а затем немедленно уничтожает. PHP был так разработан: когда он переходит к выполнению запроса R, то «забывает» всё, что было выполнено в ходе запроса R-1.

Очень маловероятно, что на production-серверах PHP-код изменится между выполнением нескольких запросов. Так что можно считать, что при компилированиях всегда считывается один и тот же исходный код, а значит и опкод будет точно таким же. И если извлекать его для каждого скрипта, то получается бесполезная трата времени и ресурсов.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments25

Plug-and-Get-Security I, безопасность TLS в роще доменов

Reading time4 min
Views5.6K
image


Безопасная настройка TLS всегда была головной болью. Как для владельцев небольших ресурсов, так и для компаний, размер инфраструктуры которых может достигать нескольких сотен или даже тысяч доменов. Проблемы с TLS\SSL появляются постоянно — уязвимости в самих протоколах, крипто-алгоритмах или их имплементациях. От всем известных Poodle и HeartBleed, до достаточно экзотичных и свежих (CVE-2016-2107) проблем с AES-NI.


А к чему приводят проблемы с TLS?
К краже учетных записей пользователей, администраторов, внедрению в трафик вредоносного контента, рекламы или, как это было с HeartBleed, даже к прямому доступу к памяти сервера.


Давайте взглянем на картину в целом.
На июль 2016 по данным проекта SSL Pulse, который анализирует настройки Alexa Top 200k доменов:


  • 40% из них имеют ошибки в конфигурации или используют недостаточно стойкие наборы алгоритмов шифрования
  • 25% имеют серьезные проблемы приводящие к реальной реализации атак на пользователей ресурсов или на сами ресурсы

А значит, у всех нас проблемы!

Не люблю проблемы!
Total votes 17: ↑17 and ↓0+17
Comments1

4 вида утечек памяти в JavaScript и как с ними бороться

Reading time16 min
Views131K

В этой статье мы рассмотрим распространённые виды утечек памяти в клиентском JavaScript. Также мы узнаем, как их обнаружить с помощью Chrome Development Tools.


timeline в Chrome Dev Tools

Читать дальше →
Total votes 98: ↑98 and ↓0+98
Comments16

Пересборка пакетов для Ubuntu (Debian)

Reading time1 min
Views20K

Думаю, практически все понимают преимущества пакетных менеджеров над установкой при помощи ./configure && make && make install.

На примере недавно появившегося патча для Pidgin я хочу показать, как легко пересобирать пакеты в deb-based дистрибутивах.

Читать дальше →
Total votes 50: ↑45 and ↓5+40
Comments28

Youtube Player — создание собственного плеера на JavaScript

Reading time8 min
Views58K

Вступление


Наверняка многие фронтэнд разработчики да и в целом многие пользователи хоть раз интересовались работой и функционированием Youtube Player. В этой статье я расскажу, как он работает, и как сделать свой плеер для воспроизведения Youtube видео со своим интерфейсом. Так же приведу примеры для понимания, как это работает.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments10

Хабрахабр в гостях у Александра Лямина, QRATOR

Reading time22 min
Views12K

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

Это была лишь середина жаркого московского июля, который вот-вот подойдёт к концу. Договорившись с Александром о записи, мы все немного волновались — никогда ещё никто в Хабрахабре не пытался вести предметный диалог с известным техническим специалистом на видео. Не были мы оба уверены и в ходе диалога — в первую очередь потому что, оба Александры, мы никогда не встречались до этого лично. Тем не менее, наша небольшая съёмочная группа прибыла на место назначения, где-то между Беговой и Полежаевской.

Герой сегодняшнего рассказа и диалога родился в городе Ногинск Московской области. Как он рассказал нам, вся его семья по маминой линии из этого региона — на Клязьме деревня была еще несколько веков назад.

Но мама увлеклась романтикой севера и переехала в город Мурманск – это самый большой город за полярным кругом. Там Александр и провел детство. Отец был моряком, мама – бухгалтером.

Ключевых отправных точек в жизни сегодняшнего героя было две. Первая – это когда в 10 лет он увидел «Robotron K 1820», немецкий компьютер: «Меня сильно удивило, что можно рисовать в телевизоре. Мне стало интересно, что это такое, как можно программировать, что такое операционная система. Так получилось, что семья у меня была не сильно богатая…».

Своего компьютера у Саши не было — он занимался в кружке программирования, в областном Дворце Пионеров. Ездил на Олимпиады по программированию, так же, как и по многим другим естественно-научным предметам.

Зато, хвастается он, у одного из первых в городе появился модем — подарили старый-старый терминал DEC VT-220. Так он познакомился с миром сетей.

Второй такой wow-момент был, когда Александр понял, что может разговаривать с человеком, который находится вообще в другом полушарии. Это подвигло его к увлечению сетями – Х.25, IP. Он стал сетевым инженером.
Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments7

О роли DevOps в ИТ — мнения экспертов

Reading time7 min
Views29K

Изображение сайта tricentis.com

Существующие реалии буквально требуют от разработки программного обеспечения еще больше сокращать время выполнения проекта: от возникновения идеи до выпуска готового продукта. С завидной периодичностью заказчики просят реализовать проект «вчера», чтобы его не скопировал «сегодня» кто-то другой. И, конечно же, бюджет на то, чтобы сделать невозможное, как всегда, ограничен.

Разработчикам ничего не остается, как вновь и вновь заниматься оптимизацией техпроцесса, экспериментировать, пробовать новые методологии. В особо «запущенных» случаях временные резервы ищут буквально в каждом отделе, а не только заставляют разработчиков печатать быстрее.

Оказывается, быстрее могут работать и тестировщики, и менеджеры, и аналитики, и отдел внедрения. Остается всего ничего – придумать, как этого добиться.
Читать дальше →
Total votes 27: ↑18 and ↓9+9
Comments33

Прикручиваем к Nginx патч для динамического размера TLS records от Cloudflare

Reading time3 min
Views7.7K
Если вы используете Nginx для терминации TLS-трафика, то можете улучшить время ответа сервера с помощью патчей от Cloudflare. Подробности под катом.


Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments11

Анализ SSL/TLS трафика в Wireshark

Reading time7 min
Views222K


Как скрыть от посторонних конфиденциальную информацию?
Самое простое – зашифровать.
В Интернет и Интранет-сетях шифрацией данных управляет протокол SSL/TLS.
Солдат спит, служба идет.
Однако иногда возникает необходимость выполнить обратное – расшифровать перехваченный трафик.
Это может потребоваться как для отладки работы приложений, так и для проверки подозрительной сетевой активности.
Или в целях изучения работы SSL/TLS (очевидные, вредоносные цели не обсуждаются).

Как и при каких условиях можно расшифровать дамп SSL/TLS трафика в Wireshark?
Попробуем разобраться.

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments16

Свободный формат Lepton сжимает файлы JPEG на 22% без потерь

Reading time4 min
Views25K

Арифметическое кодирование по образцу Pied Piper



Предсказание коэффициентов дискретного косинусного преобразования в соседних 64-битных блоках JPEG

Компания Dropbox опубликовала исходный код нового формата потокового сжатия изображений Lepton (репозиторий на Github). Исходный код Lepton опубликован под свободной лицензией Apache. Всех желающих приглашают оптимизировать новый свободный алгоритм.

Lepton демонстрирует средний коэффициент компрессии 22% на файлах JPEG, предсказывая коэффициенты ДКП в JPEG-блоках и учитывая эти коэффициенты в качестве контекста для арифметического кодера, то есть кодируя дельту коэффициентов в соседних блоках.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments55

Пример простой автоматизации letsencrypt

Reading time8 min
Views75K
image

Удостоверяющий центр «Let’s Encrypt» (далее просто letsencrypt) вышел из беты пару месяцев назад, пообтерся в реальных условиях, избавился от детских болезней и оброс различными клиентами. И к этому моменту выдал 5 миллионов сертификатов. Самое время внедрять, т.е. получать сертификаты на свои домены и обновлять их в автоматическом режиме. Но как внедрить так, чтобы приблизиться к любимому админскому «поставил и забыл»? Чтобы было просто получать новые сертификаты, а старые при этом обновлялись автоматом? Ну и как добавить немного безопасности в этот процесс?
Ответ под катом.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments38

Веб-сервисы для проверки сайтов на вирусы

Reading time5 min
Views214K
Рано или поздно веб-разработчик, веб-мастер или любой другой специалист, обслуживающий сайт, может столкнуться с проблемами безопасности: ресурс попадает под санкции поисковой системы или начинает блокироваться антивирусом, с хостинга могут прислать уведомление об обнаружении вредоносного кода, а посетители начинают жаловаться на всплывающую рекламу или редиректы на “левые” сайты.



В этот момент возникает задача поиска источника проблемы, то есть диагностики сайта на проблемы безопасности. При грамотном подходе диагностика состоит из двух этапов:
  1. проверки файлов и базы данных на хостинге на наличие серверных вредоносных скриптов и инжектов,
  2. проверки страниц сайта на вирусный код, скрытые редиректы и другие проблемы, которые, порой, невозможно выявить статическим сканером файлов.

Предположим, вы уже проверили файлы на хостинге специализированными сканерами и почистили аккаунт хостинга от «вредоносов» (или ничего подозрительного на нем не нашлось), но поисковик все равно ругается на вирусный код или на сайте по-прежнему активен мобильный редирект. Что делать в этом случае? На помощь приходят веб-сканеры, которые выполняют динамический и статический анализ страниц сайта на вредоносный код.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments7

5 способов быстро победить ступор программиста

Reading time6 min
Views67K
image

Лень. Перегрузка. Сумбурность. Отсутствие цели. Каждый программист за время своей работы сталкивается с целым рядом негативных эмоций. И если они выходят из-под контроля, то начинают оказывать значительное влияние на развитие, а у некоторых даже становятся причиной полного отказа от дальнейшей работы.

Если вам когда-нибудь казалось, что вы просто не способны писать код, хотя на самом деле знаний для этого вполне достаточно, значит, вы сталкивались с так называемым ступором программиста. Фактически, это тот же творческий кризис.

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

Давайте рассмотрим несколько наиболее распространенных причин кризисов программиста, и разберем, как с ними бороться.
Читать дальше →
Total votes 39: ↑27 and ↓12+15
Comments39

30+ кейсов: как скорость сайта влияет на конверсию

Reading time5 min
Views14K
Ускорение сайта
Корректное измерение конверсии сайта — непростая задача. А связь скорости сайта с конверсией — так вообще почти невозможная. По крайней мере, за последние 8 лет лишь немногие компании смогли корректно связать эти две величины: набралось чуть более 30 опубликованных кейсов. Мы аккуратно их все собрали, разложили по метрикам, нашли первоисточники и предлагаем вашему вниманию.

Внимание! В скорости сайта есть три основные метрики — время ответа сервера (TTFB), время отрисовки (DOMready) и время полной загрузки (onload). Часть исследований сфокусирована только на одной из метрик, а некоторые — вообще без этих метрик. Применяя результаты исследований (и предлагаемые методы) к вашему сайту, нужно четко понимать, о какой конкретно метрике (и ее улучшении) идет речь. Иначе проблемы вашего сайта не удастся соотнести с полученными результатами.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments3

Компания Intuit ускорила сайт почти в 5 раз и увеличила конверсию на 20%

Reading time6 min
Views11K


Это второй кейс из серии «Как правильно ускорить сайт, и что это дает». Полный список кейсов мы публиковали здесь. В этом кейсе поучительно, как команда разработки договаривалась с другими подразделениями бизнеса, чтобы реально ускорить сайт.

Компания Intuit производит программное обеспечение для бизнеса в области финансов и бухгалтерии. Первая версия веб-сайта компании была выпущена в 1996 году, затем постоянно модифицировалась. Менялись разработчики и стандарты Web, сайт обрастал разными «заплатками» и дополнительным кодом. В 2012 году сайт компании стал загружаться ужасно долго — 15 секунд.

Команде разработчиков была поставлена задача снизить на 50% время загрузки 50 топовых страниц на 6 разных сайтах компании.

Типичная веб-страница представляла собой следующее:
  • Общий объем: 1,5-2 МБ
  • Изображения: 50-70+ штук, объемом порядка 1,2 МБ
  • Внешние CSS/JS: 30-40+
  • Объем Javascript: более 400 КБ
  • 30х-редиректы: более 20
  • HTTP-запросы: более 120
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments12

DUMP-2016: видео всех докладов в одном посте. Бесплатно. Без СМС

Reading time9 min
Views23K
8 апреля в Екатеринбурге прошла конференция DUMP. Под катом — видео 60-и докладов про frontend, serverside, devops, mobile, дизайн, управление разработкой и тестирование, плюс все презентации и фотографии с прошедшей конференции. А вот короткий отчетный ролик про DUMP-2016.


Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments2

Information

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