В последнем выпуске Радио-Т мы упоминали TokuMX — High-Performance MongoDB Distribution. Продукт этот звучит интересно — 9ти кратное сжатие данных в комплекте с 20ти кратным приростом скорости и поддержкой транзакций. При этом переход с mongo на tokumx весьма прост и с точки зрения внешнего наблюдателя — полностью прозрачен. Такое волшебство показалось мне более чем привлекательным и я решил проверить насколько все хорошо на практике.
Виталий Ф. @FuN_ViT
программист, синьор-помидор :)
Авторизация клиентов в nginx посредством SSL сертификатов
4 min
143KВведение:
Потребовалось мне тут как-то написать небольшой API, в котором необходимо было помимо обычных запросов принимать запросы с «высокой степенью секретности».
Не я первый с этим столкнулся и мир давно уже использует для таких вещей SSL.
Поскольку на моём сервере используется nginx, то был установлен модуль SSL
Гугл не выдал ни одного работоспособного howto, но информация в сети есть по частям.
Итак, пошаговое руководство по настройке nginx на авторизацию клиентов через SSL-сертификаты.
+27
Последствия OpenSSL HeartBleed
3 min
158K
HeartBleed может стать, если уже не стала, самой большой информационной уязвимостью вообще.
По какой-то причине, активность дискуссии в оригинальном топике не очень высока, что вызывает у меня крайне высокую степень удивления.
Что произошло?
1 января 2012 года, Robin Seggelmann отправил, а steve проверил commit, который добавлял HeartBeat в OpenSSL. Именно этот коммит и привнес уязвимость, которую назвали HeartBleed.
Насколько она опасна?
Эта уязвимость позволяет читать оперативую память кусками размером до 64КБ. Причем уязвимость двусторонняя, это значит, что не только вы можете читать данные с уязвимого сервера, но и сервер злоумышленника может получить часть вашей оперативной памяти, если вы используете уязвимую версию OpenSSL.Злоумышленник может подключиться к, предположим, уязвимому интернет-банку, получить приватный SSL-ключ из оперативной памяти и выполнить MITM-атаку на вас, а ваш браузер будет вести себя так, будто бы ничего и не произошло, ведь сертификат-то верный. Или просто может получить ваш логин и пароль.
Каков масштаб трагедии?
По моим оценкам, примерно ⅔ вебсайтов используют OpenSSL для HTTPS-соединений, и примерно ⅓ из них были уязвимы до сегодняшнего дня.
Уязвимость была/есть, как минимум, у:
- 10 банков
- 2 платежных систем
- 8 VPN-провайдеров
- mail.yandex.ru
- mail.yahoo.com
Используя уязвимость, с mail.yandex.ru можно было получить письма пользователей вместе с HTTP-заголовками (и, подставив cookie, зайти под этим пользователем), а, например, в АльфаБанке получать незашифрованные POST-данные с логином и паролем от Альфа-Клик (интернет-банкинг).
+187
Готовим IndexedDB
7 min
83K
На Хабре уже рассказывали про IndexedDB — стандарт хранения больших структурированных данных на клиенте. Но это было давно и API сильно изменился. Несмотря на это в поиске статья всплывает одной из первых и вводит в заблуждение многих, кто начинает пытатся работать с этой технологией. Поэтому я решил написать новую статью с информацией об актуальном API.
+25
Экономим память: Picasso vs UniversalImageLoader
5 min
18KПривет, Android-разработчики!
Я думаю, каждый из нас сталкивается с загрузкой изображений по URL. Самый простой способ решения этой задачи: использовать готовую стороннюю библиотеку. Как правило, одним из таких готовых решений оказывается Universal Image Loader (UIL), Picasso. Когда я спрашиваю у разработчика, почему он выбрал ту или иную библиотеку, то, как правило, получаю разные ответы. Например, «у Picasso/UIL нет проблем с memory leaks», или «Square делают только правильные вещи», или просто «Да вот использую UIL, работает – и хорошо».
Так вот, мне стало интересно: какая из этих 2-х библиотек оптимально использует память? Я использую UIL и имею проблему с OutOfMemory на старых устройствах. Возможно, Picasso это лекарство?
Так появилась идея этого benchmark-а.
Я думаю, каждый из нас сталкивается с загрузкой изображений по URL. Самый простой способ решения этой задачи: использовать готовую стороннюю библиотеку. Как правило, одним из таких готовых решений оказывается Universal Image Loader (UIL), Picasso. Когда я спрашиваю у разработчика, почему он выбрал ту или иную библиотеку, то, как правило, получаю разные ответы. Например, «у Picasso/UIL нет проблем с memory leaks», или «Square делают только правильные вещи», или просто «Да вот использую UIL, работает – и хорошо».
Так вот, мне стало интересно: какая из этих 2-х библиотек оптимально использует память? Я использую UIL и имею проблему с OutOfMemory на старых устройствах. Возможно, Picasso это лекарство?
Так появилась идея этого benchmark-а.
+20
Расследование об информационной безопасности в Яндексе. Rdomn – скрытая угроза
5 min
42KВ этом посте мы хотим рассказать об одном из сложных случаев заражения пользователей, который нам довелось расследовать и в котором были использованы многие из популярных техник.
Злоумышленники постоянно совершенствуют методы внедрения вредоносного кода на веб-страницы зараженных сайтов. Если раньше это бывала модификация статического контента или php-скриптов CMS, то сейчас прибегают к использованию более сложных техник.

