• Что читать о нейросетях


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


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


      Ставить перед собой амбициозную цель, с головой бросаться в онлайн-курсы — значит потратить много времени на изучение предмета, который, возможно, вам нужен лишь для общего развития. Есть один проверенный (ретроградный) способ, занимающий по полчаса в день. Книга — офлайновый источник информации. Книга не может похвастаться актуальностью, но за ограниченный период времени даст вам фундаментальное понимание технологии и способов ее возможной реализации под ваши задачи.

      Читать дальше →
    • JavaScript 2016, а можно попроще?

      • Tutorial

      Последние полгода много пишут о неоправданной сложности клиентского JavaScript. Недавняя статья How it feels to learn JavaScript in 2016 и ее перевод на хабре вызвали много внимания, критика во многом справедливая, но...


      Усложнять просто, упрощать сложно. (Один из законов Мерфи)


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


      Как пример используется приложение для работы с коллекцией фильмов. Фильмы отображаются в списке с постраничной выборкой, поиском, сортировкой, редактированием и удалением.


      Использованный стек: create-react-app как сборщик для клиента, React, bootstrap, API с json-server или json-заглушки.



      Работающее демо здесь: Movies List.

      Читать дальше →
    • Как перестать отлаживать асинхронный код и начать жить

        Андрей Саломатин ( filipovskii_off )


        Андрей Саломатин

        Сегодня каждый день появляются новые языки программирования — Go, Rust, CoffeeScript — все, что угодно. Я решил, что я тоже горазд придумать свой язык программирования, что миру не хватает какого-то нового языка…

        Дамы и господа, я представляю вам сегодня Schlecht!Script — чумовой язык программирования. Мы все должны начать им пользоваться прямо сейчас. В нем есть все то, к чему мы привыкли — в нем есть условные операторы, есть циклы, есть функции и функции высших порядков. В общем, в нем есть все, что нужно нормальному языку программирования.

        Что в нем не очень обычно, что может даже оттолкнуть, на первый взгляд, — это то, что в Schlecht!Script функции имеют цвет.
        Читать дальше →
      • Паттерны React

        Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «React Patterns» Майкла Чана, с некоторыми моими примечаниями и дополнениями.

        Прежде всего хотел бы поблагодарить автора оригинального текста. В переводе я использовал понятие «Простой компонент» как обозначение Stateless Component aka Dump Component aka Component vs Container
        Конструктивная критика, а так же альтернативные паттерны и фичи React приветствуются в комментах.

        Оглавление
        • Простые компоненты — Stateless function
        • JSX распределение атрибутов — JSX Spread Attributes
        • Деструктуризация аргументов — Destructuring Arguments
        • Условный рендеринг — Conditional Rendering
        • Типы потомков — Children Types
        • Массив как потомок — Array as children
        • Функция как потомок — Function as children
        • Функция в render — Render callback
        • Проход по потомкам — Children pass-through
        • Перенаправление компонента — Proxy component
        • Стилизация компонентов — Style component
        • Переключатель событий — Event switch
        • Компонент-макет — Layout component
        • Компонент-контейнер — Container component
        • Компоненты высшего порядка — Higher-order component

        Поехали!
        Читать дальше →
      • Оптимизируем свои трудозатраты при разработке приложения в Google Material Design

        • Tutorial


        Данный материал может быть полезен как профессиональным дизайнерам интерфейсов, так и разработчикам, чьи познания в графических пакетах находятся ниже уровня “продвинутого пользователя”.

        Итак, перед нами стоит задача: опираясь на готовые решения в открытом доступе, максимально оптимизировать затраченный труд на разработку приложения в стиле Google Material Design.
        что удалось откопать...
      • Как создавать интерактивные карты

        • Tutorial


        Недавно была опубликована интерактивная карта, отображающая демографические изменения в Европе с 2001 по 2011 год — период, для которого доступна максимально подробная статистика от каждого муниципального образования. С помощью цветовой шкалы обозначается степень убыли или прироста населения буквально в каждой точке Европы (за исключением России и стран СНГ) и Турции.

        Один из разработчиков команды Airbnb принимал участие в работе над созданием этой демографической карты. Хотите узнать, как самостоятельно создать подобный проект? Тогда добро пожаловать под кат.
        Читать дальше →
        • +21
        • 20.7k
        • 2
      • Иммунная система человека: биологический антивирус. Антивирусные базы

          Прошу простить за нереально огромный перерыв после первой части :(

          Линк на первую часть (врожденный иммунитет)

          Итак, нечто, проникшее в организм, было признано враждебным и уничтожено. Но каждый раз определять посторонние сущности по общим неспецифичным признакам — далеко не оптимальная концепция поведения, так как патогены могут выработать систему маскировки, которая предотвратит их обнаружение. Для того, чтобы обнаруживать этих микроорганизмов (а также увеличить эффективность реагирования по отношению ко всем остальным), возникла специфичная (она же приобретенная) иммунная система, которая включает в себя T-лимфоциты и B-лимфоциты, производящие антитела.
          Читать дальше →
        • Внутренняя жизнь клетки и другие проекты студии XVIVO

            image

            После просмотра заметки Наглядно о ДНК удивился тому, что на Хабре этого ещё не было. Решил восполнить пробел. К тому же в коментариях упомянули один из самых популярных роликов, с него и начну.
            В 2006 по заказу Гарвардского университета студией XVIVO была создана серия анимационных видео посвященных биологии клетки. Первый ролик «Внутренняя жизнь клетки» («The inner life of cell») демонстрирует механизм, благодаря которому белые кровяные тельца способны чувствовать окружающую среду и реагировать на внешние сигналы.
            Видео впоследствии опубликовали на сайте Гарвардского университета BioVisions

            UPD: версия с коментариями (на английскийском).

            Подробнее об этой и других анимационных работах XVIVO
          • Отправлятор!

              Сделал микро-AIR-приложение, которое отправляет файлы на хостинг (можно использовать открытые, можно собственные).
              Отправлятор висит в трее, когда надо отправить файл — он кидается на форму отправлятора, и после окончания процесса отправки дается кнопка со ссылкой. Можно также посмотреть весь список файлов на выбранном хостинге.
              По умолчанию отправлятор настроен на общедоступный хостинг файлов, но можно скачать скрипт, расположить его где-то на своем хостинге, и пользоваться приватным.
              Больше подробностей — на сайте отправлятора.
            • Игра Сет

                Есть такая потрясающая настольная (не компьютерная!) игра — Сет (The Set). Генетик Марша Фалко (Marsha Falco) изобрела её, делая пометки во время исследования эпилепсии у немецких овчарок. Игра получилась необычной, чрезвычайно увлекательной и мозгозагружающей. Хабралюдям — самое то! Осторожно: может появиться зависимость.



                Читать дальше →
              • Склеивание фотографий в Photosynth теперь открыто для всех

                  Microsoft открыла для всех пользователей доступ к своему уникальному инструменту создания трёхмерных панорам Photosynth. Теперь каждый желающий может нащёлкать сотню фотографий например, собственной комнаты, загрузить их в Photosynth — и любоваться готовой трёхмерной моделью. Интересно, что для ресурсоёмкого вычислительного процесса Microsoft не использует собственные сервера. Они сделали небольшой модуль, который загружается на ПК пользователя и уже здесь анализирует фотографии (ищет одинаковые объекты), и только потом передаёт их на сервер для окончательного склеивания.

                  Вот эту 3D-модель (на иллюстрации внизу) журналист слепил из 300+ фотографий своей квартиры. Весь процесс полностью автоматизирован. Если что-то непонятно, то есть обучающее видео.



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

                    OFFSystem (Owner-Free File System) — распределённая файловая система, в которой кусочки файлов случайным образом хранятся на разных компьютерах, и никто не имеет определённый файл целиком. Система была создана хакерской группой The Big Hack, которая занимается борьбой с цифровым копирайтом. При использовании OFFSystem на компьютерах участников сети хранятся не файлы с нелегальным контентом, а лишь абстрактные блоки данных, которые не могут считаться объектами, охраняемыми авторским правом. Получить полный файл можно только имея специальную ссылку.

                    Суть подхода в том, что любой файл, защищенный авторскими правами, является набором битов и может быть получен из другого набора битов, на который копирайт уже не распространяется. Например: двоичный файл можно представить в виде числа; если кто-то имеет права на число 12, то числа 5 и 7 мы можем использовать свободно. Что скажете о легальности распространения формулы 5+7?
                    Читать дальше →
                  • Профессиональная иммиграция в Австралию, IT и жизнь на другом континенте

                    Навеяно несколькими хорошими статьями на Хабре, посвященным иммиграции, учебе и работе в разных странах, включая Австралию.

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



                    Читать дальше →
                  • Windows + Tmux + Cygwin

                    Добрый день, хабр!

                    Я давно плотно работаю с Linux системами, но в качестве десктопа предпочитаю Windows. Но для комфортной работы иногда нужно постараться.

                    Сегодня я хочу поделится опытом и впечатлениями о том как я пытался найти замену Tmux под cygwin и как я в конце концов победил Tmux и скомпилировал его под Cygwin + Windows. Кому интересно — прошу под кат.

                    image
                    Читать дальше →
                  • Galaxy Note 2: Альтернативные прошивки. Обзор Cyanogen 10.1 и MIUI

                      image image image

                      Альтернативные прошивки — важная часть использования любого устройства. Кого-то не устраивает набор «лишнего» софта, поставляемый вместе с устройством, кто-то хочет большого количества настроек, кто-то жаждет красивого интерфейса, не похожего на стандартный андроид. В данном обзоре я расскажу о процессе прошивки, покажу и расскажу о основных отличиях двух прошивок(CyanogenMod и MIUI), и немного о настройках кастомного ядра.
                      Содержание:
                      Поехали!
                    • iTunes In-App Purchases со стороны сервера

                        Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

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

                        Читать дальше →
                      • Об одной малоизвестной уязвимости в веб сайтах

                          Первое правило безопасности при разработке Веб приложений гласит: —
                          Не доверять данным пришедшим от клиента.
                          Почти все это правило хорошо знают и соблюдают. Мы пропускаем через валидаторы данные форм, кукисы, даже URI.
                          Но недавно я с удивлением обнаружил, что есть одна переменная, приходящая от клиента, которую почти никто не фильтрует.
                          Речь пойдет о компрометации веб приложения через подмену значения HTTP_HOST и SERVER_NAME.
                          Читать дальше →
                        • JavaScript паттерны… для чайников

                            Однажды вечером, сразу после того, как я закончил разбираться с наследованием в JS, мне пришла в голову идея, что пора бы заняться чем-нибудь посложнее — например паттернами. На столе внезапно оказалась книжка Gof, а на экране ноутбука появился труд с названием «JavaScript patterns».

                            В общем, спустя пару вечеров, у меня появились описания и реализации на JavaScriptе самых основных паттернов — Decorator, Observer, Factory, Mediator, Memoization (не совсем паттерн, а скорее техника, но мне кажется что она прекрасно в этот ряд вписывается) и Singleton.

                            Читать дальше →
                          • Написание сложных интерфейсов с Backbone.js

                              image

                              Backbone.js это каркас для создания RIA JavaScript приложений, его автором является Jeremy Ashkenas, создатель CoffeeScript, Backbone является частью компании Document Cloud ей же «принадлежит» Underscrore.js. Backbone — очень легкая библиотека, помогающая вам создавать интерфейсы. Она может работать с любыми библиотеками, к которым вы привыкли.
                              Backbone это набор классов, размером менее 4Кб, которые формируют структуру вашего кода и помогают создавать качественные MVC веб-приложения.
                              Backbone формирует структуру тяжелых JavaScript приложений, внесением моделей с key-value подобным хранилищем и своими событиями, коллекций с богатыми API, видов (ориг. views) с декларативной обработкой событий и соединяет все это в в одно приложение, поддерживающее RESTful JSON интерфейс.

                              Backbone не может работать без Underscore.js. Для поддержки REST API и работы с DOM элементами в Backbone.View настоятельно рекомендуется подключить json2.js и jQuery-подобную библиотеку: jQuery или Zepto

                              В статье будет рассмотрена структура Backbone.js, будет поэтапно создано простое Todo приложение.
                              Читать дальше →
                            • Основы и заблуждения насчет JavaScript

                                Объекты, классы, конструкторы

                                ECMAScript, будучи высоко-абстрактным объектно-ориентированным языком программирования, оперирует объектами. Существуют также и примитивы, но и они, когда требуется, также преобразуются в объекты. Объект — это коллекция свойств, имеющая также связанный с ней объект-прототип. Прототипом является либо также объект, или же значение null.
                                В JavaScript нет привычных классов, но есть функции-конструкторы, порождающие объекты по определенным алгоритмам (см. Оператор new).

                                Прототипное делегирующее наследование


                                Классическое наследование очень похоже на то, как люди наследуют гены своих предков. Есть какие-то базовые особенности: люди могут ходить, говорить… И есть характерные черты для для каждого человека. Люди не в состоянии изменить себя — свой класс (но могут поменять собственные свойства) и бабушки, дедушки, мамы и папы не могут динамически повлиять на гены детей и внуков. Все очень по земному.

                                Теперь представим другую планету, на которой не такое как на Земле генное наследование. Там обитают мутанты с «телепатическим наследованием», которые способны изменять гены своих потомков.
                                Разберем пример. Отец наследует гены от Дедушки, а Сын наследует гены от Отца, который наследует от Дедушки. Каждый мутант может свободно мутировать, и может менять гены своих потомков. Например у Дедушки был зеленый цвет кожи, Отец цвет унаследовал, Сын тоже унаследовал цвет. И вдруг Дед решил: «надоело мне ходить зеленым — хочу стать сними», смутировал (изменил прототип своего класса) и «телепатически» распространил эту мутацию Отцу и Сыну, вобщем посинели все. Тут Отец подумал: «Дед на старости лет совсем двинулся» и поменял свой цвет в генах обратно на зеленый(изменил прототип своего класса), и распространил «телепатически» свой цвет сыну. Отец и Сын зеленые, Дед синий. Теперь как бы дед ни старался Отец и сын цвет не поменяют, т.к сейчас Отец в своем прототипе прописал цвет, а Сын в первую очередь унаследует от Прототипа Отца. Теперь Сын решает: «Поменяю ка я свой цвет на черный, а моё потомство пусть наследует цвет от Отца» и прописал собственное свойство, которое не влияет на потомство. И так далее.
                                Читать дальше →