Вечная аутентификация на сайте

Постановка задачи: я хочу, чтобы юзер всегда был залогинен, пока сам не выйдет. И не надо ему предлагать "Запомнить меня", это тупо, имхо. Если юзер хочет, чтоб его забыли, пусть жмет "Выход".

При этом защита не должна ослабевать, типа выдал один раз секретный код и всё, пока юзер не свалит, пользуется. Код должен обновляться, но прозрачно для юзера. Так же должна быть возможность отлучить юзера от доступа в зону по причине отобранной роли, бана или вообще, подозрении в хакерском взломе аккаунта.

Неожиданное открытие о качестве ОЗУ Kingston

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

Пневматический пистолет для прицельно-развлекательной стрельбы

MP-651К

Мне нужен пистолет для отработки навыка, который в армии к сожалению не развивали - стрельба. С винтовкой более-менее получается, но пистолетая стрельба - совсем плохо. Ходить для тренировки в тир и стрелять из боевых пистолетов безсусловно круче, но свободные деньги и свободное время у меня че-то редко совпадают в одно время :)

Поэтому купил себе такую "игрушку", как на картинке - Байкал MP-651К.

Метки: оружие

PHP: парсинг и замена "short_open_tag"

Речь о тегах в php-скриптах. Согласно мануала при включенной опции разрешается короткая форма записи <? ?> тегов PHP. Если такая запись запрещена, то препроцессор PHP парсит только <?=...?>, что на самом деле не относится к коротким php-тегам, а является сокращенной записью инструкции <?php echo ...?>

Суть моей проблемы: перешел на новую версию PHP, при этом ставил его не из официальных репов, а в полуручном режиме из PPA. В новом конфиге опция short_open_tag оказалась отключена, у меня упало несколько сайтов и я подзаколебался искать причину. Учитывая, как я обновил PHP, мест для возможных багов стало более, чем достаточно.

Метки: PHP, кодинг

PHP сессия в базе данных

Хочу организовать хранение сессий на стороне сервера в базе данных. Зачем? "Just for fun!" ©. Вы можете найти для себя другие причины :)

Оказалось, свой велосипед не нужен, в PHP уже все есть. Нужно реализовать интерфейс php::SessionHandlerInterface и где-то назначить сессионным обработчиком объект моего класса. Для этого вызываем функцию php::session_set_save_handler(). Проще всего сделать вызов в bootstrap.php или index.php приложения.

Метки: PHP, кодинг

Плохой сон: Сухопутная актиния (18+)

актиния

Мне приснился плохой сон. Я бы сказал, кошмар, но я не проснулся в холодном поту и мог управлять событиями во сне. Так что назову это просто плохим сном. Я вообще люблю ужастики и предпочитаю их другой литературе. Но сам я не автор и не блещу полетом фантазии. Так что проснувшись, я попытался записать то, что видел, пока сон не стерся из памяти. Концовка-таки потерялась, не судите. Что получилось, из затеи, читайте ниже.

Картинка кликабельная.

Рефрактометр

Купил клевую штуку - рефрактометр, модель RHA 503ATC. Сей измерительный прибор позволяет определять некоторые параметры автомобильных жидкостей буквально по паре капель. Что может: определить реальную температуру замерзания охлаждающей и омывающей жидкостей, плотность электролита АКБ. Вообще покупался он именно из-за последнего пункта - для контроля электролита в мото аккумуляторе. Маленький ареометр у меня тоже есть, но рефрактометр на порядок удобнее. Я протестировал им все подходящие жижи, которые нашел в гараже. Результат под катом.

Как научиться отжиматься на одной руке

В этой статье и расскажу и покажу, что нужно, сделать, чтобы научиться отжиматься одной рукой. Как правильно тренироваться, чтобы прийти к такой способности, минуя мои ошибки.

Отказ от ответственности. Я не спец по фитнесу. Все изложенное основано на личном опыте и только им и является. Если вы себе что-нибудь угробите - меня не вините, у вас должна быть своя голова на плечах. Не хватает соображалки, найдите тренера.

Гигиена ушей

Я вчера сделал для себя офигеннское открытие. Правильно промыл уши и в мой мир ворвались звуки, о которых я и не подозревал! В основном - шелестящие звуки. Так же оказалось, холодильник звучит в трех тонах, как минимум. В музыке есть высокие частоты (я думал, эквалайзер гонит). А чайник - ваще адская машинка, я аж шуганулся первый раз, когда действительно услышал этот шум и завывание.

Фото слева не относится к теме, т.к. речь пойдет о человеческих ушах. Просто фотка классая :), а все картинки по теме - УГ.

Самолет или поезд

Жизненно важный вопрос: чем лучше добираться из пункта А в пункт Б, если есть выбор. При условии, что расстояния между пунктами - пол России, как минимум. Обычно, либо самолет либо поезд, если деньги не очень поджимают. Но что на самом деле выгоднее?

