Записи с меткой "кодинг"
11 июня 2026
|
TL;DR: CH 26.x, драйвер в DataGrip 0.9.8, вручную добавить в Advanced драйвера костыль: ignore_unknown_config_key=true. Возможно, перегрузить IDE. Не обновлять драйвер без крайней на то необходимости.
|
16 августа 2024
|
В Питоне отбитая система импорта, она может довести до истерики.
И хотя я новичок в этой теме, я все же хочу зафискировать (в первую очередь для себя) решения, которые я нашел и у меня они работают.
|
10 ноября 2023
|
Постараюсь не разводить воду. Есть такая задача (реальная, но для статьи все совпадения вымышленные )): юзер через админку в нашу API запрашивает обновление статистики рассылки. Это сложная процедура, много собирать, взаимодействовать с чужой API, которая нестабильно работает. Короче - это время. Поэтому мы юзеру в браузер сразу отвечаем, что запрос приняли, а выполнять его будем в фоне. Когда закончим, пришлем уведомление в Slack.
Оставляем юзеру возможность отменить сбор статы. Т.е. это другой API роут, куда он обратится, чтобы остановить задачу.
|
9 ноября 2023
|
Когда в очередной раз у меня на работе начались подколки про мое отношение к ломанному английскому, я смог сформулировать, почему мне это так не нравится.
Я не граммар-наци, чтоб вы понимали, и у меня не болит душа за великий и могучий. Дело в том, как вы воспринимаетесь носителем языка со своей транслитерацией. Об этом и поговорим.
|
7 июня 2022
|
Есть как минимум два повода, почему вы нашли эту статью:
- Вы хотите использовать фичу Dead Letter в RMQ, но лень читать английские мануалы
- Вы уже прочитали RMQ: Dead Letter Exchanges, RMQ: Policies и возможно эту статью. И теперь у вас такая же каша в понимании предмета, как было у меня.
|
Моя статья не претендует на полноту освещения вопроса. Она для того, чтобы понять, как заставить эту фичу работать хотя бы как-то, чтобы дальше можно было экспериментировать. Я на это потратил полтора дня, возможно сэкономлю вам время.
12 мая 2021
|
Речь про сигналы, передваемые в Linux любому процессу: SIGINT, SIGKILL и пр. Эти сигналы доступны только в nix-подобных системах, базовая фича таких ОС. На Windows не будет работать почти наверняка.
Я неправильно понимал, как работает, т.к. зашел не с той стороны. Сейчас разобрался, рассказываю.
Картинка кликабельна. Автор: Daniel Stori — CC BY-NC-SA 4.0
|
15 августа 2018
Сколько лет уже пишу на PHP, давно пользуюсь XDebug, но все как-то боком проходили вопросы его настройки и принципа работы. Об этом написано много в разных местах, включая мануал. И вот наконец я сам разобрался, как и что..
14 октября 2017
Постановка задачи: я хочу, чтобы юзер всегда был залогинен, пока сам не выйдет. И не надо ему предлагать "Запомнить меня", это тупо, имхо. Если юзер хочет, чтоб его забыли, пусть жмет "Выход".
При этом защита не должна ослабевать, типа выдал один раз секретный код и всё, пока юзер не свалит, пользуется. Код должен обновляться, но прозрачно для юзера. Так же должна быть возможность отлучить юзера от доступа в зону по причине отобранной роли, бана или вообще, подозрении в хакерском взломе аккаунта.
3 октября 2017
Речь о тегах в php-скриптах. Согласно мануала при включенной опции разрешается короткая форма записи <? ?> тегов PHP. Если такая запись запрещена, то препроцессор PHP парсит только <?=...?>, что на самом деле не относится к коротким php-тегам, а является сокращенной записью инструкции <?php echo ...?>
Суть моей проблемы: перешел на новую версию PHP, при этом ставил его не из официальных репов, а в полуручном режиме из PPA. В новом конфиге опция short_open_tag оказалась отключена, у меня упало несколько сайтов и я подзаколебался искать причину. Учитывая, как я обновил PHP, мест для возможных багов стало более, чем достаточно.
29 сентября 2017
Хочу организовать хранение сессий на стороне сервера в базе данных. Зачем? "Just for fun!" ©. Вы можете найти для себя другие причины :)
Оказалось, свой велосипед не нужен, в PHP уже все есть. Нужно реализовать интерфейс php::SessionHandlerInterface и где-то назначить сессионным обработчиком объект моего класса. Для этого вызываем функцию php::session_set_save_handler(). Проще всего сделать вызов в bootstrap.php или index.php приложения.
12 июня 2017
Продолжение статьи о модульных тестах в PHP. В этой части рассмотрим поставщики данных, фикстуры, подмену зависимостей, тесты с виртуальной файловой системой, тесты исключений и взаимодействия с базой данных.
12 июня 2017
Продолжение статьи о модульных тестах в PHP. В этой части займемся практикой тестирования и разберемся с базовым использованием PHPUnit.
12 июня 2017
Данная статья (все ее части) - это лекция о модульном тестировании, которую мне нужно было провести среди PHP-разрабочиков компании, на которую я сейчас работаю.
Я не гуру тестирования и статья не претендует на полное руководство по модульным тестам или использованию PHPUnit. По первому вопросу целые книги пишут, да и у PHPUnit есть нормальный мануал. Цель статьи - объяснить на пальцах, как создавать unit-тесты, помочь разобраться с нуля в этой теме. Я подразумеваю ваше дальшнейшее самообразование. используя эту статью, как отправную точку.
11 октября 2016
PHPUnit 5.6, метод expectException(), а так же директива @expectedException используются в тестах для указания ядру фреймворка "ожидать такое-то исключение". В итоге тест считается пройденным если исключение возникло.
И тут есть ньюансик: после того, как PHPUnit поймает ожидаемое исключение, выполнение тест-метода прекратится! Т.е. expectException() - это аналог assert-метода, только с прерыванием. Есть так же методы на проверку кода и сообщения исключения.
19 мая 2016
В связи в повсеместным использованием ООП в PHP потребовалось запилить класс исключения с удобными плюшками. Их две: из экземпляра OOPException можно получить имя класса и метода, пробросившего исключение. Это удобно использовать в дополнение к Exception::getFile(), Exception::getLine().
Без ложки дегтя не обойдется: придется переписывать все свои вызовы исключений, и наплодить наследников от продвинутого класса для замены стандартных LogicException, RuntimeException и т.д.
13 августа 2014
Есть такая веб-разработка - vQmod. Помню, как радовался такой полезной и удобной системе, когда только с ней познакомился и разобрался в деталях, как она работает. А потом стал находить "деготь в этой бочке меда", но было терпимо.. до текущего момента. Теперь же я считаю, что vQmod - зло, причем немалое. Погодите потрясать кулаками, давайте обсудим :)
20 марта 2014
Задача: обработать данные с формы обратной связи. А там полей штук 30(!), это форма запроса кредита. Решение в лоб - разбирать массив и валидировать каждое значение, - это жесть. Выход в использовании возможностей php-функций filter_*_array(). Там много заморочек, я более-менее разобрался с этим семейством. Пищу здесь, чтоб в следующий раз не шариться в исходниках.
20 октября 2013
Скачал плагин TransliterateAlias v1.0 с оф.сайта MODx. Получил какой-то невнятный архивчик под именем repo-2340.zip Несмотря на странное имя, внутри все же оказался именно каталог [transalias]. Но это только начало.
6 августа 2013
Полное содержание серии - в конце статьи.
Когда-то давно я услышал от знакомого кодера фразу "PHP – легкий язык программирования". В то время я отнесся к этим словам скептически, но теперь полностью согласен. Этот язык гораздо легче изучить, чем многие другие, потому что, в первую очередь, он ограничен в возможностях. Это неплохо, просто от заточен под определенные функции и отлично справляется с ними. Грубо говоря от него требуется только собирать текст.
Вторым агрументом является документированность и популярность PHP. В инете чуть больше, чем дофига толковой информации по теме. Если вы ничего не знаете о создании кода, то начать именно с PHP – удачный выбор. И начать знакомство рекомендую в Викидепии.
6 августа 2013
Очередная статья серии, посвященной сайтострою. Полное содержание серии - в конце статьи.
Теперь начинается реальный кодинг. Можно конечно отказаться от использования JavaScript на своих сайтах, тем более что браузеры по-разному понимают js-код (тут бардак не меньше, чем в дизайне). Но возможности, которые он дает, заставляют хотя бы попробовать с ним разобраться.