К сожалению, виндовая консоль не имеет того набора команд, что и Linux. Поэтому некоторые элементарные задачи доставляют много баттхёрта. Например, банальная задача посчитать количество строк в файле в CentOS решалась бы такой командой: cat file.log | wc -l Или ещё проще: wc -l file.log Для Windows PowerShell рецепт будет такой: […]
Видео докладов Егора Бугаенко на тему ООП
Наткнулся на просторах ютуба на весьма интересного спикера Егора Бугаенко и по совместительству автора книги Elegant Objects, где он весьма неплохо поясняет за ООП. Не могу сказать, что согласен с каждым его словом, но для общего развития рекомендую ознакомиться с материалами. Не смотря на то, что некоторая часть докладов в контексте […]
Warning: imap_headerinfo(): Bad message number в PHP при работе с IMAP
В PHP есть несколько десятков функций объединённых в один модуль для работы с почтовыми серверами по протоколу IMAP. Но сделаны они весьма ужасно. Ещё бы, ведь они появились ещё в PHP 4 и содержат в себе все самые худшие практики архитектуры и дизайна которые только можно было придумать. Одной из […]
Почему на сервере Hetzner медленно работает диск
Заметил внезапное снижение производительности на одном из CentOS 7 серверов и не менее внезапное появление ошибок 502 Bad Gateway, которых даже во время хорошей нагрузки ни разу не было, а тут ночью во время простоя вдруг начали валить. Первым делом стал смотреть вывод iostat -x 3: Device: rrqm/s wrqm/s r/s w/s […]
Как установить ping в docker-контейнер?
Может случиться так, что при попытки что-нибудь попинговать изнутри docker-контейнера появиться пренеприятнейшая ошибка: bash: ping: command not found Как известно, docker-образы собираются как можно более минималистичными, чтобы не занимать место ненужными командами. Однако, при необходимости всё можно доставить поверх образа.
Как в PHPStorm сгенерировать сигнатуры методов для интерфейса?
Достаточно злободневная тема. Допустим, у вас есть некий интерфейс и вам нужно его реализовать. В идеале хотелось бы сгенерировать новый класс который бы содержал все сигнатуры и определения. Но нет. Чтобы провернуть это в PHPStorm потребуется вручную создать новый класс и объявить ему implements AnyInterface. Теперь жмёт Alt + Insert, […]
Как на PHP получить timestamp с точностью до наносекунд?
На чистом PHP данная задача не реализуема, но есть небольшой лайфхак: $nanotime = system(‘date +%s%N’); В результате $nanotime будет содержать значение: 1523648935928101682, где 1523648935 это привычный всем timestamp, а часть 928101682 собственно наносекунды.
Как в nano перейти на указанную строку в файле
Способ первый, если файл ещё не открыт, то можно указать строку через аргумент +N, uде N — нудная строка: nano +10 file.php Второй способ для перехода на нужную строку прямо в редакторе nano. Нажмите сочетание клавиш Ctrl + «_», на что будет задан вопрос: Enter line number, column number: Вводите нужный […]
Базовые принципы оптимизации SQL запросов
MySQL достаточно быстрый сервер баз данных. Во многих ситуациях он превосходит PostgreSQL и другие решения по производительности. Однако, любой даже самый быстрый сервер можно загрузить никому ненужной работой из-за неправильно написанного SQL запроса или неподходящей структуры таблиц. Рассмотрим актуальные на 2018 год способы оптимизации SQL запросов для MySQL сервера. В […]
Рост популярности чатботов для месседжеров
Идея чатботов не является чем-то новым, причём за последние два года компании усиленно ориентировались на их создание. Однако это произошло не в одночасье. Люди заинтересовались в создании робота, способного общаться с людьми, в начале 1960-х годов. Здесь уместно упомянуть компьютерные программы «Алиса» (ALICE) и «Умник» (SmarterChild). С тех пор в […]