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

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

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



      Константин 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.

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

                • Из 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

                          Читать дальше →
                        • Highcharts: Красивые, динамические чарты за 5 минут!

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

                            Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
                            Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
                            Читать дальше →
                          • Работа с ICQ в Java

                              Предыстория


                              Как-то раз мы решили создать свой собственный микроблоггинг с блекджеком и шлюхами c шахматами и поэтессами. Сначала сделали сайт, но быстро стало понятно, что для реализации идеи его недостаточно. Необходимо было работать с сообщениями через Jabber и ICQ.
                              Начали с простого — с джаббера. Никаких проблем тут не возникло — мы писали на Java, поэтому прикрутили Smack API и все заработало. Но, как это не печально, но самым популярным IM протоколом все еще является ICQ…

                              Задача


                              Итак, задача: залогиниться в ICQ, принимать и отправлять сообщения, понимать X-статусы, работать с кириллицей.

                              Рассмотрим пути решения.
                              Читать дальше →
                            • QIP 2008 concept

                                Хочу сразу предупредить, что я не программер и не знаю насколько возможно реализовать нижележащие фишки, но тем не менее таковые есть.

                                Стартовый вид контакт-листа

                                Изначально я захотел попробовать сделать новый скин для квипа, но в итоге получился новый концепт, которым хочется поделиться с разработчиками и внести свой вклад в развитие популярного меседжера.
                                Читать дальше →
                              • Про Git на пальцах (для переходящих с SVN)

                                  Год назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
                                  Читать...