• Самое главное о нейронных сетях. Лекция в Яндексе

      Кажется, не проходит и дня, чтобы на Хабре не появлялись посты о нейронных сетях. Они сделали машинное обучение доступным не только большим компаниям, но и любому человеку, который умеет программировать. Несмотря на то, что всем кажется, будто о нейросетях уже всем все известно, мы решили поделиться обзорной лекцией, прочитанной в рамках Малого ШАДа, рассчитанного на старшеклассников с сильной математической подготовкой.

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



      Константин klakhman Лахман закончил МИФИ, работал исследователем в отделе нейронаук НИЦ «Курчатовский институт». В Яндексе занимается нейросетевыми технологиями, используемыми в компьютерном зрении.

      Под катом — подробная расшифровка со слайдами.
      Читать дальше →
    • Аппаратный менеджер паролей или как перестать вводить пароли и начать жить

      Меня зовут %username%, мне n лет и я параноик. И каждый день информационный мир усложняет мне жизнь. Технологий становится больше, порог вхождения в IT снижается, и мы получаем действительность, где грубые ошибки в безопасности это нормально. А еще и мощность вычислительной техники растет с каждым годом. В итоге наши пароли, хранимые как получится, становятся достоянием общественности.

      Безопасность не мертва, но инкапсулирована и агонизирует. И с каждым годом стук по крышке черного ящика все тише, а сдавленные вопли и вовсе больше не слышны. Уж больно много абстракций поверх.

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

      Поэтому мы придумали свой хакерский подход к хранению и вводу паролей.



      Кратко: телефон связан через Bluetooth со специальным девайсом, который эмулирует клавиатуру. Утеря девайса и телефона не позволяют получить паролей. Утеря девайса и мастер-пароля тоже не страшны. Как так? Добро пожаловать под кат (там 7 картинок, но они красивенькие).
      Читать дальше →
    • Размер Java объектов

        Знаете сколько в памяти занимает строка? Каких только я не слышал ответов на этот вопрос, начиная от «не знаю» до «2 байта * количество символов в строке». А сколько тогда занимает пустая строка? А знаете сколько занимает объект класса Integer? А сколько будет занимать Ваш собственный объект класса с тремя Integer полями? Забавно, но ни один мой знакомый Java программист не смог ответить на эти вопросы… Да, большинству из нас это вообще не нужно и никто в реальных java проектах не будет об этом думать. Но это, ведь, как не знать объем двигателя машины на которой Вы ездите. Вы можете быть прекрасным водителем и даже не подозревать о том, что значат цифры 2.4 или 1.6 на вашей машине. Но я уверен, что найдется мало людей, которые не знакомы со значением этих цифр. Так почему же java программисты так мало знают об этой части своего инструмента?

        Integer vs int

        Все мы знаем, что в java — everything is an object. Кроме, пожалуй, примитивов и ссылок на сами объекты. Давайте рассмотрим две типичных ситуации:
        //первый случай
        int a = 300;
        //второй случай
        Integer b = 301;
        

        В этих простых строках разница просто огромна, как для JVM так и для ООП. В первом случае, все что у нас есть — это 4-х байтная переменная, которая содержит значение из стека. Во втором случае у нас есть ссылочная переменная и сам объект, на который эта переменная ссылается. Следовательно, если в первом случае мы определено знаем, что занимаемый размер равен:
        sizeOf(int)
        

        то во втором:
        sizeOf(reference) + sizeOf(Integer)
        

        Забегая вперед скажу — во втором случае количество потребляемой памяти приблизительно в 5 раз больше и зависит от JVM. А теперь давайте разберемся, почему разница настолько огромна.

        Из чего же состоит объект?

        Прежде чем определять объем потребляемой памяти, следует разобраться, что же JVM хранит для каждого объекта:
        • Заголовок объекта;
        • Память для примитивных типов;
        • Память для ссылочных типов;
        • Смещение/выравнивание — по сути, это несколько неиспользуемых байт, что размещаются после данных самого объекта. Это сделано для того, чтобы адрес в памяти всегда был кратным машинному слову, для ускорения чтения из памяти + уменьшения количества бит для указателя на объект + предположительно для уменьшения фрагментации памяти. Стоит также отметить, что в java размер любого объекта кратен 8 байтам!

        Читать дальше →
      • Тестирование в Java. JUnit

        • Tutorial

        Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

        Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.

        Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

        Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
        Читать дальше →
      • Третий Яндекс.Старт

        • Из RSS
        15 марта в московском офисе Яндекса прошел третий Яндекс.Старт, в котором приняли участие семь проектов: KuponGid.ru, Kinobaza.tv, TimeLiner.ru, ДзенМани, LinguaLeo.ru, Krible.ru и Social Market.



        Третий Яндекс.Старт существенно отличался от двух предыдущих. Мы отказались от схемы сотрудничества со стартап-сообществами, при которой на одно мероприятие проекты для нас искал только один партнер. Теперь проекты для Старта подбирают больше десяти партнеров в России и в Украине. Самыми продуктивными на этот раз оказались бизнес-инкубатор «Ингрия» и бизнес-инкубатор ГУ ВШЭ. Кроме того, с недавних пор мы начали принимать заявки от проектов напрямую.

        География проектов расширилась: помимо московских, в этом Яндекс.Старте участвовали проекты из Петербурга, Екатеринбурга и Киева.

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

        Дискуссия получилась действительно интересной, и зал оставался полным до самого конца. После мероприятия авторы проектов могли в неформальной обстановке пообщаться с яндексоидами, в том числе с Аркадием Воложем и Ильей Сегаловичем.

        Мы желаем успеха всем участникам Старта и продолжаем общаться с некоторыми представленными проектами. И так как попасть на нынешний Яндекс.Старт было очень непросто, за этот маленький подвиг авторы  проектов получили сертификаты на участие в тренинге Start in Garage, который проводит в разных городах России наш партнер RIS Ventures.

        Команда Яндекс.Старта.
      • Масштабирование нагрузки web-приложений

          С ростом популярности web-приложения его поддержка неизбежно начинает требовать всё больших и больших ресурсов. Первое время с нагрузкой можно (и, несомненно, нужно) бороться путём оптимизации алгоритмов и/или архитектуры самого приложения. Однако, что делать, если всё, что можно было оптимизировать, уже оптимизировано, а приложение всё равно не справляется с нагрузкой?
          Читать дальше →
        • Кинобаза год спустя: каким должен быть сайт о кино


            Год назад я рассказал здесь же, на Хабре, про первую версию Кинобазы.

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

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

            дочитать пост и посмотреть комментарии
          • Персональные данные (Краткий FAQ)


              Что такое персональные данные?


              Персональные данные - любая информация, относящаяся к определенному или определяемому на основании такой информации физическому лицу, в том числе:  
              — его фамилия, имя, отчество, 
              — год, месяц, дата и место рождения, 
              — адрес, семейное, социальное, имущественное положение, образование, профессия, доходы, 
              другая информация (см. ФЗ-152, ст.3).
              Например: паспортные данные, финансовые ведомости, медицинские карты, год рождения (для женщин), биометрия, другая идентификационная информация личного характера.
              В общедоступные источники персональных данных (адресные книги, списки и другое информационное обеспечение) с письменного согласияфизического лица могут включаться его фамилия, имя, отчество, год и место рождения, адрес, абонентский номер и иные персональные данные (см. ФЗ-152, ст.8).
              Персональные данные относятся к информации ограниченного доступа и должны быть защищены в соответствии с законодательством РФ. При формировании требований по безопасности систем персональные данные разделяют на 4 категории.
              Читать дальше →
            • 10 лучших игр для Ubuntu

                Большинство тех, кто перешел с операционных систем Windows или Mac OS на Ubuntu, сталкиваются с тем, что их любимые игры не работают на Ubuntu. И дело в том, что игровые студии мало обращают внимания на платформу Linux по причине того, что ОС Windows имеет большее распространение, а также существует мнение, что дистрибутивы на базе Linux мало распространены и нестабильны. Именно для этого создавалась Ubuntu, в которой реализован дружественный интерфейс для пользователя и достаточная стабильность.
                Данный топик основан на старой записи в блоге LinuxGames07 и содержит обзор десяти лучших игр для Ubuntu, а также способ установки, скриншот и видео об игре и её описание.

                1.Tremulous



                image

                Многопользовательская игра, смесь жанров 3D-action (FPS) и стратегии реального времени (RTS). Игра работает на базе игрового движка Quake III и изначально создавалась как модификация (мод) к игре Quake III.


                Установка:
                sudo apt-get install tremulous
                Читать дальше →
              • Блокируем китайцев

                  Ниже пойдет текст достойный пера К.О.

                  Китайский трафик велик и беспощаден. Когда какая-нибудь смешная или не очень картинка попадает в китайские блоги, провайдер colocation начинает обижаться и рассказывать про несоответствие соотношений 3 к 2 российского и зарубежного трафика.

                  В очередной раз словив попадание ню фотосета с одного из проектов на просторы чайнанета (боже мой, сколько у них популярных блогов) и посчитав, во что может выльется эта экспансия на восток, решил ограничить наших глубокоуважаемых желтокожих братьев по планете.

                  Примеров реализации есть несколько (ngx_http_geo_module, ngx_http_geoip_module или обычным deny), наиболее эффективный с помощью ngx_http_geo_module и базы wipmania (http://www.wipmania.com/ru/base/)

                  Облегчение на одном из серверов.
                  image

                  Читать дальше →