IT-юрист
Шесть типов облаков, которые нужно знать – и что они рассказывают о погоде
Современные прогнозы погоды основаны на сложных компьютерных симуляциях. Эти симуляции используют физические уравнения, описывающие атмосферу, включая движение воздуха, солнечное тепло, формирование облаков и дождя. Постепенное улучшение прогнозов со временем означает, что сегодняшние пятидневные прогнозы настолько же точны, насколько 20 лет назад были точны трёхдневные.
Но вам не нужен суперкомпьютер для предсказания того, как изменится погода у вас над головой в ближайшие несколько часов – подобные приметы известны в разных культурах уже много тысяч лет. Следя за небом и обладая некоторыми знаниями по формированию облаков, можно предсказать, будет ли дождь.
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:
Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже
Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать
Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.
Пример 1: запуск программы, написанном на компилируемом языке (Go): в полной статье
Пример 2: Запуск скрипта PHP без OPCache и JIT
В интерпретируемых языках подразумевается, что при запуске программы будет осуществляться выполнение машинного кода не сразу. В случае PHP — запускается именно исходный код.
Это означает, что при каждом запуске программы система должна проанализировать исходный код и преобразовать его в понятный код для процессора (т.е. в машинный код).
Вот схематично представил всю последовательность работы PHP скрипта без включенных OPCache и JIT (каждый из них по отдельности рассмотрим в следующих двух примерах).
У нас привычный «исходный код» PHP (файл hello-world.php
):
<?php echo "Hello world";
Опять идем по порядку, рассмотрим какие процессы происходят запустив команду:
php hello-world.php
Процесс №1 — Компиляция в байт-код
Сначала исходный код обрабатывается Zend Compiler — это PHP компилятор. Первый из двух основных компонентов Zend Virtual Machine.
В отличие от рассмотренного выше компилятора Go:
задача PHP компилятора — преобразовать исходный код не в машинный код, а в код-посредник - байт-код;
процесс компиляции происходит при каждом запуске программы (вместо лишь единоразового - до запуска программы, как в примере с Go)
В случае PHP этот байт-код назвали PHP OPCode.
Байт-код — является более низко-уровневым, чем исходный код. Он содержит набор команд для интерпретатора (об интерпретаторе в следующем пункте). Байт-код не может выполняться процессором напрямую.
Чтобы посмотреть результат работы компилятора — сам байт-код — выполним команду:
php -d opcache.opt_debug_level=0x20000 -d opcache.enable_cli=1 hello-world.php
Получим:
$_main: ; (lines=3, args=0, vars=0, tmps=1) ; (after optimizer) ; /hello-world.php:1-2 0000 EXT_STMT 0001 ECHO string("Hello World") 0002 RETURN int(1)
Вначале видим $_main:
— обозначает, что следующие строки относятся к функции main
. Появление такой функции в байт-коде для глобальной области видимости PHP — занятная историческая особенность, дошедшая из других языков;
Следующие 3 строки начинаются на ;
— так обозначаются комментарии. Одна из целей — для дебаг-информации;
Последние 3 строки — непосредственно код нашего приложения, который будет выполняться виртуальной машиной в следующем шаге.
Процесс №2 — Выполнение байт-кода
Продолжаем ускорять блог на WordPress — PHP7, ESI в Varnish, XtraDB, эффективное сжатие и отключение лишнего
Целью этой и предыдущей статей является моё желание показать возможность оптимизации сайтов не только на WordPress, а вообще любого веб-приложения. Поэтому я использую такое количество инструментов, и так детально разбираю их конфигурацию. Если же Вам просто нужно ускорить WordPress — установите плагин WP Super Cache. Если Вас, как и меня, интересуют технологии, позволяющие оптимизировать любой сайт, а также Вам интересно, что стоит учитывать при разработке веб-приложений, рассчитанных на высокие нагрузки — прошу под кат, но только после прочтения первой части — дорабатывать я буду ту же систему.
Понимаем JIT в PHP 8
TL;DR
Компилятор Just In Time в PHP 8 реализован как часть расширения Opcache и призван компилировать операционный код в инструкции процессора в рантайме.
Это означает, что с JIT некоторые операционные коды не должны интерпретироваться Zend VM, такие инструкции будут выполняться непосредственно как инструкции уровня процессора.
Концепция «все есть файл» — давно устарела
Собственно, сабж.
На это указывает ряд моментов в существующих решениях.
Прежде всего, давайте вспомним, какими важными характеристиками обладает файл?
Как организовать разработку и поддержку блога на WordPress в 2К19 году и не налажать
Заранее думать о масштабировании, по максимуму использовать стандартные решения Wordpress, сделать тему WP своими руками, заботиться об удобстве верстальщика, упороться по мобильности — и обновить блог компании так, чтобы его любили читатели, редакция и руководство. У нас получилось.
Блогу компании Promopult уже 9 лет. За это время он пережил несколько трансформаций. О последней рассказывает Сергей Глазов, технолог нашего блога и других важных штук в системе Promopult.
19 полезных возможностей файла .htaccess
Спорим, о некоторых вы не подозревали. Мы собрали варианты применения .htaccess для улучшения работы сайта. Он часто используется оптимизаторами для корректной настройки 301 редиректов. Но этим возможности файла не ограничиваются. Тут и безопасность, и оптимизация, и параметры отображения — с помощью .htaccess вебмастер может сделать много полезного, чтобы сайт работал корректно.
В России принят новый закон о крипте: запрет на покупку стейблкоинов, и другие новости для криптанов
Депутаты утвердили целый пакет разных законов, призванных заставить российских шифропанков жить по-новому: детально разбираемся в нововведениях с юристом. Теперь в РФ официально можно вести криптобизнес, но рассказывать о нем клиентам строго запрещено. А если вы майните помаленьку – то, наоборот, никак нельзя это утаивать от налоговой и ФСБ!
Уютный VPS-сервер для маленьких проектов: как настроить
Мне всегда хотелось иметь в сети личное пространство. Место, где все было бы устроено как мне удобно. Наилучшим решением мне виделся недорогой VPS, который я мог бы обустраивать в соответствии со своими потребностями. Долго я не мог подступиться к решению этой задачи, но как-то незаметно подобрался набор инструментов, который позволил организовать именно такую программную среду, как мне хотелось.
Если вам тоже хочется создать в сети свое личное пространство, но вы не знаете, с чего начать, или вам просто интересны такие замечательные программные продукты как Docker, Portainer, Traefik – добро пожаловать под кат.
Введение
Признаться честно, я не очень люблю командную строку. То есть, мне нравится сама идея легкого минималистичного универсального интерфейса, практически не требующего ресурсов, но черное окно с мигающим курсором вызывает у меня фрустрацию и чувство беспомощности. И я даже знаю откуда это у меня.
Хостеры с оплатой российскими картами и серверами за границей
Всем привет! Меня зовут Леонид, я владелец сервиса Поиск VPS. Весной я уже опубликовал две статьи по оплате услуг иностранных хостеров при помощи SWIFT и криптовалют. К сожалению, карты, выпущенные российскими банками, все еще не работают в большинстве стран мира, да и не у всех есть желание и возможность оплачивать услуги указанными выше способами, поэтому сегодня я хочу предложить выборку хостеров, принимающих оплату российскими картами и предоставляющих виртуальные серверы не в России.
При составлении списка я ориентировался на количество стран, в которых возможно заказать наиболее универсальную услугу, а именно виртуальные серверы, а также минимальную цену не выше 300 рублей, 5 долларов или 5 евро в месяц. У большинства хостеров возможен заказ услуг в России, а там, где это возможно, приведена ссылка на точки Looking Glass.
Простой статический сайт на Webpack 4
После прочтения ряда статей (например, этой) решил перейти на современный подход с использованием Node.js при написании простых сайтов с подхода «динозавров». Ниже представлен разбор примера сборки простого статического сайта с помощью Webpack 4. Статья написана, так как инструкции с решением моей задачи не нашел: пришлось собирать всё по кусочкам.
Обзор приза за первое место в конкурсе «Технотекст 2023»
Продолжаю упражняться в эпистолярном жанре, то есть в написание коротких повествований.
Сегодня пришел на работу, как обычно, во второй половине дня, и обнаружил коллег рассматривающих картонный тубус на вид как бы от емкости для хранения ЛВЖ употребляемых во внутрь. Обнаружив меня возле лавки со сменной обувью, один из них недоумевая произносит: «Начальник, тут явно что‑то было, но этого тут больше нет! Тубус подозрительно легкий!», при этом показывает мне полиэтиленовый пакет с посылкой в котором зияет дыра. Следы преступления, как говорится, на лицо. «Надо срочно звонить в курьерскую службу, пусть разбираются и возвращают недостающее!» — добавляет он. Обычно в это время дня моя природная система‑на‑кристалле еще дремлет и привести её в рабочее состояние может только чашечка бразильского Суль‑де‑Минас. Я судорожно пытаюсь понять что происходит, что это за тубус и что за пакет... И какой‑то низкоскоростной частью периферии начинаю припоминать, что накануне мне поступил звонок от курьерской службы Major которая собирается доставить посылку от Хабра с призом за статью победившую в конкурсе «Технотекст 2023» в номинации «Железо: проектирование и технологии производства».
Как понять, нужно ли переплачивать за пиво, или основы прикладной статистики
Я люблю пиво, однако я не какой-то там эксперт, оголтелая фанатка крафта или, не дай господи, пивной сомелье. Я простая работяга умственного труда, которой иногда в пятницу хочется бахнуть прохладного хмельного напитка. И вот, в пятницу по дороге домой у меня есть превеликое множество вариантов, куда заглянуть на чарочку пенного. Дешевые разливные пивнухи, бары при крафтовых пивоварнях или просто магазин, иногда попроще, иногда подороже.
Но вот только понять я одного не могу. Порой приходишь в бар, просишь пива. И тебе вроде бы даже приносят в красивой кружке, и вроде бы вкусно, но за что 500 рублей за 0.5 литра? Если я в магазине баночку за 80 рублей куплю, будет заметно хуже?
Что же, подумала я, не зря же училась? Расчехляем бумажку с ручкой, будем выяснять, оправдана ли для меня лично переплата. А заодно ознакомимся с азами математической статистики — пожалуй, одной из важнейших дисциплин в науке в целом.
Как сохранять медиафайлы с Tilda в облако? Пошаговая инструкция
Если вы работали с Tilda, то наверняка задумывались, где хранить изображения, видео, и прочие файлы. Если использовать серверы CMS и Tilda, то в тарифных планах сталкиваемся с ограничениями на вес данных. Вдобавок хранение больших медиафайлов негативно сказывается на ресурсах — сайт загружается медленнее. Как избежать этих проблем? Оптимальное решение — использовать S3, ведь объектное хранилище позволяет улучшить производительность и легко масштабируется.
Привет! Меня зовут Наташа, я менеджер в Selectel. Сегодня расскажу, как интегрировать сайт на Tilda с S3-хранилищем для оптимизации хранения и доставки файлов. Подробности под катом!
Оптимизация памяти и запросов в wordpress
О памяти в wordpress
То, что wordpress кушает немало памяти, думаю, всем известно. Я периодически выкладываю на своем блоге некоторые посты, которые могут быть полезны при оптимизации wordpress.
Чтобы уменьшить потребляемую wordpress память я по стопам Макса делал прямой перевод wordpress 2.6.5 и wordpress 2.9, которыми, в принципе, доволен. Жесткий перевод движка позволял сократить 3-4 Мб оперативной памяти и позволял генерировать страницу немного быстрее, но терялся потенциал мультиязычности. Простым пользователям, далеким от всех этих «интернет штучек», достаточно сложно установить/обновить wordpress самостоятельно, хотя лично я считаю, что это того стоит!
Сергеем Бирюковым был написан плагин, который позволяет не так хорошо, как в прямом переводе, но в значительной мере решить проблему затрат памяти на локализацию. Он написал очень полезный плагин Pure PHP Localization, который позволяет уменьшить потребление памяти на 2-3 мб в wordpress. Кроме того плагин также сокращает память, потребляемую файлами локализациями плагинов и темы, т.е. чем небольше у вас на блоге плагинов, с русской локализацией, тем ощутимее будет прирост.
Я решил не распространять и полностью отказаться от распространения прямого перевода wordpress 2.9. Т.к. реализованный Сергеем способ является «из коробки». Т.е. не требует от пользователя никаких телодвижений. Просто поставил и активировал в админке. Разница в памяти между этими способами небольшая и она того не стоит.
Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 1)
Что делать, если сайт на WordPress грузится медленно? Ответ на самом деле прост – настрой кеширование. Можно ещё заниматься оптимизацией изображений, настройкой lazy loading и прочими хитростями. Но кеширование всё равно остаётся ключевым способом ускорения любого сайта на Вордпресс. Кажется, всё просто, зайди в Google, напиши "WordPress cache", найди статью, где больше всего картинок, скачай упомянутый в статье плагин и выстави настройки согласно скриншотам. При любом раскладе твой сайт сразу начнет работать в разы быстрей.
Но дьявол, как обычно, кроется в деталях. В интернете есть самые разные обзоры и сравнения плагинов кеширования. И за столько лет кто-то же должен был выдать идеальный рецепт? Но нет. Все эти обзоры сводятся к тезису: «мы сделали 10 одинаковых сайтов, установили плагины с дефолтными настройками и смотрим, где страница загрузилась быстрее». При этом все забывают, что нюансов при оптимизации кеширования вагон и маленькая тележка. Похоже, эта статья первая, которая примет во внимание реальное поведение пользователей на сайте, вместо сравнения скорости загрузки одной страницы в тепличных условиях.
Используя бестселлеры с Themeforest или, те же конструкторы, вроде Elementor, WP Backery и прочие, сайт обречен на 5-15 секунд TTFB (time for first byte, время ответа сайта) при загрузке КАЖДОЙ страницы. С одной страницы может быть несколько сотен обращений к базе данных, выполняться большое число php-функций, подключаться множество библиотек. Естественно, что такая скорость недопустима, она влечет за собой понижение в поисковой выдаче, "отказы" посетителей, сливы бюджетов на рекламу и так далее. С этим нужно что-то делать.
Деградация Яндекс РСЯ: уже на ДНЕ
С каждым годом трафик в РСЯ (Рекламная Сеть Яндекса) ухудшается все больше и больше. Это происходит по двум причинам:
1. Увеличение случайных кликов в неудачных местах размещения рекламы (включая клики при попытке закрыть рекламу);
2. Рост рынка ботов до промышленных масштабов;
В этой статье я напомню, как эффективно работала РСЯ в далеком 2017 году, и на каком дне она сейчас.
Electron: разработка настольных приложений с использованием HTML, CSS и JavaScript
Создание Live USB-дисков в Linux с помощью команды dd
Но продвинутые пользователи Linux, ради удобного и быстрого создания Live USB-дисков, постоянно обращаются к команде
dd
.Это — CLI-инструмент, который даёт тому, кто его выбирает, мощные возможности по копированию и конвертированию файлов.
Обычно
dd
используют для того, чтобы записывать ISO-файлы на внешние носители информации, вроде USB-дисков. Потом такой носитель информации можно использовать, например, для установки записанного на него Linux-дистрибутива на обычный компьютер или на ноутбук.Тут я расскажу о создании загрузочных USB-дисков с помощью
dd
. В частности, разберу команды, которые нужны для того, чтобы сначала найти в системе нужный диск, а потом записать на него ISO-файл.Information
- Rating
- Does not participate
- Location
- Батайск, Ростовская обл., Россия
- Date of birth
- Registered
- Activity