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

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

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



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

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

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

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

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

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



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

        DDoS-атака — сокращение от Distributed Denial Of Service Attack. Это когда куча зараженных компьютеров посылают на сервер множество запросов. В итоге сервер тратит все свои ресурсы на обслуживание этих запросов и становится практически недоступным для пользователей. Размер атак бывают разные, от крупных может спасти только специалист и Cisco Guard :) и такое решение стоит не менее 1000$/мес. Но такие атаки, слава богу, довольно редкое явление. Чаще всего мы видим простые атаки, которые делают как правило школьники (им же все интересно). Создать свой ботнет не сложно, можно даже купить готовый :). Но такие атаки тоже могут нанести вред нашему веб-проекту. Что же делать если атака маленькая и платить огромные деньги специалисту мы не хотим?
        Читать дальше →
      • Пульт ДУ для ПК

          Однажды мне надоело каждый раз вставать с дивана, чтобы поставить на паузу фильм или трек. И озадачился я выбором пульта ДУ для ПК. Поиск по гуглу показал, что есть множество готовых решений (например такое: http://irlink.ru) но, как мне показалось, везде используется свой проприетарный софт, работающй только под Win. Такое положение дел меня не устраивает, т.к. я использую Ubuntu.
          Читать дальше →
        • Из первых рук про 9c951267

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


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

            О том, что же было и что из этого получилось, дальше.
            Читать дальше →
          • Transport Tycoons

              Достаточно большое количество людей помнят или знают такую, в свое время, культовую игру, как Transport Tycoon и не менее популярное продолжение Transport Tycoon Deluxe от MicroProse Software. А если кто-то не знает эти две игры, то, думаю, эта статья будет им интересно, если им нравятся всякого рода менеджеры.
              В этой статье я хочу поведать об истории этих двух игр, а так же в каком состоянии симулятор данного рода сегодня.
              Читать дальше →
            • Размер 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.

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