Блог Александра Денисюка

PHP-программист

Вконтакте Твиттер Хабрахабр

Любые предложения или замечания принимаю на
почту a@denisyuk.by или на номер +375 (29) 203-79-48.

Хостинг за 1 $ для блога или небольшого сайта

Сегодня хочу пропиарить хостинг на основе виртуального хостинга с оплатой только за используемые аппаратные ресурсы сервера — ElasticWeb, на котором размещается мой блог с самого начало его существования. У этого хостера вы будете платить только за затраченные ресурсы: CPU, трафик, ОЗУ, БД, место на диске. Цены на ресурсы сервера смотрите на специальной странице.

В среднем за месяц блог вытягивает 0,45 $ при относительно небольшой посещаемости. В период 20 Июл 2016 — 26 Мар 2018 было затрачено всего 13,20 $, где было 27 303 визитов и 42 392 просмотров страниц. Сколько было затрачено реальных ресурсов, к сожалению, посчитать не могу.

История биллинга:

Каждый день я трачу в среднем 0,0153 $. Однако, бывают моменты, когда на блог приходит больше читателей, чем обычно: просмотры страниц растут, а значит растёт и стоимость за затраченные ресурсы хостера. По необходимости можно поставить лимит, чтобы не платить больше позволенного.

В феврале 2017 года ElasticWeb изменил ценовую политику. Он ввёл минимальный обязательный платёж. Теперь при нулевой посещаемости сайта нужно заплатить 0,013 $ за день или ~0,39 $ в месяц. Если ваша посещаемость >50 человек, то можете об этом не беспокоиться, так как затраченные ресурсы будут входить в эти суммы.

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

Дополнительные платные опции:

Все настройки почты я снёс и создал почту на своём домене на платформе Mail.Ru для бизнеса. О бекапах тоже особо не беспокоюсь, захожу в Панель управленияРезервные копииРезервные копии и, время от времени, выгружаю всю БД на свой диск. С файлами можно работать по FTP или SSH — это бесплатные опции.

30 апреля   блог   блоггинг   хостинг   эгея

Найди в этом посте себя, 2018 год

Поздравляю своих читателей и подписчиков в Твиттере с наступающим Новым годом! Желаю в новом году стать лучшей версией себя образца 2017 года. Да прибудет с вами Сила.

По сложившейся традиции, публикую список хороших людей, за которыми я следил в своём RSS-ридере (+74) на протяжении всего уходящего года. Попробуйте найти в нём себя:

— Напишите мне в личку или на почту, если хотите добавиться в этот замечательный список.

Сколько трафика принёс Хабр на мой блог за 2017 год

В этому году я был активен на Хабре: написал пост, комментировал, добавлял ссылки в PHP-дайджест на свои посты. Сегодня хочу замерить трафик на свой блог и показать статистику за Янв — Ноя 2017. Итак, основной трафик по Хабру шёл с дайджеста (страницу профиля в счёт не берём). График получился не очень красивым, скорее он является индикатором попадания нового поста в дайджест. Видны всплески и угасающие шлейфы:

Просмотры страниц блога по источнику трафика (сайты) за 1 Янв — 30 Ноя 2017: зелёная линия — десктопный Хабр (habrahabr.ru), синяя — мобильный Хабр (m.habrahabr.ru). Пики на графике возникли из-за попадания моих постов в PHP-дайджест. Первые два оставили после себя трафико-приносящий шлейф на несколько месяцев.

Всего в дайджесте было опубликовано 3 поста: руководство по загрузке картинок, путеводитель по нововведениям PHP 7.0 и 7.1, перевод про исполняемые классы вместо контроллеров. Самым хитовым оказался пост про нововведения PHP 7.*, поскольку эта тема в начале года волновала всех PHP-разработчиков, особенно вопрос о переходе с 5.6 версии. Пост про загрузку картинок нормально выстрелил, а про исполняемые классы вместо контроллеров нет.

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

Ниже привожу срез за 1 Янв — 30 Ноя 2017 года по десктопной и мобильной версии Хабра. Обратите внимание на процент отказов и время на сайте. Полагаю, мобильный трафик можно не анализировать (кто будет читать «тяжёлый» контент с телефона? всем нужен «fast flow»).

                                                                Глубина    Время   
Источник                 Визиты  Просмотры  Посетители  Отказы  просмотра  на сайте
———————————————————————————————————————————————————————————————————————————————————
https://habrahabr.ru/    4717    5706       2302        4,6%    1,21       1:49    
https://m.habrahabr.ru/  470     554        282         12,8%   1,18       2:21    
— Открыл гостевой доступ в Яндекс.Метрику. Можно посмотреть любую статистику по этому блогу.

Скидываю ссылки на PHP-дайджесты, где я засветился в этом году:

PHP-Дайджест № 100 (1 — 15 Янв 2017)
PHP-Дайджест № 101 (15 — 29 Янв 2017)
PHP-Дайджест № 102 (1 — 12 Фев 2017)
PHP-Дайджест № 118 (24 Сен — 9 Окт 2017)

Программирование за деньги больше не гарантия бутерброда с икрой

Оригинальный пост называется Кодинг больше не гарантия бутерброда с икрой, который написала в своём Фейсбуке Алёна Владимирская, экс-хантер в «Mail.Ru Group» со стажем 12 лет. Пост был бы актуален 20 лет назад, актуален сегодня, будет актуален в будущем, не только программистам, но и любой профессии в IT. Решил стянуть его в свой блог с небольшими правками, как напоминание о грядущих изменениях.


