Как в 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). С тех пор в […]

Программирование на Ассемблере для начинающих с примерами программ

Многие считают, что Assembler – уже устаревший и нигде не используемый язык, однако в основном это молодые люди, которые не занимаются профессионально системным программированием. Разработка ПО, конечно, хорошо, но в отличие от высокоуровневых языков программирования, Ассемблер научит глубоко понимать работу компьютера, оптимизировать работку с аппаратными ресурсами, а также программировать любую […]

Быстрый экспорт данных с джойнами из MySQL в Clickhouse

Подготовка и импорт данных в Clickhouse достаточно обширная тема. В данной заметке приведу рецепт быстрого экспорта данных с джойнами из MySQL в CSV с последующим импортом этих CSV в Clickhouse. В MySQL есть очень полезная директива: INTO OUTFILE, которая в контексте SELECT запросов сохраняет данные в файл на сервере, а не […]

Как отладить PHP скрипт в Windows 10 с помощью PHPStorm и xDebug внутри docker-контейнера находящимся на сервере за NAT?

Вопрос отладки PHP-скриптов будоражит умы многих разработчиков. Так же эта инструкция поможет и тем, кто Docker не использует. На самом деле всё очень просто, достаточно прокинуть порт с удалённого сервера на локальный (так называемый remote port forwarding или ssh tunnel), делается это одной командой, но требует предварительной правки конфигов. Начнём. […]

Как на Windows 10 скомпилировать из исходника на Go Lang бинарник для Linux?

Этой заметкой открываю новую рублику по программированию на Go Lang. Один из первых вопросов, которые пришлось решить — как пользователю Windows 10 скомпилировать исполняемый файл для Linux сервера? Процесс сборки бинарного файла на системе одного типа для системы другого типа называется кросскомпиляцией. Ответ достаточно прост, сначала нужно задать константы: set […]