• Чтобы вести разработку быстрее, необходимо замедлиться

    • Перевод


    От переводчика:
    Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than Ever in Software Development, которую написал Lemi Orhan Ergin. А ее перевод мы публикуем ниже.
    Читать дальше →
  • NLP. Основы. Техники. Саморазвитие. Часть 1

      Привет! Меня зовут Иван Смуров, и я возглавляю группу исследований в области NLP в компании ABBYY. О том, чем занимается наша группа, можно почитать здесь. Недавно я читал лекцию про Natural Language Processing (NLP) в Школе глубокого обучения – это кружок при Физтех-школе прикладной математики и информатики МФТИ для старшеклассников, интересующихся программированием и математикой. Возможно, тезисы моей лекции кому-то пригодятся, поэтому поделюсь ими с Хабром.

      Поскольку за один раз все объять не получится, разделим статью на две части. Сегодня я расскажу о том, как нейросети (или глубокое обучение) используются в NLP. Во второй части статьи мы сконцентрируемся на одной из самых распространенных задач NLP — задаче извлечения именованных сущностей (Named-entity recognition, NER) и разберем подробно архитектуры ее решений.


      Читать дальше →
    • GraphQL будущее микросервисов?

      • Перевод
      • Tutorial
      GraphQL часто представляют как революционный путь дизайна веб API по сравнению с REST. Однако, если вы ближе посмотрите на эти технологии, то вы увидите, что между ними очень много различий. GraphQL относительно новое решение, исходники которого были открыты сообществу Фейсбуком в 2015 году. Сегодня REST все еще самая популярная парадигма, используемая для предоставления API и взаимодействия между микросервисами. Сможет ли GraphQL обогнать REST в будущем? Давайте посмотрим, как происходит микросервисное взаимодействие через GraphQL API с ипользованием Spring Boot и библиотеки GQL.
      Читать дальше →
    • Нейросети и философия языка

      • Перевод
      Почему теории Витгенштейна остаются основой всего современного NLP

      Векторное представление слов — пожалуй, одна из самых красивых и романтичных идей в истории искусственного интеллекта. Философия языка — это раздел философии, исследующий связь между языком и реальностью и как сделать сделать речь осмысленной и понятной. А векторное представление слов — очень специфический метод в современной обработке естественного языка (Natural Language Processing, NLP). В некотором смысле он представляет собой эмпирическое доказательство теорий Людвига Витгенштейна, одного из самых актуальных философов прошлого века. Для Витгенштейна использование слов — это ход в социальной языковой игре, в которую играют члены сообщества, понимающие друг друга. Значение слова зависит только от его полезности в контексте, оно не соотносится один к одному с объектом из реального мира.

      Для большого класса случаев, в которых мы используем слово «значение», его можно определить как значение слова есть его использование в языке.
      Читать дальше →
      • +14
      • 6,3k
      • 7
    • Как взять сетевую инфраструктуру под свой контроль. Глава вторая. Чистка и документирование

        Эта статья является второй в цикле статей «Как взять сетевую инфраструктуру под свой контроль». Содержание всех статей цикла и ссылки можно найти здесь.

        image

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

        Сейчас мы не будем говорить об аудите безопасности – этому будет посвящена третья часть.

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

        Идеальная ситуация – это когда

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

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

        В худшем варианте у вас будет

        • сеть, созданная без проекта, без плана, без согласования, инженерами, не обладающими достаточным уровнем квалификации,
        • с хаотичными, не задокументированными изменениями, с большим количеством «мусора» и неоптимальных решений

        Понятно, что ваша ситуация где-то между, но, к сожалению, на этой шкале лучше – хуже с большой вероятностью, вы будете находиться ближе к худшему концу.
        Читать дальше →
        • +11
        • 12,1k
        • 7
      • Senior Engineer в поисках работы. Как я прошел 15 технических собеседований и что я об этом думаю

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

        К моему удивлению, предыдущая статья о собеседованиях с рекрутерами и HR вызвала неожиданный интерес: более 100 000 просмотров по всем источникам. Я получил кучу положительного фидбека в личку, мне написали бывшие коллеги, которых я последний раз видел лет 5 назад; героини некоторых историй; парень, которому я несколько недель назад продавал системник через OLX (аналог Slando, — прим. пер.); барабанщик с которым мы в прошлом году играли метал в гараже, и, как это ни странно, довольно много рекрутеров, которые поинтересовались моими мыслями касательно тех или иных аспектов собеседований и найма. 250 человек зачем-то добавились ко мне в LinkedIn :).
        Читать дальше →
      • Кое-что нашли: доклады с Elasticsearch Moscow meetup в OZON

          image

          Для тех, кто досмотрел все сезоны новых и любимых сериалов, у нас есть кое-что поинтереснее — видео с Elasticsearch meetup в OZON.
          Читать дальше →
        • Как взять сетевую инфраструктуру под свой контроль. Глава третья. Сетевая безопасность. Часть первая

            Эта статья является третьей в цикле статей «Как взять сетевую инфраструктуру под свой контроль». Содержание всех статей цикла и ссылки можно найти здесь.

            image

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

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

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

            Наша задача сейчас – выявить риски, связанные с защищенностью на уровне сети и снизить их до разумной величины.
            Читать дальше →
            • +15
            • 13,8k
            • 2
          • Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки

            Существует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-Sub по HTTP и про свой сервис, написанный специально для этого.

            Использование готового HTTP -бэкенда сервисов в некоторых случаях является идеальным решением для обработки очереди сообщений:

            1. Балансировка из коробки. Обычно, бэкенд и так стоит за балансировщиком и имеет готовую к нагрузкам инфраструктуру, что сильно упрощает работу с сообщениями.
            2. Использование обычного REST-контроллера (любой HTTP-ресурс). Потребление сообщений по HTTP сводит к минимуму затраты на реализацию консюмеров под разные языки, если бэкенд разношерстный.
            3. Упрощение использования Веб-хуков других сервисов. Сейчас почти каждый сервис (Jira, Gitlab, Mattermost, Slack…) так или иначе поддерживает Веб-хуки для взаимодействия с внешним миром. Можно облегчить жизнь, если научить очередь выполнять функции HTTP-диспатчера.

            Этот подход имеет и минусы:

            1. Можно забыть о легковесности решения. HTTP тяжёлый протокол, а использование фреймворков на стороне консюмера мгновенно приведёт к увеличению задержки (latency) и нагрузки.
            2. Лишаемся сильных сторон Poll-подхода, получая слабые стороны Push.
            3. Обработка сообщений теми же инстансами сервиса, которые обрабатывают клиентов, может сказаться на отзывчивости. Это несущественно, так как лечится балансировкой и изоляцией.

            Я реализовал идею в виде сервиса Queue-Over-Http, о котором и пойдёт речь далее. Проект написан на Kotlin с использованием Spring Boot 2.1. В качестве брокера сейчас доступна только Apache Kafka.
            Читать дальше →
            • +15
            • 3,8k
            • 6
          • Немного внутренностей словарей в CPython (и PyPy)

              Внутреннее устройство словарей в Python не ограничивается одними лишь бакетами и закрытым хешированием. Это удивительный мир разделяемых ключей, кеширования хешей, DKIX_DUMMY и быстрого сравнения, которое можно сделать ещё быстрее (ценой бага с примерной вероятностью в 2^-64).

              Если вы не знаете количество элементов в только что созданном словаре, сколько памяти расходуется на каждый элемент, почему теперь (CPython 3.6 и далее) словарь реализован двумя массивами и как это связано с сохранением порядка вставки, или просто не смотрели презентацию Raymond Hettinger «Modern Python Dictionaries A confluence of a dozen great ideas». Тогда добро пожаловать.


              Впрочем, люди знакомые с лекцией, тоже могут найти немного подробностей и свежей информации, и для совсем новичков, не знакомых с бакетами и закрытым хешированием, статья тоже будет интересна.
              Читать дальше →
              • +24
              • 7,3k
              • 7
            • Краткое руководство по Dash — Python веб-фреймворк для создания дэшбордов. Installation + Dash Layout

              • Tutorial
              image

              Всем привет!

              Сегодня предлагаю погрузиться в один из удобнейших веб-фреймворков в связке c Python под названием Dash. Появился он не так давно, пару лет назад благодаря разработчикам фреймворка plotly. Сам Dash является связкой Flask, React.Js, HTML и CSS.

              Выступление Криса Пармера на PLOTCON 2016


              Давайте сразу установим фреймворк. Обновленные версии уточняйте тут.

              pip install dash==0.31.1  # The core dash backend
              pip install dash-html-components==0.13.2  # HTML components
              pip install dash-core-components==0.38.1  # Supercharged components
              pip install dash-table==3.1.7  # Interactive DataTable component (new!)
              

              Друзья, если вы действительно хотите разобраться в данном фреймворке, читайте публикации до конца, так как зачастую сначала следуют примеры, а уже после детальный обзор кода. Если вам все равно непонятно — советую читать документацию по Dash на английском языке в оригинале. Также в рунете есть несколько статей, которые объясняют концепции, которые я решил пропустить в данном туториале.
              Читать дальше →
              • +26
              • 17k
              • 7
            • Data Engineering и не только: видеозаписи и слайды с митапа в Wrike



                15 ноября в офисе Wrike прошел митап «Data Engineering и не только». Поговорили об инженерах данных как об отдельной специальности, наметили отличия процессов в софтверном и дата-инжениринге, посмотрели, как можно писать тесты для Apache Spark, и чуть-чуть коснулись особенностей семантических технологий.

                Для тех, кто не смог прийти, мы публикуем видеозаписи докладов.
                Смотреть
              • Data Science в Visual Studio Code с использованием Neuron

                • Перевод
                Сегодня у нас небольшой рассказ о Neuron, расширении для Visual Studio Code, которое является настоящей киллер-фичей для дата-сайнтистов. Оно позволяет совместить Python, любую библиотеку машинного обучения и Jupyter Notebooks. Подробнее под катом!

                Читать дальше →
                • +11
                • 8,4k
                • 3
              • Книга «Работа с BigData в облаках. Обработка и хранение данных с примерами из Microsoft Azure»

                  image Перед вами — первая исходно русскоязычная книга, в которой на реальных примерах рассматриваются секреты обработки больших данных (Big Data) в облаках.

                  Основное внимание уделено решениям Microsoft Azure и AWS. Рассматриваются все этапы работы – получение данных, подготовленных для обработки в облаке, использование облачных хранилищ, облачных инструментов анализа данных. Особое внимание уделено службам SAAS, продемонстрированы преимущества облачных технологий по сравнению с решениями, развернутыми на выделенных серверах или в виртуальных машинах.

                  Книга рассчитана на широкую аудиторию и послужит превосходным ресурсом для освоения Azure, Docker и других незаменимых технологий, без которых немыслим современный энтерпрайз.

                  Предлагаем ознакомиться с отрывком «Прямая загрузка потоковых данных»
                  Читать дальше →
                • GridGain на Highload: где поговорить про распределенные СУБД, In-Memory и open source

                    Если 8 и 9 ноября вы будете на конференции Highload++, это отличный повод для встречи. Оба дня на стенде GridGain (А4) будут присутствовать архитекторы и разработчики, которе ответят на любые вопросы про Apache Ignite и GridgGain. Кроме разговоров и стикеров на стенде можно принять участие в небольшом исследовании. Каждый вечер в 18:15 между ответившими на вопросы будут разыграны полезные книги. А также у нас запланированы 1 доклад, 2 митапа и 1 мини-батл.



                    Присоединяйтесь!
                    Читать дальше →
                  • Загрузка ядра Linux. Часть 1

                    • Перевод
                    От загрузчика к ядру

                    Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

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

                    Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
                    Читать дальше →
                  • Пишем чат бота для ВКонтакте на python с помощью longpoll

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

                    Нам понадобятся:

                    1. Python
                    2. VK Api
                    3. Желание
                    Читать дальше →
                  • Как разобраться в Tensorflow и не умереть, а даже научить чему-то машину

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


                    Читать дальше →
                  • Apache Ignite + Apache Spark Data Frames: вместе веселее

                      Привет, Хабр! Меня зовут Николай Ижиков, я работаю в компании «Сбербанк Технологии» в команде развития Open Source решений. За плечами 15 лет коммерческой разработки на Java. Я коммитер Apache Ignite и контрибьютор Apache Kafka.

                      Под катом вас ожидает видео и текстовая версия моего доклада на Apache Ignite Meetup о том, как использовать Apache Ignite вместе с Apache Spark и какие возможности мы для этого реализовали.


                      Читать дальше →
                      • +19
                      • 3,9k
                      • 3
                    • Налоговые и правовые вопросы начинающих фрилансеров

                      Здравствуйте!

                      Знаю, что у программистов много вопросов о налогообложении и праве. Решила написать о вопросах, возникающих у начинающего фрилансера.

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

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

                      Пока не знаю, насколько востребована тема налогов и права, какая информация нужна, в каком формате. Задавайте вопросы, пишите, что понятно, что непонятно. Что надо подробней. Какие темы интересуют. Если будет интересно, продолжу.
                      Читать дальше →