• Как сжать модель fastText в 100 раз

      Модель fastText — одно из самых эффективных векторных представлений слов для русского языка. Однако её прикладная польза страдает из-за внушительных (несколько гигабайт) размеров модели. В этой статье мы показываем, как можно уменьшить модель fastText с 2.7 гигабайт до 28 мегабайт, не слишком потеряв в её качестве (3-4%). Спойлер: квантизация и отбор признаков работают хорошо, а матричные разложения — не очень. Также мы публикуем пакет на Python для этого сжатия и примеры компактной модели для русских слов.


      Читать дальше →
      • +43
      • 11.7k
      • 4
    • SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

      • Tutorial
      image

      SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
      — Да!
      • Хотите скрыть наличее у вас некоторых сервисов?
      • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
      • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
      • SSH подключение к своему серверу из стран с цензурой?

      На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

      В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
      Читать дальше →
    • Новый MTProto-прокси сервер от Telegram

      • Tutorial
      Прокси-сервер является посредником между клиентом и сервером. Для обхода ограничений прокси-сервер должен быть установлен там, где нет ограничений доступа к требуемой информации, при этом не должно быть таковых ограничений и между клиентом и прокси-сервером.

      image

      Обновлённая поддержка прокси-серверов в клиентах Telegram


      • Новый MTProto-прокси. Работает с родным для Telegram протоколом MTProto
      • Открытый исходный код сервера на GitHub
      • Docker-образ на DockerHub
      • В мобильных клиентах появилась возможность добавлять несколько прокси-серверов каждого типа. Пользователь может выбрать наиболее подходящий
      Читать дальше →
    • Telegram MTPROTO Proxy — всё что мы знаем о нём

        image

        Сразу после событий с блокировками Telegram в Иране и России, в бета-версиях мессенджера начал появлятся новый тип Proxy, а если быть точным, новый протокол — MTProto Proxy.

        Этот протокол был создан командой Telegram для решения проблем обхода блокировок, но так ли он хорош?
        Читать дальше →
      • Универсальный API для получения информации по чекам

          UPD: после обновления на стороне ФНС АПИ перестал работать.


          Соответствующая задача создана. Как будет время посмотрю.

          Привет жителям Хабра.

          В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.

          Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде

          t=20180518T220500&s=975.88&fn=8710000101125654&i=99456&fp=1250448795&n=1

          Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.
          Читать дальше →
        • Обработка изображений: Tensorflow Object Detection API

          • Tutorial
          Последние несколько лет в развитии глубоких нейронных сетей происходит настоящая революция: возникают новые архитектуры, совершенствуются фреймворки для разработчиков, а железо для экспериментов можно получить совершенно бесплатно — например, в рамках проекта Google colaboratory. Всем, кому интересно как применить предобученные модели из репозитория Tensorflow Object Detection API к решению своей задачи, используя мощности Colaboratory — добро пожаловать под кат.

          Если не хочется читать статью — можно сразу познакомиться с ноутбучеком в репозитории
          Читать дальше →
          • +10
          • 19.5k
          • 2
        • Мысли про порог входа в технологии в 2018, пример простого мобильного приложения и не только

          • Tutorial

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

          В этой короткой статье я на примере простого мобильного приложения для iPhone хочу показать, насколько доступны технологии.
          Читать дальше →
        • Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН»

          Ну ладно, про «полюбил» — это преувеличение. Скорее «смог сосуществовать с».


          Как вы все знаете, с 16 апреля 2018 года Роскомнадзор крайне широкими мазками блокирует доступ к ресурсам в сети, добавляя в "Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено" (по тексту — просто реестр) по /10 иногда. В результате граждане Российской Федерации и бизнес страдают, потеряв доступ к необходимым им совершенно легальным ресурсам.


          После того, как в комментариях к одной из статей на Хабре я сказал, что готов помочь пострадавшим с настройкой схемы обхода, ко мне обратились несколько человек с просьбой о такой помощи. Когда у них всё заработало, один из них порекомендовал описать методику в статье. Поразмыслив, решил нарушить свое молчание на сайте и попробовать в кои-то веки написать что-то промежуточное между проектом и постом в Facebook, т.е. хабрапост. Результат — перед вами.

          Читать дальше →
        • «Герои Меча и Магии» в браузере: долго, сложно и невыносимо интересно

            Как реализовать в браузере игру, на которой годы назад залипал без всякого браузера? С какими сложностями столкнёшься в процессе, и как их можно решить? И, наконец, зачем вообще это делать?

            В декабре на конференции HolyJS Александр Коротаев (Tinkoff.ru) рассказал, как он сделал браузерную версию «Героев». Ранее уже появилась видеозапись доклада, а теперь для Хабра мы сделали ещё и текстовую версию. Кому удобнее видео — запускайте ролик, а кому текст — читайте его под катом:

            Читать дальше →
          • Упали с AWS? Заезжайте без вопросов, документы потом, сейчас не до того

              Пока я ехал на работу и слушал новый альбом Дельфина, кто-то блокировал IP адреса Amazon и Google целыми подсетями. Роскомнадзор назвал недостоверной информацию о блокировании сайтов, не имеющих отношения к Telegram, но арендующих IP-адреса на тех же, что и мессенджер, сервисах, и создал горячую линию для противодействия распространения таких сообщений.

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

              Если очень коротко — мы умеем быстро мигрировать из AWS. У нас совместимый API. Мигрировать клиентов из Google тоже можем. И в ближайшие недели мы готовы делать миграцию бесплатно и давать месяц на тесты в нашем облаке без договора и без гарантийного письма, просто по карточке компании. Не понравится — ничего платить не надо.

              Ниже — howto для разных типов выгрузки ВМ с Амазона.
              Читать дальше →
            • Почему не нужно всегда получать согласие на обработку персональных данных в рамках GDPR

                Статья для тех, у кого клиенты в Евросоюзе. Я работаю юристом в компании ISPsystem и уже пару месяцев разбираюсь в тонкостях GDPR. В этой статье поделюсь своими мыслями о нем и расскажу, почему не надо по любому поводу спрашивать у клиента разрешение на обработку персональных данных.



                Лайфхак по 152-ФЗ


                Для начала небольшое, но важное отступление.

                Недавно знакомый из торговой компании попросил посмотреть их договор с веб-студией. Те собирались дорабатывать сайт магазина. Первым делом я открыл техзадание и увидел, что ребята планируют зарегистрировать владельца сайта в Роскомнадзоре как оператора персональных данных. Я подумал: «Они это серьезно?» И сам же ответил: «К сожалению, да».
                Читать дальше →
              • GDPR. Практические советы

                Все слышали о General Data Protection Regulation (GDPR) (Regulation (EU) 2016/679), который вступает в силу 25 мая 2018 года. Штрафы большие и придётся соответствовать. Как и любой официальный документ, он написан сухо и может трактоваться по-разному. За последние полгода провел анализ десятка различных веб-систем на соответствие GDPR, и везде встречались одни и те же проблемы. В связи с этим цель этой статьи не разъяснить, что такое GDPR (об этом уже много написано), а дать практические советы техническим людям, что необходимо сделать в вашей системе, чтобы она соответствовала GDPR.

                Пару интересных моментов по регламенту:

                • Если есть хоть один клиент из Европы, чьи персональные данные вы храните, вы автоматически попадаете под GDPR
                • Регламент базируется на трёх основных идеях: защита персональных данных, защита прав и свобод людей в защите их данных, ограничение перемещения персональных данных в рамках Евросоюза (Art. 1 GDPR)
                • UK всё ещё в EU, поэтому подпадает под действие GDPR, после Brexit-а GDPR будет заменён на Data Protection Bill, который по своей сути очень схож с GDPR (https://ico.org.uk/for-organisations/data-protection-bill/)
                • Серьезно ограничивается трансфер данных в третьи страны. Европейская комиссия определяет, в какие “третьи” страны или в какие сектора или организации в этих странах разрешён трансфер персональных данных Art. 45 GDPR. Вот список разрешённых стран.
                Читать дальше →
              • Операционные системы с нуля; уровень 2 (старшая половина)

                • Tutorial

                Пришло время написать файловую систему. Файловая система сама себя не напишет. В этой половинке лабы мы таки реализуем файловую систему FAT32, прикрутим к ней драйвер SD-карты и чуть-чуть повзаимодействуем с ней через нашу интерактивную оболочку.


                Нулевая лаба


                Первая лаба: младшая половина и старшая половина


                Младшая часть. Продолжение под катом.

                Читать дальше →
                • +47
                • 34k
                • 4
              • Как решить 90% задач NLP: пошаговое руководство по обработке естественного языка

                • Translation
                Неважно, кто вы — зарекомендовавшая себя компания, или же только собираетесь запустить свой первый сервис — вы всегда можете использовать текстовые данные для того, чтобы проверить ваш продукт, усовершенствовать его и расширить его функциональность.

                Обработкой естественного языка (NLP) называется активно развивающаяся научная дисциплина, занимающаяся поиском смысла и обучением на основании текстовых данных.

                Как вам может помочь эта статья


                За прошедший год команда Insight приняла участие в работе над несколькими сотнями проектов, объединив знания и опыт ведущих компаний в США. Результаты этой работы они обобщили в статье, перевод которой сейчас перед вами, и вывели подходы к решению наиболее распространенных прикладных задач машинного обучения.

                Мы начнем с самого простого метода, который может сработать — и постепенно перейдем к более тонким подходам, таким как feature engineering, векторам слов и глубокому обучению.

                После прочтения статьи, вы будете знать, как:

                • осуществлять сбор, подготовку, и инспектирование данных;
                • строить простые модели, и осуществлять при необходимости переход к глубокому обучению;
                • интерпретировать и понимать ваши модели, чтобы убедиться, что вы интерпретируете информацию, а не шум.

                Пост написан в формате пошагового руководства; также его можно рассматривать в качестве обзора высокоэффективных стандартных подходов.
                Читать дальше →
              • Знакомство с гео-библиотекой S2 от Google и примеры использования

                  Привет, Хабр!

                  Меня зовут Марко, я работаю в Badoo в команде «Платформа». Не так давно на GopherCon Russia 2018 я рассказывал, как работать с координатами. Для тех, кто не любит смотреть видео (и всех интересующихся, конечно), публикую текстовый вариант своего доклада.



                  Введение


                  Сейчас у большинства людей в мире есть смартфон с постоянным доступом в Интернет. Если говорить в цифрах, то в 2018 году смартфон будет у почти 5 млрд людей, и 60% из них пользуются мобильным Интернетом.

                  Это огромные числа. Компаниям получать координаты пользователей стало легко и просто. Эти лёгкость и доступность породили (и продолжают порождать) огромное количество сервисов, основанных на координатах.

                  Всем нам известны компании типа Uber, игры, покорившие мир, такие как Ingress и Pokemon Go. Да что уж там, в любом банковском приложении есть возможность увидеть банкоматы или скидки поблизости.

                  Мы в Badoo также очень активно используем координаты, чтобы предоставлять своим пользователям лучший, актуальный и интересный для них сервис. Но о каком именно использовании идёт речь? Давайте посмотрим на примеры сервисов, которые у нас есть.
                  Читать дальше →
                • Щи, или Распознавание 330 млн лиц на скорости 400 фото / сек

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


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


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


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

                    Распознавание лиц Одноклассников в деталях
                  • Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф

                    • Tutorial

                    Однажды я наткнулся на интерактивную карту lastfm и решил обязательно сделать подобный проект для фильмов. Под катом история о том, как собрать данные, построить граф и создать своё интерактивное демо на примере данных с кинопоиска и imdb. Мы рассмотрим фреймворк для скрапинга Scrapy, пробежимся по методам визуализации больших графов и разберёмся с инструментами для интерактивного отображения больших графов в браузере.

                    Читать дальше →
                  • Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

                    • Tutorial
                    Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

                    Что мы будем рассматривать в данной статье?

                    В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
                    В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
                    В Части 6 — послесловие
                    Читать дальше →
                  • Как раз и навсегда разобраться с неправильными глаголами в английском

                    • Tutorial
                    Изучающие английский язык рано или поздно сталкиваются с неправильными глаголами: ненавистной как минимум сотней необходимых в быту глаголов, которые имеют по три формы. И все эти три формы надо зубрить, зубрить, зубрить! Неужели английский без них не может обойтись? И вообще, почему в русском неправильных глаголов нет, а в английском есть? Можно ли как-нибудь обойтись без них? Для ответов на все эти вопросы нам надо обратиться к истории языка.


                    Читать дальше →
                  • Нейросеть Google Translate составила единую базу смыслов человеческих слов


                      «Универсальный язык» нейронной сети Google Neural Machine Translation (GNMT). На левой иллюстрации разными цветами показаны кластеры значений каждого слова, справа внизу — смыслы слова, полученные для него из разных человеческих языков: английского, корейского и японского

                      За последние десять лет система автоматического перевода текстов Google Translate выросла с нескольких языков до 103, а сейчас она переводит 140 млрд слов ежедневно. В сентябре сообщалось, что разработчики приняли решение полностью перевести сервис Google Translate на глубинное обучение. У этого подхода есть много преимуществ. Перевод становится гораздо лучше. Более того, система может переводить тексты на языки, для которых никогда не видела переводов, то есть не обучалась специально для этой языковой пары.
                      Читать дальше →