В наши дни чаще всего заражению подвергается веб-сервер: устанавливаются вредоносные модули, внедряются вредоносные shared objects, либо же исполняемый файл перекомпилируется с вредоносной функциональностью. Для внедрения вредоносного JavaScript активно используется, например, Flash.
Злоумышленники постоянно совершенствуют методы внедрения вредоносного кода на веб-страницы зараженных сайтов. Если раньше это бывала модификация статического контента или php-скриптов CMS, то сейчас прибегают к использованию более сложных техник.

В наши дни чаще всего заражению подвергается веб-сервер: устанавливаются вредоносные модули, внедряются вредоносные shared objects, либо же исполняемый файл перекомпилируется с вредоносной функциональностью. Для внедрения вредоносного JavaScript активно используется, например, Flash.
+107
TYPO3 CMS кластер в облаке Jelastic
5 min
6.5KTYPO3 — отличное решение для веб-сайтов любых размеров, от небольших до корпоративных. Эта CMS позволяет с легкостью создавать и управлять многоязычными корпоративными сайтами для больших организаций. Такие веб-сайты могут масштабироваться и адаптироваться к любым возникающим потребностям.
Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.

Jelastic дает возможность сделать ваш сайт на TYPO3 не только очень гибким и доступным, но также стабильным и высокопроизводительным. Для достижения такого результата необходимо настроить высокодоступный кластера с двумя серверами приложений Apache, балансером NGINX, нодой Memcached и двумя реплицированными базами данных MySQL.

+13
Контролируем переполнение ячейки таблицы с помощью max-width
2 min
21KTutorial

