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

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

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



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

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

        Данная статья является кратким конспектом по книге "Andre Kukla: Mental Traps"

        Ментальные ловушки — это так называемые грабли, на которые мы наступаем снова и снова. Безусловно каждый нормальный человек хочет, чтобы этот «неудачный шаг» в его деятельности был последним и больше не повторялся.

        С «граблями» или ментальными ловушками можно легко справиться, если они лежат перед вами во всей красе, безо всякой маскировки. Но так бывает далеко не всегда и зачастую мы не видим и не понимаем в чем заключаются наши ошибки. Целью этой статьи является знакомство с наиболее «популярными» ментальными ловушками, которые Андре Кукла описал в своей книге.
        Читать дальше →
      • Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени)

        • Перевод

        1. Части I, II (синглплеер с авторитарным сервером)
        2. Часть III (Появление врага)
        3. Часть IV (Хэдшот!)

        Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.

        Текущий алгоритм работы мультиплеера


        • Сервер получает команды с клиентов и времена их отправления
        • Сервер обновляет состояние мира
        • Сервер с некоторой частотой отправляет свое состояние всем клиентам
        • Клиент отправляет команды и локально воспроизводит их результат
        • Клиент получает обновленные состояния мира и:
          • Применяет состояние от сервера
          • Заново применяет все свои команды, которые сервер не успел применить.
          • Интерполирует предыдущие состояния других игроков
        • С точки зрения игрока, есть два серьезных последствия:
          • Игрок видит себя в настоящем
          • Игрок видит других в прошлом.

        Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если хочется разнести врагу башку!
        Читать дальше →
      • .NET-разработка: девять вопросов взрослым

          .NET становится по-настоящему кроссплатформенным: после долгого ожидания наконец объявлена дата релиза ASP.NET Core, JetBrains готовит альтернативу Visual Studio на базе ReSharper и IDEA, Microsoft приобрела Xamarin, сделала Xamarin Community бесплатной, а Mono перевела на MIT-лицензию и наконец, Windows Server 2016 получит поддержку Windows-контейнеров в Docker.

          С новыми возможностями нас встречают новые вызовы:
          • Как будет работать один и тот же код под .NET Core и Mono, на Windows и Linux, в docker-контейнере?
          • Стоит ли переходить на .NET Core уже сейчас и как получить максимум от новой платформы?
          • Какие перспективы у Mono и Xamarin?
          • Какие изменения произошли «под капотом» .NET с переходом на Roslyn и .NET Core?

          Всего через три недели на конференции DotNext в Питере 20 спикеров выступят с докладами о настоящем и будущем платформы .NET, об оптимизации производительности и многопоточности, о внутреннем устройстве платформы .NET и CLR, о профилировании и отладке .NET-кода.

          А пока мы попросили четырех из них поделиться своим опытом и мнениями о грядущих изменениях в мире .NET. На наши вопросы ответили:

          • Ведущий мировой эксперт по производительности .NET-платформы, восьмикратный Microsoft MVP, автор прекрасной книги по производительности .NET «Pro .NET Performance» Саша Голдштейн;
          • Главный разработчик протокола реактивного многопроцессного взаимодействия в Rider Дмитрий Иванов из JetBrains;
          • Ещё один разработчик Rider’a из компании JetBrains, .NET MVP, к.ф.-м.н., серебряный призёр ACM ICPC, постдок в Вейцмановском институте науки Андрей Акиньшин;
          • CTO Promarket и эксперт в области Mono и Linux Никита Цуканов.
          Читать дальше →
        • Данные на фронтенде: шаг к приложениям будущего

            Клиент-серверная архитектура для разработчиков веб-приложений — это примерно как одна из черепах, на которой стоял мир в воззрениях наших предков. Трудно себе представить иное положение вещей. Однако бесчисленное количество веб-приложений сформировало новую потребность — управление данными на фронтенде. Пока нет единого подхода и реализации, есть только отдельные технологии, позволяющие работать с данными на клиенте. Да и с ними никто особо не заморачивается. А между прочим, пора. О том, что уже есть в плане работы с данными на фронтенде и что будет дальше, мы поговорили с Никитой Прокоповым aka tonsky.


            Читать дальше →
          • Security Week 26: Слив данных через вентилятор, ядро iOS расшифровали, криптолокер на парольных архивах

              Есть такая категория исследований в области ИБ, которую я называю «страшилками из будущего». Ни в коем случае не хочу умалять достоинства таких исследований: часто бывает так, что угроза, считающаяся очень теоретической, лет через десять после исследования становится вполне реальной. Конечно же, это всегда происходит неожиданно. К подобным потенциальным уязвимостям можно отнести, например, перепрограммирование контроллеров USB, атаки на алгоритмы, используемые для шифрования данных, и даже, например, уязвимость в USB-приемниках для беспроводных клавиатур и мышей. Последний пример особенно показателен: это вовсе не теоретическая атака, но все же очень трудоемкая. Пока есть методы проще, сложными пользоваться не будут. Или лучше по-другому сказать: момент, когда такими методами все же начнут пользоваться, ознаменует качественно новый уровень защищенности IT-систем. Куда более продвинутый, чем сейчас.

              Так вот, исследователи из израильского Университета имени Бен-Гуриона показали новую атаку такого типа, которая теоретически позволяет проникнуть в air-gapped системы. Air-gapped — это такой устоявшийся термин для компьютерной инфраструктуры на критически важных объектах, которая с целью максимальной защиты отключена и от интернета, и от менее важных сетей того же предприятия. Уже давно понятно, что этот метод — не панацея, смотрите пример Stuxnet, который очевидно заражал такие тщательно охраняемые системы, распространяясь на USB-флешках («Привет, я тут фильм скачал новый, на посмотри пока на работе сидишь»).

              Предположим, что в ответственных конторах после этого случая залили эпоксидкой все разъемы. Стало ли безопаснее? Не совсем. В исследовании (Исходник в PDF, статья на Wired) показано, как можно сливать данные с защищенного компьютера, изменяя скорость вращения вентилятора на процессоре.
              Все выпуски сериала — тут.
              Читать дальше →
              • +12
              • 20,9k
              • 6
            • Яндекс анонсирует собственную технологию прогнозирования погоды Метеум. С точностью до дома

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

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



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

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

                Сейчас в мире есть несколько основных моделей, по которым предсказывают погоду. Например, модель с открытым исходным кодом WRF, модель GFS, которые изначально являлись американской разработкой. Сейчас ее развитием занимается агентство NOAA.
                Читать дальше →
              • Будущее влияет на прошлое? Учёные подтвердили мысленный квантовый эксперимент Уилера на примере отдельных атомов

                  image
                  Профессор Эндрю Траскот и студент Роман Хакимов отважно заглядывают в квантовый мир

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

                  Этот принцип — один из фундаментальных законов, который мало кто оспаривает. Хотя многие физические величины и явления не меняются, если мы обратим время вспять (являются Т-чётными), существует фундаментальный эмпирически установленный принцип: событие А может влиять на событие Б, только если событие Б произошло позже. С точки зрения классической физики — просто позже, с точки зрения СТО — позже в любой системе отсчёта, т.е., находится в световом конусе с вершиной в А.

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

                  Кроме одного момента — квантовой физики. Там вообще много странного. Вот, например, классический эксперимент с двумя щелями. Если мы поместим препятствие со щелью на пути источника частиц (например, фотонов), а за ним поставим экран, то на экране мы увидим полоску. Логично. Но если мы сделаем в препятствии две щели, то на экране мы увидим не две полоски, а картину интерференции. Частицы, проходя сквозь щели, начинают вести себя, как волны, и интерферируют друг с другом.
                  Читать дальше →
                • Оптическая компенсация

                  • Перевод


                  В начале моего дизайнерского пути я полагался исключительно на Photoshop и CSS в вопросах правды и лжи. Если Photoshop утверждал, что две фигуры выровнены, то значит, они выровнены. Если две разные фигуры были разного размера, то так и было. Если два цвета имели одинаковые hex коды, то они выглядели одинаково.

                  Такой подход казался мне логичным, но он оказался неверным.

                  Вычисления, осуществляемые программой, разумны, но программа не может учесть человеческое восприятие фигуры, цвета и размера. Кроме этого, программа не может понять взаимоотношения объектов, их место в общем визуальном контексте или то, как человек воспримет этот объект.

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

                  Давайте взглянем на небольшое количество показательных примеров.
                  Читать дальше →
                • Сайт без бекэнда: аутентификация пользователя в BaaS parse.com через социальные сети

                  • Tutorial
                  Я буду каждое утро развертывать мир, как резиновую ленту на мяче для гольфа, а вечером завертывать обратно. Если очень попросишь — покажу, как это делается.
                  Р. Брэдбери

                  UPDATE: Parse не будет работать к 2017 году.

                  Введение


                  В статье описан Backend-as-a-Service подход к хранению и обработки данных. Рассказаны преимущества и недостатки представителя такого подхода — сервиса parse.com. Коротко представлен сервис аутентификации пользователей через соц. сети uLogin. Основное назначение — показать, как эти два сервиса могут взаимодействовать, чтобы проект не требовал регистрации пользователей по логину и паролю, но в то же время сохранилась возможность авторизации пользователей к действиям над объектами.

                  О BaaS и parse.com


                  Parse.com — один из самых популярных провайдеров backend-as-a-service (BaaS). BaaS подход позволяет не поднимать свой сервер для хранения и обработки данных приложения. Это используется в мобильных разработках и в обычном вебе. Parse.com имеет свои SDK под несколько платформ, в том числе серверных. Но я расскажу о javascript.

                  Возможность работать с базой данных через javascript, не поднимая свой сервер, открывает отличные возможности, например, для Single page application (SPA), которое можно хостить на Github Pages, Bitbucket и многих других бесплатных. Первый вопрос, который у меня возник, когда я услышал про работу с БД из клиентского кода — это разграничение прав доступа, так как ключи общеизвестны. Изучив документацию parse.com, я выяснил, что для этого используется авторизация пользователей. Каждый пользователь имеет свой логин и пароль. SDK имеет методы регистрации нового пользователя по логину и паролю, аутентификации по этим же данным. Можно добавить email, при этом сам parse.com умеет отправлять настраиваемые письма для верификации email.
                  Читать дальше →
                • Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

                    Вступление


                    Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

                    Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

                    Надеюсь что эта статья будет полезна:
                    1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
                    2. Профессионалам, которые хотят закрыть «дыры» и пробелы
                    3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
                    4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

                    Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
                    Читать дальше →
                  • Как реализовать почти мгновенное переключение сайта между площадками, когда одна упала

                      image

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

                      Пару лет назад я понял, что услуга резервной площадки (без доработки их сайта или сервиса) очень важна клиентам. Теоретически тут всё просто:
                      1. Иметь копию всех данных в другом дата-центре.
                      2. При сбое переключать работу на резервный ДЦ.

                      На практике система пережила 2 полные технические реорганизации (сохранение основных идей со сменой значительной части инструментария), 3 переезда на новое оборудование, 1 переезд между поставщиками услуг (переезд из немецкого дата-центра в два российских). На исследование поведения разных систем в реальных условиях под клиентской нагрузкой ушло 2 года.
                      Читать дальше →
                    • Взлом биткоин биржи на Rails

                        В последнее время появилась масса биткоин сервисов. И то что раньше было проектом «for fun» неожиданно стало хранить десятки и даже сотни тысяч долларов. Цена биткоина выросла, но уровень безопасности биткоин сервисов остался таким же низким.

                        Ради портфолио мы провели бесплатный аудит биткоин биржи с открытым кодом Peatio использующей Ruby on Rails. Репорт в pdf можно скачать тут. Самое интересное что в результате нашлись не очередные унылые рейс кондишены или SQLi, а довольно таки любопытная цепочка багов ведущая к угону аккаунта и краже существенной части горячего кошелька.
                        Читать дальше →
                      • Это правильно, но неверно

                          Специалисты заслуженно не любят задачи и головоломки на собеседованиях. Но мы просто любим порешать такие задачи в свое удовольствие. Вот что мне лично не нравится, так это когда ты получаешь правильный ответ, но при этом твое решение кажется автору неверным. Хочу просто показать решение нескольких популярных подобных задач, которые можно получить в уме и без сложных расчетов и сопоставить их с авторскими верными.
                          Читать дальше →
                        • Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №140 (22 — 28 декабря 2014)

                            Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


                            Читать дальше →
                            • +35
                            • 41,5k
                            • 1
                          • Почему вам НЕ стоит использовать AngularJs

                              Много времени прошло с момента появления AngularJs (в масштабах веб-технологий конечно). Сейчас в интернетах есть огромное количество постов восхваляющих этот фреймворк до небес, что это манна небесная не иначе, а критики не так уж и много как он того заслуживает. Но такие статьи уже потихоньку начинают появляться, и меня это радует, надеюсь индустрия переболеет ангуляром так же, как переболела MooTools, Prototype, %какой-нибудь новый язык под JVM%, %другая-супер-революционная-технология%. Не знаю почему, но в IT-области такие революционные технологии, которые поднимают шум, а потом пропадают, появляются довольно часто. Хороший разработчик должен уметь отличать очередную модную технологию, от работающего инструмента. И для этого очень важно критически смотреть на вещи. Моя статья — это компиляция самых весомых выводов из других статей, и моих личных умозаключений. Ангуляр создает хороший вау-эффект, когда видишь его впервые: «ух ты, я написал ng-repeat, и реализовал эту логику одними тегами и все само обновляется!», но как только приходится реализовывать реальные приложения, а не очередной TODO-лист, то все становиться очень печально. Сразу хочу сказать, что фреймворк я знаю хорошо, даже больше чем мне хотелось бы его знать, я программировал на нем в течении 2 лет. И для следующего проекта я его точно не выберу, и это хорошо, все мы учимся на ошибках. Так что же не так с ангуляром? Тут нет однозначного ответа, слишком много разных недостатков, которые создают такой облик фреймворку. Если одним словом – непродуманная архитектура. Под катом я привожу конкретику, так что устраивайтесь поудобнее. ДА НАЧНЕТСЯ ХОЛЛИ ВАР!
                              Читать дальше →
                            • Учебник AngularJS: Всеобъемлющее руководство, часть 1

                              • Перевод
                              • Tutorial

                              Содержание


                              1 Введение в AngularJS
                              2 Engineering concepts in JavaScript frameworks
                              3 Modules
                              4 Understanding $scope
                              5 Controllers
                              6 Services and Factories
                              7 Templating with the Angular core
                              8 Directives (Core)
                              9 Directives (Custom)
                              10 Filters (Core)
                              11 Filters (Custom)
                              12 Dynamic routing with $routeProvider
                              13 Form Validation
                              14 Server communication with $http and $resource

                              1 Введение в AngularJS


                              Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

                              MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

                              Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
                              Читать дальше →
                            • SSL-сертификаты: всем, каждому, и пусть никто не уйдёт обиженным

                              Как ранее сообщалось на GeekTimes, EFF при поддержке Mozilla, Cisco, Akamai, IdenTrust и исследователей из Мичиганского университета (University of Michigan) создали новый некоммерческий центр сертификации (Certificate Authority) Let's Encrypt [1]. Целью проекта является ускорение перехода всемирной паутины от HTTP к HTTPS.
                              Подробности, часть из которых уже была описана на GeekTimes
                            • Эксперимент, который навсегда изменил наше представление о реальности

                              • Перевод
                              Принцип неопределенности говорит, что мы не можем знать определённые свойства квантовой системы в один и тот же момент времени. Например, мы не можем одновременно узнать положение частицы и ее скорость. Но что это говорит нам о реальном мире? Если бы мы могли заглянуть за кулисы квантовой теории, обнаружили бы мы, что объекты действительно обладают определенным положением и скоростью? Или принцип неопределенности означает, что на фундаментальном уровне объекты просто не имеют четкой координаты и импульса одновременно. Другими словами, неполна ли наша теория или реальность «размыта» на самом деле?

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