айПодписки и закрытие Яндекс.Подписок

Так как Яндекс закрыл свой сервис Яндекс.Подписки и всех насильно перевёл всех в Яндекс.Новости, я думаю на этом айПодписки закончатся. Разве что они сделают публичный API для Яндекс.Новостей. Если он будет годным для перевода, то попробую перевести айПодписки на новый API. Но пока API нет. API самих Яндекс.Подписок пока работает, но сбор новых новостей из RSS-лент они остановили. У меня там последние новости за 5-6 февраля. Сам я перешёл на Feedly. Спасибо всем, кто пользовался :)

UPDATE: пришло письмо, что 31 марта API подписок закроется. Видимо, придётся и приложение из App Store убирать.

comment comments

Изменения в Core Location Manager в iOS 8

Изменения в Core Location Manager в iOS 8

Заметка про то, что в iOS 8 теперь нужно запрашивать разрешение на использование геолокации иначе.

Читать далее...

comment comments

Пост про поиски работы

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

Читать далее...

comment comments
local_offer работа

Select like a Boss для Safari

Select like a Boss для Safari

Проблема выделения текста внутри ссылки на движках Webkit/Blink уже существует давно. Лично для меня. Как-то я пропустил, что она может быть решена с помощью расширения для браузера. Нашёл такое расширение, называется Select like a Boss. Но оно только для Firefox, Opera (Blink) и Chrome. Т.к. на гитхабе были найдены исходники расширения для Chrome - я просто взял js-код и запаковал его в расширение для Safari. Теперь я счастлив и могу нормально выделять текст внутри ссылок :)

Исходники + ссылка на скачивание: GitHub.

comment comments

Geohash - что это и где он может пригодиться.

Geohash

Давно хотел написать пост про Geohash. Несколько лет у меня лежат скрины к нему, но всё руки не доходили.

Не буду особо расписывать про него, это будет больше формата заметки пост.

Читать далее...

comment comments
local_offer geohash

Vivaldi - новый браузер по мотивам Opera

Vivaldi Browser

Просто оставлю тут пост радости. Ура, молитвы/просьбы/взывания тех, кто любит старый браузер Opera, наконец услышаны. Один из создателей старой Оперы запилил новый браузер. Он современный, на Chromium, но уже сделано много всего из того, что было в старой Опере, в плане интерфейса и юзабилити. Подробнее я всё разобрал на Хабре. Пока он местами сыроват, но уже сейчас радость и счастье наполнили этот мир :) Буду следить и пользоваться. Ура!

comment comments

Заметка про сессии в PHP и Garbage Collector

Неприятную штуку тут на одном из рабочих серваков обнаружил.

Исторически сложилось, что при старте PHP-движка сайта выставляется значение:

session_save_path( PATH_TMP );
ini_set( 'session.gc_maxlifetime', 1800 );

То бишь у нас кастомная директория для хранения сессий, и время жизни ей выставлено в полчаса для garbage collector.

На сервере используется php-fpm. Обнаружил проблемы в логах - будто бы место закончилось на диске. Хотя его ещё дофига. Сразу мысль - где-то дофига файлов мелких насоздавалось. Как оказалось - не стирались файлы сессий в нашей кастомной директории. Стал копаться - на php.net нахожу параметр session.gc_probability, который в php.ini должен быть выставлен в 1 - это вероятность того, что при выполнении скрипта запустится ещё и garbage collector.

В подсказках пользователя запись, что Debian выставляет этот параметр в 0. Гугление говорит, что это связано с выставленными на дефолтную папку /var/lib/php5 правами, которые не позволяют php-шному garbage collection очищать старые файлы оттуда. То есть он отрубает garbage collector у php и вроде как от рута запускает какое-то своё cron-задание для очистки. Ищет он файлы, похоже, в стандартной директории, а т.к. оно не совпадает с нашей директорией PATH_TMP - то сессии не удалялись.

Вот такие пироги. Выход - либо настроить своё cron-задание для очистки, например:

0,30 * * * * find /path/to/tmp -mmin +30 -exec rm {} \;

Либо в php.ini прописывать дефолтную папку. Но, например, если на сайте 2 проекта, которые используют разные временные папки для хранения сессий, то тут уже придётся для обоих как-то что-то настраивать.

Либо при старте скрипта добавить строчку: ini_set('session.gc_probability', 1);

Лично мне больше нравится своё cron-задание. Хотя может и добавление ещё одной строчки в скрипт - лучше, т.к. на будущее может избавить от этой проблемы. Хотя cron как-то кажется надёжнее. Осталось придумать теперь, как мне удалить накопившиеся за 6 месяцев файлы. Midnight Commander часа 2 у меня сканировал папку. Когда счётчик перевалил за 49 миллионов - я забил на сканирование, поставил удаление и пошёл спать.

Такие дела.

comment comments