• Быстрый поиск по всем пользователям ВК

    • Tutorial

    Задача:

    Нужно пройтись по 650 000 000 пользователям ВК и вытащить только тех, кто живет в Москве. Затем отдельно обработать уже полученные айдишники.

    Решение:

    - генерация токенов для вк api

    - асинхронные запросы

    - код проекта в Google Colab (Python)

    Читать далее
  • Как создавать необычно красивые линии? Изучаем поле течений

    • Translation
    • Tutorial

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

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

    Осторожно, много тяжелых красивых картинок
    • +49
    • 4.9k
    • 9
  • Разработка круговых интерфейсов. Часть 2. Перенос библиотеки с JavaScript на QML

      Оглавление


      Введение
      Библиотека круговых интерфейсов v2.0
      Круговая CAPTCHA
      Перенос библиотеки с JavaScript на QML
      Демонстрационное мобильное приложение
      Заключение


      Введение


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


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


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

      Читать дальше...
      • +13
      • 2.3k
      • 4
    • Разработка круговых интерфейсов

      Оглавление


      Введение
      Классификация круговых интерфейсов
      Принципы проектирования кругового интерфейса
      Основы анимации кругового интерфейса
      Библиотека классов на JavaScript для реализации круговых интерфейсов


      Введение


      Круговой интерфейс – это графический интерфейс, элементы которого имеют круглую форму, расположены или анимированы по круговой траектории.


      Сложный круговой интерфейс преимущественно состоит из нескольких круговых элементов, имеющих единый центр.
      На рисунке 1 представлены примеры абстрактного кругового интерфейса.


      image
      Рис. 1 – Примеры круговых интерфейсов


      Круговые интерфейсы могут применяться с целью:


      • разнообразить дизайн проекта или продукта;
      • обеспечить компактность при визуализации информации;
      • получить цифровой аналог реальных интерфейсов управления или измерительных приборов.

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

      Читать дальше...
    • Полное практическое руководство по Docker: с нуля до кластера на AWS

      • Translation



      Содержание



      Вопросы и ответы


      Что такое Докер?


      Определение Докера в Википедии звучит так:


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



      Ого! Как много информации.

      Читать дальше →
    • Подключение node-приложения к Google Calendar API

        Как-то неожиданно для меня подключение своего nodejs-приложения к Google Calendar API оказалось довольно нетривиальной задачей. Несмотря на подробное описание вариантов подключения на русском языке пришлось продираться через лес различных настроек и конфигураций. В статье подробно изложены шаги, которые приходится совершить, чтобы интеграция завершилась успехом.

        Читать далее
      • «Никогда не писали автотесты? Попробуйте Cypress»

          Автотесты на Cypress
          Первое впечатление и встречающиеся проблемы


          Дмитрий Кочергин, Lead Software Developer Luxoft

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

          Статья будет интересна всем, кто интересовался автотестированием с нуля на JS, но боялся спросить.
          Читать дальше →
        • Математика верстальщику не нужна 2: Матрицы, базовые трансформации, построение 3D и фильтры для картинок

          • Tutorial


          В прошлый раз мы говорили о графиках и траекториях для покадровых анимаций, а сегодня речь пойдет про матрицы. Мы разберемся с тем, как строятся базовые трансформации в CSS, SVG и WebGL, построим отображение 3D-мира на экране своими руками, попутно проводя параллель с таким инструментом, как Three.js, а также поэкспериментируем с фильтрами для фотографий и разберемся, что же за магия такая лежит в их основе.

          Напомню, что в этой серии статей мы знакомимся с разными штуками из области математики, которые пугают верстальщиков, но могут быть полезны при решении рабочих задач. Мы стараемся избежать излишней теоретизации, отдавая предпочтение картинкам и объяснению на пальцах, с акцентом на практическое применение во фронтенде. В связи с этим формулировки местами могут быть не совсем точными с точки зрения математики, или не совсем полными. Цель этой статьи – дать общее представление о том, что бывает, и откуда можно начать в случае чего.
          Читать дальше →
          • +16
          • 6.8k
          • 4
        • Приложения реального времени на TypeScript: разработка чата с применением WebSocket, Node и Angular

          • Translation
          Недавно я создал простой чат, используя исключительно TypeScript. Главной целью этого проекта было написание приложения, демонстрирующего использование этого языка и на клиенте, и на сервере. Клиентская часть чата основана на свежей версии Angular. Сервер базируется на Node.js. Взаимодействие между ними организовано с помощью протокола WebSocket.

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


          Чат, написанный на TypeScript
          Читать дальше →
          • +13
          • 21k
          • 3
        • Tangible user interface: распознавание объектов при работе с multi-touch системой

            Делимся опытом работы с Tangible User Interface и рассказываем, как распознавать маркеры по точечным паттернам. Вы узнаете, как с помощью дисплея и инфракрасной рамки сделать эффектную визуализацию, а также какие подводные камни могут встретиться при работе с TUIO.


            image


            Заметка от партнера IT-центра МАИ и организатора магистерской программы “VR/AR & AI” — компании PHYGITALISM.

            Читать дальше →
          • 20 психологических уловок в дизайне продуктов

            • Translation

            Совершенствование продуктов с применением когнитивных искажений и моделей убеждения.



            Несколько лет назад коллега из моей бывшей компании (BlaBlaCar) познакомил меня с игрой Mental Notes. Разрабатывая какую-либо функцию, мы вместе с несколькими менеджерами по продукту, дизайнерами и разработчиками делали «поведенческий анализ», во время которого старались понять, как и какие принципы поведенческой психологии можно применить в проекте.

            Прошло несколько лет, и я до сих пор регулярно использую эти принципы в проектах, над которыми работаю как внештатный специалист по продуктам. В этой статье я поделюсь несколькими конкретными примерами того, как эти принципы применяются в реальных продуктах. Надеюсь, это поможет и вашим проектам!
            Читать дальше →
            • +11
            • 8.7k
            • 6
          • Реализация технологии SSO на базе Node.js

            • Translation
            Веб-приложения создают с использованием клиент-серверной архитектуры, применяя в качестве коммуникационного протокола HTTP. HTTP — это протокол без сохранения состояния. Каждый раз, когда браузер отправляет серверу запрос, сервер обрабатывает этот запрос независимо от других запросов и не связывает его с предыдущими или последующими запросами того же самого браузера. Это, кроме прочего, означает, что получить доступ к серверным ресурсам, которые никак не защищены, может кто угодно. Если нужно защитить от посторонних некие серверные ресурсы, это значит, что нужно как-то ограничить то, что может запрашивать у сервера браузер. То есть — нужно аутентифицировать запросы и отвечать только на те из них, которые прошли проверку, игнорируя те, которые проверку не прошли. Для аутентификации запросов нужно владеть некими сведениями о запросах, хранящимися на стороне браузера. Так как протокол HTTP не хранит состояние запросов, нам для этого нужны некие дополнительные механизмы, которые позволяют серверу и браузеру совместно управлять состоянием соединений. Среди таких механизмов можно отметить использование куки-файлов, сессий, JWT.



            Если речь идёт о каком-то одном веб-проекте, то сведения о состоянии конкретного сеанса взаимодействия клиента и сервера легко поддерживать с применением аутентификации пользователя при его входе в систему. Но если такая вот самостоятельная система эволюционирует, превращаясь в несколько систем, перед разработчиком встаёт вопрос о поддержании сведений о состоянии каждой из этих отдельных систем. На практике этот вопрос выглядит так: «Придётся ли пользователю этих систем входить в каждую из них по-отдельности и так же из них выходить?».
            Читать дальше →
            • +23
            • 5.6k
            • 5
          • «Умный дом» в каждую квартиру многоквартирного дома, или наш MVP



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

              Описание объекта


              Итак наш первый объект — жилой дом имеющий следующие характеристики:

              • 15 этажей
              • 135 квартир
              • Импульсные приборы учета холодного водоснабжения у каждой квартиры
              • Тепловые счетчики с M-bus у каждой квартиры
              • Счетчики электроэнергии с RS-485 интерфейсом у каждой квартиры
              • Датчик температуры в каждой квартире
              • Один клапан на подающем трубопроводе отопления в квартиру
              Читать дальше →
            • Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP)

              Два года назад я писал на Хабр статью про Yargy-парсер и библиотеку Natasha, рассказывал про решение задачи NER для русского языка, построенное на правилах. Проект хорошо приняли. Yargy-парсер заменил яндексовый Томита-парсер в крупных проектах внутри Сбера, Интерфакса и РИА Новостей. Библиотека Natasha сейчас встроена в образовательные программы ВШЭ, МФТИ и МГУ.

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

              Для новостных статей качество на всех задачах сравнимо или превосходит существующие решения. Например с задачей NER Natasha справляется на 1 процентный пункт хуже, чем Deeppavlov BERT NER (F1 PER 0.97, LOC 0.91, ORG 0.85), модель весит в 75 раз меньше (27МБ), работает на CPU в 2 раза быстрее (25 статей/сек), чем BERT NER на GPU.

              В проекте 9 репозиториев, библиотека Natasha объединяет их под одним интерфейсом. В статье поговорим про новые инструменты, сравним их с существующими решениями: Deeppavlov, SpaCy, UDPipe.

              Читать дальше →
            • Архитектура современных корпоративных Node.js-приложений

              Ох, не зря в названии намёк на нетленку Фаулера. И когда фронтенд-приложения успели стать настолько сложными, что мы начали рассуждать о высоких материях? Node.js… фронтенд… погодите, но Нода же на сервере, это бэкенд, а там ребята и так всё знают!



              Давайте по порядку. И сразу небольшой дисклеймер: статья написана по мотивам моего выступления на Я.Субботнике Pro для фронтенд-разработчиков. Если вы занимаетесь бэкендом, то, возможно, ничего нового для себя не откроете. Здесь я попробую обобщить свой опыт фронтендера в крупном энтерпрайзе, объяснить, почему и как мы используем Node.js.
              Читать дальше →
            • Веб-разработчику: 10 полезных инструментов

              • Translation
              Статья, перевод которой мы публикуем сегодня, посвящена 10 полезным инструментам, которые предназначены для веб-разработчиков. Автор материала считает, что это — как раз такие инструменты, которые позволяют, как говорится, «работать с умом, а не до ночи».


              Читать дальше →
              • +32
              • 17.8k
              • 5
            • Генеральный конструктор vs Скрам-мастер

                image

                «Каспийский монстр» — советский экраноплан, который весил 544 тонны, что делало его самым тяжелым летательным аппаратом в мире. Сделан с нуля за два года. Думай об этом, закачивая лэндинг по продаже трусов «всего» за полгода.

                Я бы хотел рассказать о некоторых приемах древнего(доскрамового периода) менеджмента, которые позволяли добиваться таких результатов. Поднять в воздух на новом принципе железную бандуру размером с хрущевку и разогнать ее до пятисот киломtnров в час, по мне — это более творческая и технически сложная задача, чем открытие очередного интернет магазина, поэтому возможно стоит перенять опыт предков.
                Читать дальше →
              • Основные тенденции в левел-дизайне мультиплеерных шутеров: чему мы научились за годы разработки War Robots

                За шестилетнюю историю существования War Robots мы не раз проводили опросы среди игроков касательно наших карт. Какие нравятся, какие нет, почему? Затем анализировали полученные ответы, фидбек ютуберов, отзывы с форумов и из социальных сетей.

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

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


                Читать дальше →
              • Занятие на вечер: пишем подсветку синтаксиса

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

                  Демо-страница: Javascript Code Highlighter
                  Читать дальше →
                • Как подготовиться к интервью в YCombinator

                  • Translation
                  image

                  Один из первых наборов YC.

                  Когда я готовился к интервью зимнего класса 2018 года, я пересмотрел все доступные источники по теме и провел около 20 практических интервью с выпускниками YCombinator. Ниже собрано воедино все, что я узнал. Это руководство – моё личное видение, и оно не представляет официальную позицию YC.

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

                  Проработка ответов


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

                  Вводное описание

                  • Первое предложение на интервью это либо описание решения, либо декларация ценностей. Оно должно быть длиной в 4-8 слов и проходить «Тест мамы», то есть оно должно быть таким, чтобы ваши родители могли его за вами повторить.
                  Читать дальше →