Я затеял писать такую статью, чтобы вспомнить в следующий раз, почему поезд по моему мнению лучше. Пишу прямо из Шерементьево в ожидании 4-хчасовой пересадки, по горячим ощущениям (2 июля 2017).

Метки: про Жизнь

Unit-тестирование в PHP. Часть 3: углубление в PHPUnit

Продолжение статьи о модульных тестах в PHP. В этой части рассмотрим поставщики данных, фикстуры, подмену зависимостей, тесты с виртуальной файловой системой, тесты исключений и взаимодействия с базой данных.

Метки: PHP, кодинг

Unit-тестирование в PHP. Часть 2: знакомство с PHPUnit

Продолжение статьи о модульных тестах в PHP. В этой части займемся практикой тестирования и разберемся с базовым использованием PHPUnit.

Метки: PHP, кодинг

Unit-тестирование в PHP. Часть 1: теория

Данная статья (все ее части) - это лекция о модульном тестировании, которую мне нужно было провести среди PHP-разрабочиков компании, на которую я сейчас работаю.

Я не гуру тестирования и статья не претендует на полное руководство по модульным тестам или использованию PHPUnit. По первому вопросу целые книги пишут, да и у PHPUnit есть нормальный мануал. Цель статьи - объяснить на пальцах, как создавать unit-тесты, помочь разобраться с нуля в этой теме. Я подразумеваю ваше дальшнейшее самообразование. используя эту статью, как отправную точку.

Метки: PHP, кодинг

ОСАГО

Сегодня оформлял новые страховки и назадавал вопросы в СОГАЗе. Для справки: в прошлом году я был виновником ДТП. Урон пострадавшей незначительный, пара черных царапин на черном бампере, но она обращась в страховую за выплатой. Рассказываю, как все это отразилось на моих новых страховках ОСАГО на машину и байк.

Все ниже изложенное считать от 11 мая 2017 (сегодня). Дата оформления страховки имеет значение в некоторых случаях.

Неожиданная причина сбоя сертификатов в Хроме

Друг обратился с проблемой: все браузеры на компе перестали работать, невозможно зайти на любой сайт по защищенному SSL соединению (https). Он конечно описал проблему не так детально :) В оригинале звучало типа: "открываю Хром и все, хрен куда зайдешь. Носил в сервис, сказали, нужно переустанавливать систему". Вообще, нравится мне подход московских сервисменов: браузер глючит - переустановить систему.. Короче, причина оказалась в неожиданном месте.

Помпа системы охлаждения инвертора Prius

Toyota Prius, 20-й кузов. Отдельная система охлаждения инвертора с электропомпой. В этом поколении помпа работает вообще всегда, и поэтому срок жизни у нее ограничен. Как проверить, что она еще работает: зажигание в позицию AC-ON (дважды нажать на START без педали тормоза). Открываем капот и слушаем с левой стороны мерное гудение. Еще один признак: крышку расширительного бачка этой системы охлаждения откройте - там должен быть заметный поток жидкости. Именно эти два признака указывают на правильную работу и помпы и системы охлаждения.

Я за рулем машины. Опыт с нуля

Дорос я наконец до возможности и причин купить машину. До этого момента пять лет катался на байке по дорогам России и как бы уже не новичок. Но тут.. Если коротко, можно отбросить все, что знал, опыт с нуля.

По датам сейчас уже не распишу, но каждый день для меня был событием. Купил гибрид, Toyota Prius 2005 года, левый руль. Выкупил у кента, он же мне помог с постановкой на учет. Иначе про поход в МРЭО была бы отдельная статья.

PHPUnit. Тестирование исключений

PHPUnit 5.6, метод expectException(), а так же директива @expectedException используются в тестах для указания ядру фреймворка "ожидать такое-то исключение". В итоге тест считается пройденным если исключение возникло.

И тут есть ньюансик: после того, как PHPUnit поймает ожидаемое исключение, выполнение тест-метода прекратится! Т.е. expectException() - это аналог assert-метода, только с прерыванием. Есть так же методы на проверку кода и сообщения исключения.

Метки: PHP, кодинг

Chrome. Потенциальная дыра в безопасности паролей

Google стремится сделать нашу жизнь лучше.. По крайней мере это он так считает :) К своему удивлению, недавно обнаружил потенциальную дыру в безопасности, основанную на наивности юзера. Сочетание: браузер Chrome, залогиниться в браузере, разрешить сохранение паролей и их синхронизацию. По умолчанию от юзера требуется только залогиниться, дальше Google думает за вас.

Метки: инет

Фальшивка

История из моей жизни. На свадьбу подарили кучку денег. Хотел купить машину - маловато будет. Понес их положить на депозит до лучших времен. И среди кучи одинаковых банкнот оказалась настоящая поддельная купюра! Для меня это было, как снежного человека встретить :D А вот менты моего восторга не разделяли. Полдня потом мариновался то в машине, то в участке.

Метки: про Жизнь
Продвижение
Время
Метки
Щелкни мышей, чтобы закрыть