Pull to refresh

Новая GoPro Hero 4 Sessions

Reading time1 min
Views23K
Внезапно для всех не нуждающаяся в рекламе компания GoPro решила обновить модельный ряд своих устройств, выпустив гаджет под названием GoPro Hero 4 Sessions. В новинке реализованы все функции предшественников, главным же отличием стал новый внешний вид (в виде кубика), который вдвое меньше и почти на 40% легче. Столь радикальное изменение размеров обеспечено отказом от большого экрана сбоку от объектива – вместо него в новинке используется узенькая полоска:



Пока о новинке известно то, что она:
– Поддерживает самые востребованные режимы съёмки, а именно: 1440p@30fps, 1080p@60fps и 720p@100fps;
– Умеет делать 8-мегапиксельные фотографии в режиме обычной, серийной и покадровой (time-lapse) съёмки;
– Унаследовала от предыдущих моделей технологии Auto Low Light, SuperView и Protune;
– Может снимать видео под водой на глубине до 10 метров (без всяких доп.кейсов);
– Получила долгожданный разъём microUSB вместо весьма устаревшего miniUSB;
– Содержит на борту Wi-Fi и Bluetooth-модули для соединения со смартфоном;
– Имеет на корпусе всего лишь одну кнопку для активации режима записи;
– Совместима с аксессуарами от предыдущих моделей;
– Будет в продаже с 12 июля по цене в 399$.

Больше изображений новинки под катом:
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments40

PHP: Хранение сессий в защищённых куках

Reading time5 min
Views26K
На некоторой стадии развития веб-проекта возникает одна из следующих ситуаций:

  • backend перестаёт помещаться на одном сервере и требуется хранилище сессий, общее для всех backend-серверов
  • по различным причинам перестаёт устраивать скорость работы встроенных файловых сессий

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

Однако, есть альтернатива этому подходу. Возможно безопасно и надёжно хранить данные сессии в браузерной куке у самого пользователя, если заверить данные сессии криптографической подписью. Если вдобавок к этому данные ещё и зашифровать, то тогда содержимое сессии не будет доступно пользователю. Главное достоинство этого способа хранения в том, что он не требует централизованной базы данных для сессий со всеми вытекающими из этого плюсами в виде надёжности, скорости и масштабирования.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments107

session_write_close() может стать твоим другом

Reading time1 min
Views13K
Однажды я столкнулся с такой проблемой: на странице сайта с помощью PHP-скрипта выдавался пользователю видео-контент (подробнее в моей статье «flash-видео на веб-страницах и PHP»).

Скрипт, «отдающий» видео, работал долго (примерно столько же, сколько длился видео-ролик: мы установили контроль скорости скачивания согласно битрейту). Так вот, если в период просмотра видео вы открывали новый таб в браузере с другой страницей этого же сайта, возникала ошибка.

Ларчик открывался довольно просто. На сайте использовалась авторизация, основанная на стандартных PHP-сессиях. Так вот, когда сессия стартуется, сессионный файл блокируется, и до тех пока сессия не закроется и файл не разблокируется, никто не может открыть файл сессии. По умолчанию сессия закрывается при окончании работы скрипта. Мы добавили непосредственно перед выдачей видео-контента строку session_write_close() — вуаля, все заработало.

Поскольку совсем недавно товарищ пожаловался на точно такую же проблему и был рад полученной подсказке — я решил поделиться этим «хинтом» с хабралюдьми.
Total votes 18: ↑14 and ↓4+10
Comments14