• Ура! Это была не паранойя


      В прошлом посте про розницу кое-кому было жутко от того, что можно целить рекламу средств от насморка в тех, кто обычно ходил в офис, а вот уже 10 минут как взял и не пошёл. В общем, последние пару лет я счастлив, что, например, всю сознательную жизнь не верил карточкам и расплачивался ими только в крайних случаях.

      Сейчас расскажу пару примеров. Кое-где юрист посоветовал мне формулировки помягче, поэтому дальше вся история — моё личное мнение, возможно, мало связанное с реальным миром. Многое мне вообще приснилось.

      Итак, как я уже рассказывал, что в моём сне можно таргетировать людей по состоянию счёта и покупкам. Например, таргет: «есть дети 6 лет» может выглядеть как «вот по этому списку терминалов сетей делал частые покупки 5 лет назад». Таргет «живёт в этом районе и имеет больше 100 тысяч рублей на счету» — по точкам, где часто покупает, и если таких кластеров два — ближе к окраине.
      Читать дальше →
    • Щи, или Распознавание 330 млн лиц на скорости 400 фото / сек

        Распознаванием лиц в 2018 году никого не удивишь – каждый студент, может, даже школьник, его делал. Но всё становится немного сложнее, когда у вас не датасет на 1 млн пользователей, а:


        • 330 миллионов пользовательских аккаунтов;
        • ежедневно заливается 20 млн пользовательских фотографий;
        • максимальное время на обработку одного фото не должно превышать 0.2 сек;
        • ограниченные объемы оборудования для решения задачи.


        В этой статье мы поделимся опытом разработки и запуска системы распознавания лиц на пользовательских фотографиях в социальной сети Одноклассники и расскажем про все ”от А до Я”:


        • математический аппарат;
        • техническую реализацию;
        • результаты запуска;
        • и акцию StarFace, которую мы использовали для PR-а нашего решения.

        Распознавание лиц Одноклассников в деталях
      • Angular 5


          Введение


          1 ноября 2017 года Google анонсировали мажорную версию Angular 5.0.0 под кодовым названием «пятиугольный пончик». Новая версия включает в себя новые функции и исправления ошибок, и в тоже время основной упор был снова сделан на то, чтобы уменьшить размер Angular, сделать его быстрым и простым в использовании. Полное описание всех изменений, включая критические, можно посмотреть в changelog файле официального репозитория Angular.


          От переводчиков


          Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы поговорим о вышедшей новой версии, кратко рассмотрим некоторые из наиболее важных изменений и вспомним историю Angular. Также для тех кто только начинает изучать этот фреймворк, мы рассмотрим примеры того, как быстро разворачивать приложение на Angular. Хотелось бы отметить, что вы можете присоединиться к отечественному сообществу Angular в Telegram, а также посещать Angular Meetup в Москве.

          Читать дальше →
        • Дюжина приемов в Linux, которые действительно сэкономят уйму времени

            image

            Однажды вечером, перечитывая Джеффри Фридла, я осознал, что даже несмотря на всем доступную документацию, существует множество приемов заточенных под себя. Все люди слишком разные. И приемы, которые очевидны для одних, могут быть неочевидны для других и выглядеть какой-то магией для третьих. Кстати, несколько подобных моментов я уже описывал здесь.

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

            Под катом — дюжина приемов в командной строке — из личного опыта.
            Читать дальше →
          • Если АНБ вычислило Сатоси Накамото, то как?

              Создатель криптовалюты Bitcoin Сатоси Накамото остаётся самым загадочным миллиардером на планете. Это один или несколько человек, личность(-и) которых никому не известны. Точнее, не известны широкой публике. По словам известного интернет-предпринимателя и инвестора Александра Мьюса (Alexander Muse), который ссылается на свои источники в Министерстве национальной безопасности, специалистам всё-таки удалось деанонимизировать Сатоси с помощью систем тотальной прослушки PRISM, MUSCULAR и стилометрии. Впрочем, достоверность источника никто не проверял — и далеко не факт, что АНБ не ошиблось в своих вычислениях. По крайней мере, обнародовать настоящее имя Сатоси никто не собирается.

              Независимо от достоверности результатов расследорвания, очень интересно, какие методы использует АНБ для деанонимизации пользователей, которые публикуют в интернете много текстов: на форумах, в незащищённых чатах, в письмах по электронной почте.
              Читать дальше →
            • Как держать 20 тысяч VPN клиентов на серверах за $5

                Месяц назад мы с друзьями сделали бесплатный сервис для обхода блокировок сайтов в Украине Zaborona.Help. За это время сервис стал довольно популярным, аудитория выросла до 20 000 пользователей. Число одновременных подключений в пиковые часы — ≈6 000 клиентов.

                Главная особенность нашего сервиса в том, что через VPN маршрутизируется трафик только к заблокированным сетям, остальные сайты работают напрямую. Это не влияет на скорость интернета и не подменяет IP-адрес для остальных сайтов.

                В статье описываются тонкости настройки OpenVPN для большого числа клиентов, на дешевых VPS.

                • Как выбрать подходящий хостинг. Отличительные черты плохого хостинга. История о том, как мы долго искали и нашли хостинг в России.
                • Почему IPv6 — хорошо. Правильная настройка IPv6-адресов для VPN-клиентов.
                • Изменение конфигурации OpenVPN на лету, без перезапуска сервера и отключения клиентов.
                • Балансировка нагрузки между серверами и процессами OpenVPN
                • Тонкая настройка Linux для большого числа подключений
                • Особенности кривых операционных систем и роутеров пользователей

                Наш опыт будет полезен для тех, кто собирается развернуть VPN для личных нужд, и тех, кто хочет создать сервис с большим числом клиентов.
                Читать дальше →
              • О процессе создания сервера – от идеи к деталям

                  Здравствуйте! Меня зовут Алексей, я руковожу созданием оборудования в компании YADRO – координирую работу всех, кто так или иначе вовлечен в процесс разработки.

                  В конце прошлой статьи Максим maxf75 немного коснулся особенностей расположения разъёмов памяти. Сегодня я расскажу в целом про то, как мы пришли к тому варианту архитектуры и компоновки, над которыми работаем сейчас.


                  Вид проектируемого сервера сзади со снятой задней решёткой.

                  Технические подробности и немного общих соображений.
                • Автопилоты vs реальный мир: что случится с инфраструктурой, моралью и экономикой

                    В предыдущих сериях: о нерешаемых проблемах автопилотирования и плохих датчиках систем предотвращения столкновений.

                    За прошедший месяц мало что изменилось. Теслы все так же попадают в аварии в режиме автопилотирования, на этот раз первая авария в режиме автопилота случилась в Китае.

                    Из комментариев к предыдущему тексту Элон Маск не узнал, что ему нужно допилить алгоритмы. Поэтому решил добавить еще камер и радаров для улучшения автопилотирования. Напишите ему кто-нибудь.

                    Случилось вот что:



                    Сложно не заметить аналогий с майской аварией:



                    Догадаться о причине аварий несложно. Она в недостатке информации, а именно:
                    Читать дальше →
                  • Алгоритмический дизайн

                      Я давно интересуюсь темой алгоритмического дизайна и собираю материалы и примеры на тему, но тема всплывала от случая к случаю. За 4 года скопилась пара десятков примеров и полдюжины статей в привязке к продуктовому дизайну, но до этой весны всё это были скорее отдельные всплески безо всякой системы.

                      Алгоритмический дизайн
                      Читать дальше →
                    • Telegram bot и PostGIS

                      О реализации ботов для месседжера Telegram на сайте было уже довольно много постов. Но есть одна тема, которая, на мой взгляд, еще не была затронута. Это реализация работы с геолокацией внутри бота. В данном посте я приведу пример того, как можно обрабатывать ботом информацию о геолокации, посылаемую пользователями, опираясь на собственный опыт реализации бота aroundus_bot.



                      Читать дальше →
                      • +10
                      • 15,7k
                      • 5
                    • Опасный target="_blank"

                        Большинство создают внешние ссылки через target="_blank" и не знают одного интересного нюанса — страница, на которую мы попадем таким образом, получит частичный контроль над ссылающейся на нее страницей через js свойство window.opener.

                        Через window.opener.location мы сможем сделать редирект на, к примеру, фишинговую страницу. Это своего рода tabnabbing, только более продвинутый. Так как жертва меньше всего ожидает подмены страницы, в открытой ранее, доверенной вкладке браузера.
                        Читать дальше →
                      • Как легально получать информацию о пользователях сайта из их соц. сетей

                          image

                          Какую информацию о пользователях можно получать из соц. сетей, какие методы являются незаконными и наказываются, как легально получить данные и мн. др. обсуждаем в статье.
                          Читать дальше →
                        • Почему технический долг — это хорошо

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

                          То же самое относится к техническому долгу. Бесчисленное множество статей в интернете рассказывают, как от него избавиться или хотя бы уменьшить. Все эти статьи показывают технический долг каким-то монстром, которого надо избегать. А если не получилось – то бороться изо всех сил.
                          Читать дальше →
                        • [ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

                          • Перевод
                          Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



                          Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
                          Читать дальше →
                        • Опасное видео: как я нашёл уязвимость в видеохостингах и не умер через 7 дней



                            Всем привет! Я Максим Андреев, программист бэкенда Облака Mail.Ru. В свободное время я люблю искать баги. В сегодняшнем посте я хочу рассказать об одной довольно интересной уязвимости, которую я нашёл и зарепортил в bug bounty нескольких крупных компаний, за что получил солидное вознаграждение. Уязвимость заключается в следующем: если сформировать специальный видеофайл и загрузить его на сервер, то:

                            • можно получить на нём SSRF;
                            • можно получить local file read;
                            • если пользователь скачает этот файл, то автоматически будет подвержен уязвимостям, даже если его не откроет: можно будет получить доступ к данным на компьютере пользователя и узнать его имя.

                            Читать дальше →
                          • Прототип сервиса обмена сообщениями Geotalk


                            Если вы хотите узнать о новом, необычном, в чём-то уникальном сервисе обмена сообщениями, добро пожаловать под кат. Вы узнаете историю о том, как развивается наше приложение от идеи до реализации.

                            Преамбула


                            У информации много характеристик, но есть одна на наш взгляд самая главная характеристика – актуальность. Если этот признак отсутствует, то информация либо ложная, либо ненужная. Пример неактуальной для меня информации это то, что происходит сейчас на перекрестке двух улиц в каком-то захолустном городке штата Миннесота. А вот информация о том, нет ли перебоев в работе станции метро Бибирево, для меня актуальна. Мы ежедневно смотрим новости своей страны, а не чужой, потому что эти новости для нас актуальны, не только во времени, но и географически. Я хочу сказать, что важным критерием актуальности, наравне со временем, является географическое расположение информации.
                            Читать дальше →
                          • Как сэкономить миллион долларов с помощью Tarantool

                              Для чего используются базы данных, ведь есть старые добрые файлы? Чем они хуже базы данных или чем база данных лучше файлов? БД — более структурированное хранилище. Она позволяет делать транзакции, запросы и так далее. Самый простой случай: есть сервер с базой данных и несколько приложений, которые делают запросы к серверу. База данных отвечает, меняет что-то внутри себя, и всё хорошо ровно до того момента, пока нагрузка на неё не вырастает настолько, что база данных перестаёт справляться.

                              Если допустить, что это только нагрузка на чтение, то проблема решается репликацией. Вы можете ставить к базе данных столько реплик, сколько нужно, и все чтения пускать на реплику, а все записи — на мастер. Если же на базу данных идёт нагрузка на запись, то репликация эту проблему не решает, ведь запись должна осуществляться на все реплики. Таким образом, сколько бы вы их ни ставили, вы не уменьшите нагрузку на запись из расчёта на одну машину. Тут на помощь приходит шардинг.

                              Если база не держит нагрузку на запись, то шарды можно добавлять до бесконечности. Шард устроен сложнее, чем реплика, потому что нужно как-то распределить данные по таблицам или внутри таблицы, по хэшу, по range — есть множество разных вариантов. Таким образом, добавляя реплики и шарды, вы можете делить любую нагрузку на базу данных. Казалось бы, больше желать нечего, о чём дальше говорить?
                              Читать дальше →
                            • Очень большой Postgres

                              Так уж случилось, что последнее время приходилось заниматься оптимизацией и масштабированием различных систем. Одной из задач было масштабирование PostgreSQL. Как обычно происходит оптимизация БД? Наверное, в первую очередь смотрят на то, как правильно выбрать оптимальные настройки для работы и какие индексы можно создать. Если обойтись малой кровью не вышло, переходят к наращиванию мощностей сервера, выносу файлов журнала на отдельный диск, балансировке нагрузки, разбиению таблиц на партиции и к всякого рода рефакторингу и перепроектированию модели. И вот уже все идеально настроено, но наступает момент, когда всех этих телодвижения оказывается недостаточно. Что делать дальше? Горизонтальное масштабирование и шардинг данных.


                              Читать дальше →
                            • Зарабатывающая идея реального форекс-робота

                                Общеизвестно, что заработать на форекс невозможно. Изменения курсов валют носят случайный характер, а комиссия брокера уменьшает вероятность положительного итогового заработка, часто делая ее совсем непривлекательной, ― ниже, чем в казино, например. Тем не менее, я содержу себя и свои проекты исключительно за счет форекс уже три года, я шел к этому около 7 лет и, вспоминая этот путь, решил написать заметку для тех, кого привлекает эта антинаучная возможность заработка.

                                Речь пойдет не о чудесных Граалях, продаваемых в интернете, не о высокочастотной торговле и не о «безрисковых» вложениях в мифические ТОП-20 лучших трейдеров. Только хардкор: мы проводим многочисленные торговые операции, кто-то вручную, кто-то ― автоматически, и получаем в результате этих операций положительный прирост счета при статистически значимом количестве сделок.
                                Читать дальше →
                              • На сайте знакомств Ashley Madison работала армия женщин-ботов

                                  Журналист и аналитик Фонда электронных рубежей Аннели Ньювиц (Annalee Newitz) продолжает изучение исходников сайта знакомств Ashley Madison, которые попали в открытый доступ в августе 2015 года (официальный пост от хакеров из Impact Team со ссылкой на торрент в дарквебе).

                                  В прошлый раз Аннели изучила базу данных, в которой были колонки с названиями “bc_email_last_time,” “bc_chat_last_time” и “email_reply_last_time” — с указанием даты и времени для каждого пользователя. Сначала Аннели и другие специалисты решили, что таблицы содержат информацию о времени последней активности пользователя на сайте. При этом в ячейках было указано недавнее время преимущественно для мужчин, и очень редко для женщин.

                                  На основании этого был сделан вывод, что на сайте присутствует всего 12 000 активных пользователей-женщин и десятки миллионов мужчин. Это оказалось ошибкой. Реальность оказалась куда более куда более интересной. Как выяснилось в ходе дальнейшего анализа исходников, колонки “bc_email_last_time,” “bc_chat_last_time” и “email_reply_last_time” соответствуют не дате и времени последней активности юзера, а дате и времени, когда с ним последний раз контактировал чатбот.
                                  Читать дальше →