Я старая рекрутинговая черепаха. Я помню, что ещё 12 лет назад просто знание английского языка было абсолютной гарантией хорошей работы в международной компании. Знаешь хорошо английский? Приходи на приличную зарплату! Остальному доучим. Сейчас знание английского — необходимый санитарный минимум в некоторых отраслях и компаниях (все международные компании, ИТ, телеком, консалт, качественная реклама и пр.), никаким образом трудоустройство не гарантирующий.

То же самое сейчас происходит и с кодингом:

1) Если вы только начинаете кодить, вам блестящую карьеру в кодинге сделать всё сложнее. Ваши начальники — руководители отделов разработки — люди с опытом кодинга и опытом решения сложных задач. Они имеют уже лет 10 кодинга и при этом их возраст 32—35 лет. И развиваться на своих позициях (меняя компании, но растя как руководители разработки) они будут еще лет 30. Поэтому в крупнейших и самых желанных интернет-компаниях для кодера стеклянный потолок совсем низкий. Да, открываются там новые направления. Но при этом на них претендуют те, у кого уже сейчас 5 лет кодинга. А дальше им тоже расти некуда — более старшие ещё долго не уйдут на пенсии. Поэтому до вас очередь не дойдет или дойдет не скоро.

2) Активно растущий сегмент открытого кода разрушает карьеры кодеров в компаниях поменьше — зачем с нуля писать огромную разработку, значительно легче и эффективнее её скомпановать из кусков кода уже проверенных проектов. То есть потребность в кодинге все чаще в быстро растущих проектах заменяется потребностью умения компилировать код и знать, где и как найти нужные решения.

3) Объем выпускаемых говнокодеров (извините, ну термин такой в отрасли) всяким школами программирования таков, что нет потребности в джуниорах — на самом деле, рынок нулевыми плохими кодерами переполнен. Есть потребность в качественных кодерах с 3—5 летним стажем и с опытом работы в хорошем проекте. А чтобы его получить, нужно в такой проект попасть. Куда из левой школы «учим кодить» не берут.

4) Языки программирования отмирают. И на рынке болтаются стайки 40 программистов, знающих один отмирающий язык. Переучиваться они не хотят (ну или уже не могут — обленились), а их язык ещё не умер, но уже совсем маловостребован.

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

Всё больше востребованы продакты и проджекты с опытом кодинга в прошлом. Портрет таков: вы программист, который понимает бизнес и специализируется на каком-то одном направлении бизнеса, знаете два востребованных языка программирования, понимаете экономику проекта. Например, я 3 года кодил рекламную крутилку, я всё понял про её экономику, я стал продактом большой рекламной крутилки. Бинго — я нужен всем!

Что делать:

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

Скорость выполнения call_user_func_array() на разных версиях PHP

Решил сравнить скорость выполнения call_user_func_array() с обычным вызовом функций на разных версиях PHP и последним HHVM. Весь код измерения времени я запускал на 3v4l.org и фиксировал результаты в сводные таблицы. За основу взял функцию array_merge() с массивом MIME-типов и 1 млн раз вызывал её в цикле разными способами.

Код выше сравнивает скорость выполнения функции array_merge() с её вызовом через call_user_func_array(). Как видно, в седьмых версиях PHP нет никакой разницы по времени выполнения, а вот HHVM 3.22.0 остался на уровне PHP 5.6.30, хотя немного быстрее:

+--------------------------------------------------+----------+----------+----------+-----------+ | |PHP 5.6.30|PHP 7.0.24|PHP 7.1.10|HHVM 3.22.0| +--------------------------------------------------+----------+----------+----------+-----------+ |array_merge(...$args) |0.9381 |0.2910 |0.2945 |0.7795 | |call_user_func_array('array_merge', $args) |1.4194 |0.3073 |0.2938 |1.0372 | +--------------------------------------------------+----------+----------+----------+-----------+

В PHP 7.*.* провели хорошую оптимизацию и при вызове функций можно не задумываться об производительности call_user_func_array(). Это касается и вызова самописных функций и методов вызываемых из класса.

Замеры скорости получились следующие:

+--------------------------------------------------+----------+----------+----------+-----------+ | |PHP 5.6.30|PHP 7.0.24|PHP 7.1.10|HHVM 3.22.0| +--------------------------------------------------+----------+----------+----------+-----------+ |fn($args) |1.0934 |0.6369 |0.4660 |1.2059 | |$fn($args) |1.4507 |0.5399 |0.6090 |1.2501 | |$class->fn($args) |1.5088 |0.5622 |0.5282 |1.4568 | |call_user_func_array('fn', [$args]) |1.5022 |0.4198 |0.3750 |1.2159 | |call_user_func_array([new A, '__invoke'], [$args])|1.9369 |0.5629 |0.6538 |1.3701 | |call_user_func_array([new B, 'fn'], [$args]) |2.1243 |0.7088 |0.6625 |1.9792 | +--------------------------------------------------+----------+----------+----------+-----------+

В PHP 5.6.30 и HHVM 3.22.0 видно большую разницу при разных способах вызова функций, а в PHP 7.* как бы вы функцию не вызывали, её время выполнения будет примерно на одном уровне. Проще говоря, в последних версиях PHP вызов функций через call_user_func_array() и её исходных вариантах не имеет разницы.

Ctrl + ↓ Ранее