Допустим, мы хотим сделать двухколоночную раскладку с помощью свойства table-cell. Левая колонка будет занимать всю доступную ширину, правая же может иметь два варианта в нашем случае:
- мы зададим этой колонке фиксированную ширину;
- она будет равняться минимальной ширине контента → minimum content width (MCW).
+19
YAWNDB — time series база данных
7 min
12K
В рамках многих наших услуг нам нужно регулярно предоставлять клиентам различную статистическую информацию. Клиентам, арендующим выделенные серверы, требуется информация о потреблении трафика. Пользователям облачных серверов нужна статистика использования аппаратных и сетевых ресурсов, а пользователям облачного хранилища — статистика скачивания файлов.
Наиболее простым и наглядным способом представления статистических данных является построение графиков. Существует много специализированных программных решений, предназначенных для анализа статистических данных с последующей визуализацией.Мы стали искать подходящий инструмент; основным требованием при этом была высокая производительность. В результате этих поисков… Впрочем, обо всем по порядку. Начнем с небольшого теоретического вступления.
+36
99 удивительных фактов о бизнесе будущего
8 min
18K
Не важно, создаете вы маленький уютный стартап или крупный бизнес на пару миллиардов, ключевой вопрос будет всегда один и тот же – чего ждать от будущего и как оно повлияет на то, что вы делаете.
В конце 2013 года SAP (один из крупнейших немецких производителей программного обеспечения) опубликовал на slideshare объемную презентацию из 99 удивительных фактов о бизнесе будущего.
На сегодня презентация была просмотрена почти 250 тысяч раз. Ну а мы представляем ее перевод на русский. Итак, поехали!
+1
Патчим EDID телевизора из-под Linux
6 min
42KTranslation
Мой телевизор («старая» модель LG 32LG5000) никогда не работал в Linux. Каждый раз, когда я подключал его через HDMI-порт, ядро сообщало мне ошибку:
и полностью игнорировало его.
Эта проблема меня не сильно-то и беспокоила, т.к. я не часто им пользовался, да и VGA-порт работал, хоть и с максимальным разрешением 1360×768. Однако сегодня, когда я решил посмотреть фильм, качество вывода через VGA было невероятно хреновым, и я решил с этим покончить.
Для тех, кто не знает, EDID — небольшое количество данных, содержащих в себе информацию о возможностях монитора, в основном разрешения и тайминги, которые он поддерживает. Сообщение об ошибке интересно тем, что в нем говорится об EDID 2.0, которого (почти) никогда не существовало. Вот что нам говорит Wikipedia:
Похоже, EDID 2.0 был объявлен устаревшим где-то в 2000. Довольно забавно, что ТВ 2008 года использовал именно эту версию.
kernel: [ 869.677850] [drm:drm_edid_block_valid] *ERROR* EDI has major version 2, instead of 1
и полностью игнорировало его.
Эта проблема меня не сильно-то и беспокоила, т.к. я не часто им пользовался, да и VGA-порт работал, хоть и с максимальным разрешением 1360×768. Однако сегодня, когда я решил посмотреть фильм, качество вывода через VGA было невероятно хреновым, и я решил с этим покончить.
Анализируем EDID
Для тех, кто не знает, EDID — небольшое количество данных, содержащих в себе информацию о возможностях монитора, в основном разрешения и тайминги, которые он поддерживает. Сообщение об ошибке интересно тем, что в нем говорится об EDID 2.0, которого (почти) никогда не существовало. Вот что нам говорит Wikipedia:
Структура EDID имеет версии от v1.0 до v1.4 размером в 128 байт, каждая последующая версия обратно совместима с предыдущей. Структура EDID v2.0 была размером 256 байт, однако позже была объявлена устаревшей и на замену ей пришла v1.3.
Похоже, EDID 2.0 был объявлен устаревшим где-то в 2000. Довольно забавно, что ТВ 2008 года использовал именно эту версию.
+54
Современные тенденции развития DDoS-атак и защита от них с помощью DefencePro Radware
6 min
17K
В нынешнее время, когда политическое и экономическое напряжение в странах нарастает, информационная война уже давно идет полным ходом на просторах Интернета и на одном из первых мест стоят всеми хорошо известны DDoS-атаки.
В первую очередь им подвергаются государственные и новостные web-ресурсы, которые в той или иной мере осветляют происходящие события не только в вышеупомянутых странах, но и по миру в целом.
Давайте более подробно рассмотрим, какие DDoS-атаки сейчас становятся наиболее популярными и тенденции их развития в последующие годы. Под хабракатом мои мысли по поводу атак и обзор решения защиты от Radware
+4
Cocos2D-X и чтобы легко на всех устройствах
6 min
38KTutorial
Несколько лет делал заказные игрульки под iOS. В условиях, когда некогда точить, а нужно пилить, идешь в гугл и спрашиваешь. Гуглокодинг. Вот и свела судьба меня с Cocos2D for iPhone и теплым ламповым www.raywenderlich.com
Мне Objective-C понравился, как и сам cocos2D. Мягкий как пластилин. После приличных лет писанины на C++ все как-то упростилось. Увы, только iOS. Безусловно, появились всякие Apportable, однако я не хотел почему-то смотреть в ту сторону. К тому же чувствовалась усталость от одной и той же платформы и хотелось своего проекта, при том, чтобы игралось на каждой микроволновке. Unity вроде хорош, но закрыт, а для меня очень важно знать, как оно работает изнутри: оценить потенциальные боттлнеки, что-то оптимизировать (приходилось часто за практику), да даже просто баги пофиксить. Плюс, хотелось начать что-то делать прям сейчас. А поскольку с моделью айфоновского кокоса я был очень хорошо знаком, было принято решение взглянуть на cocos2D-X. Тот, что на C++.
Мне Objective-C понравился, как и сам cocos2D. Мягкий как пластилин. После приличных лет писанины на C++ все как-то упростилось. Увы, только iOS. Безусловно, появились всякие Apportable, однако я не хотел почему-то смотреть в ту сторону. К тому же чувствовалась усталость от одной и той же платформы и хотелось своего проекта, при том, чтобы игралось на каждой микроволновке. Unity вроде хорош, но закрыт, а для меня очень важно знать, как оно работает изнутри: оценить потенциальные боттлнеки, что-то оптимизировать (приходилось часто за практику), да даже просто баги пофиксить. Плюс, хотелось начать что-то делать прям сейчас. А поскольку с моделью айфоновского кокоса я был очень хорошо знаком, было принято решение взглянуть на cocos2D-X. Тот, что на C++.
+22
Библиотека компьютерного зрения CCV 0.6 с новым классификатором изображений
1 min
20K
Для свободной кроссплатформенной библиотеки компьютерного зрения CCV разработан новый классификатор изображений, обученный в свёрточной нейроной сети. Впервые классификатор такого уровня и модели (детектор лиц, детектор автомобилей, детектор пешеходов) выпущены под свободной лицензией.
+28
Техники проработки персонажей в играх: Часть 2 — Беседа, Критическая ситуация
6 min
9.5KTranslation
Привет Хабр,
Я продолжаю переводить статью Рафаэля Чендлера о приемах, которые помогут проработать персонажей в ваших играх более детально.
Первая часть статьи поведала нам о методе использования карт Таро для составления прошлого и будущего персонажей, что во многом определит их судьбу.
Вторая часть относится к двум приемам, которые помогут вам разработать мотивацию для ваших героев и сделать их интересней для искушенного игрока.
Продолжение под катом:
Я продолжаю переводить статью Рафаэля Чендлера о приемах, которые помогут проработать персонажей в ваших играх более детально.
Первая часть статьи поведала нам о методе использования карт Таро для составления прошлого и будущего персонажей, что во многом определит их судьбу.
Вторая часть относится к двум приемам, которые помогут вам разработать мотивацию для ваших героев и сделать их интересней для искушенного игрока.
Продолжение под катом:
+5
Логика мышления. Часть 17. Реляционная модель данных
4 min
47K
Этот цикл статей описывает волновую модель мозга, серьезно отличающуюся от традиционных моделей. Настоятельно рекомендую тем, кто только присоединился, начинать чтение с первой части.
В 1970 году Эдгар Кодд опубликовал статью (Codd, 1970), в которой описал основы реляционной модели хранения данных. Практической реализацией этой модели стали все современные реляционные базы данных. Формализация модели привела к созданию реляционного исчисления и реляционной алгебры.
Основной элемент реляционной модели – это кортеж. Кортеж – это упорядоченный набор элементов, каждый из которых принадлежит определенному множеству или, иначе говоря, имеет свой тип. Совокупность однородных по структуре кортежей образует отношение.
+34
Короткая жизнь и приключения одной игры
5 min
25K
Пост о нелегкой, впрочем, и весьма недолгой жизни мобильной игры на Android. В предыдущей публикации я обещал рассказать о том, что же в итоге получится из моей задумки на голом месте собрать игру и пустить её в свободное плавание.
+48
Простая передача в Google Analytics событий ошибок заполнения форм в Magento (и не только)
2 min
4.7K
+5
Реалии работы в проектах приложений Smart TV
15 min
84K
С тех пор разработчики и заказчики часто спрашивают меня об особенностях работы в окружении браузерного движка Smart TV, приходится повторять не слишком простые, но интересные особенности, которые слушателям хотелось бы знать и иметь под рукой в качестве справочника. Формат статьи, думаю, идеально подходит для информации по этой теме, тем более, что разработчики из других групп и городов тоже предоставляли сообществу такие обзоры. Объединение знаний сложит необходимую картину из разбросанных паззлов отдельных взглядов. Будем координировать их сборку вместе, и…
+38
Применяем визуальные эффекты к изображениям в Django
5 min
9.7KПри написании собственного «инстаграма» появилась необходимость в наложении фильтров на изображение при аплоаде. Изначально, чтобы особо не нагружать сервер, было решено вынести процесс преобразования картинки на клиентскую сторону. Основная идея – загрузка изображения в канву, манипуляции над ним и выгрузка потока байт (результирующего изображения) на сервер. Для реализации была выбрана js-библиотека CamanJS , которая может работать как в браузере, так и на стороне сервера через NodeJS. Однако пришлось от нее отказаться из-за трех причин:
+12
Information
- Rating
- Does not participate
- Location
- Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity