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

    • Translation
    • Tutorial

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

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

    Осторожно, много тяжелых красивых картинок
    • +49
    • 5.7k
    • 9
  • Фреймворки и библиотеки для кроссплатформенной разработки десктопных программ

      В этой статье я расскажу вам о некоторых самых популярных фреймворках, которые помогут вам при разработке программ для компьютеров под управлением Windows/MacOS/Linux. Если вы опытный программист, то вряд ли найдете в этой статье что-то новое для себя. Она скорее для новичков, которые ищут простое решение своей проблемы — быстрое написание хорошей (на сколько это возможно) кроссплатформенной программы.

      Читать далее
    • Разбираемся с middleware в ASP.NET Core

      • Translation

      Этой статья раскрывает концепции Middleware в ASP.NET Core. К концу этой статьи вы получите четкое представление о следующих моментах:

      - Что такое Middleware?

      - Почему порядок расположения Middleware имеет значение?

      - Методы Run, Use и Map.

      - Как создать собственное Middleware?

      - Как реализовать просмотр каталогов с помощью Middleware?

      Приступить к прочтению!
    • Эволюция Material Design для AvaloniaUI

      image


      Material.Avalonia — быстрый способ стилизовать под Material Design приложение, написанное на AvaloniaUI — кросс-платформенном XAML фреймворке для .NET.


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

      Читать дальше →
    • Как и почему Яндекс переехал с собственного npm-репозитория на Verdaccio

        Всем привет. Меня зовут Андрей Фримучков, я работаю в команде инфраструктуры разработки интерфейсов Яндекса. Последние несколько месяцев участвовал в запуске нового хранилища пакетов. Около года назад мы упёрлись в ограничения собственного решения и после череды экспериментов пришли к выводу, что дальше масштабироваться под растущие нагрузки не получится.

        Нужно было искать что-то новое. Выбор пал на опенсорсное решение под названием Verdaccio. Это может показаться странным, потому что им чаще пользуются небольшие компании. Скажу честно, настроить работу оптимально и внести необходимые доработки было непросто, но интересно. И стоило того. А теперь — обо всём по порядку.

        Как пакеты хранились раньше?


        Хорошая практика при разработке на JS — хранить внутренние пакеты в собственном репозитории и сохранять копии внешних пакетов. Это снижает зависимость от внешнего npm и позволяет ограничить выходы во внешнюю сеть в системах сборки. Исторически Яндекс использовал своё решение для хранения внутренних пакетов. Долгое время оно всех устраивало, но компания росла. Росли нагрузки, репозиторий стало сложно масштабировать и поддерживать. Например, при регламентных работах в датацентрах приходилось вручную переключать мастер у CouchDB. Схема выглядела следующим образом:


        Читать дальше →
        • +30
        • 4.8k
        • 5
      • Тренируемся дома: отжимания по программе Пола Уэйда

        • Translation

        image


        Представляю программу Тюремных Тренировок Пола Уэйда. Начнём с серии классических упражнений со своим весом для верхней части тела — отжиманиям.


        Тюремные Тренировки представляют собой самые лучшие и эффективные методы обучения работе со своим весом, из когда-либо существовавших. Многие из этих забытых, но действенных техник находятся на грани исчезновения. Современный бодибилдинг меняет наше мышление, навязывая свои убеждения. И даже заключённые сейчас получили доступ к тренажёрным залам.


        Серия сосредоточена на цепочке из 10 последовательных упражнений. Когда освоите одно упражнение, то перейдёте к следующему и так далее…
        Мы называем базовые упражнения как «10 уровней», и достигнув 10 уровня, вы станете сильнейшим настолько, насколько это возможно для человека в этих движениях. По этой причине, последняя ступень именуется «уровнем мастера». Вам станет понятнее, как это работает, если дополнительно ознакомитесь с книгой Тренировочная Зона (Издательство Питер).

        Читать дальше →
      • Программисту: 9 фильмов, которые обязательно надо посмотреть в 2020 году

        • Translation
        Фильмы вдохновляют нас, помогают стать умнее и вырасти над собой. Некоторые из них могут внести отличный вклад в развитие программиста. Фильмы — это прекрасный инструмент, помогающий понять современный мир. Мир, в котором всё взаимосвязано.



        В материале, перевод которого мы сегодня публикуем, речь пойдёт о нескольких фильмах, которые стоит посмотреть программисту.
        Читать дальше →
      • Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки

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


        • Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи — это превращалось в ад;
        • Различались окружения на проде и между разработчиками, что приводило к ошибкам: “у меня всё работает”.

        Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: «а как, собственно, “правильно”»?


        Мы добились


        • Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
        • Гарантию защищённости от ошибок из-за различий в окружении приложения;
        • Можем организовать эффективное взаимодействие с заказчиком:
          • демонстрировать каждую feature-ветку;
          • давать гостевой доступ для создания задач и наблюдения над ходом работ.

        Данная статья будет полезна, если вы:


        • начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
        • хотите обновить свой устаревший процесс разработки (workflow);
        • ищете лучшие практики и хотите посмотреть, как у других;
        • часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.

        Под катом вы найдёте


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

        Читать дальше →
      • Swagger/OpenAPI Specification как основа для ваших приёмочных тестов

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


          Я занимаюсь автоматизацией тестирования в Яндексе с 2013 года. Из них более четырёх лет автоматизирую тестирование REST API-сервисов. На Heisenbug я рассказал об использовании OpenAPI-спецификации как основы для приёмочных тестов, а также о том, как легко поддерживать автотесты на огромное количество REST API-сервисов и добавлять автотесты на новые проекты.



          Под катом — видеозапись и расшифровка моего доклада. Примеры из доклада есть на GitHub.

          Читать дальше →
        • Про хороший и плохой дизайн для недизайнеров

            Что нужно пользователю от сайта? Чтобы нужная информация находилась легко, как рыбка в аквариуме. Дизайн в первую очередь должен решать проблемы пользователя. Я часто сталкиваюсь с нарушением UX-принципов в программных продуктах, поэтому хочу помочь менеджерам, начинающим дизайнерам и программистам освоить базовые принципы юзабилити, а также научиться распознавать распространённые ошибки.

            Читать далее
          • Отзывчивый веб-дизайн и учёт высоты окна браузера

            • Translation
            Знаю, что у многих появится вопрос о том, почему у этой статьи такой необычный заголовок. Как связаны «отзывчивый веб-дизайн» и «высота окна браузера»? Пожалуй, этот заголовок кажется необычным из-за того, что под «отзывчивым дизайном», как правило, понимают проектирование страниц таким образом, чтобы они подстраивались бы под ширину области просмотра, чтобы они хорошо бы выглядели на разных устройствах. Сайты всегда тестируют, уменьшая ширину браузера и наблюдая за происходящим. Но я практически никогда не сталкивался с некими указаниями по тестированию какого-то проекта, в которых сказано, что страницы исследуют путём уменьшения высоты окна браузера. Возможно, вы когда-нибудь ловили себя на такой мысли: «Надо ли проверять страницы в окнах браузера разной высоты?». Я полагаю, что делать это надо, и собираюсь убедить в этом всех, кто прочитает эту статью.



            При работе над веб-сайтом не очень правильно делать некие предположения, не опираясь на реальные данные. Поэтому очень важно брать на себя ответственность по проверке сайтов в окнах браузеров разной ширины и разной высоты.
            Читать дальше →
            • +25
            • 9.2k
            • 6
          • Стратегия IT-продукта. Почему must have и как составить. Опыт наших проектов

              За последние 2 года у нас, в EZTec, реализовано 37 IT-проектов для клиентов. Часть из них успешно работает до сих пор, другая часть закрылась. Ситуации и причины закрытия во многом уникальны, но имеют общие основания и предпосылки.

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

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

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

              И часто контент требуется собирать в больших объемах, массово, а если еще данные нужны с определенной периодичностью, то решить такую задачу руками не представляется возможным. Вот тут на помощь приходят специальные алгоритмы, которые по определенным условиям собирают информацию, структурируют и выдают в нужном виде.
              Читать дальше →
              • +14
              • 5.9k
              • 8
            • Не заблудиться в трёх if'ах. Рефакторинг ветвящихся условий

              • Tutorial
              На просторах интернета можно найти множество описаний приемов упрощения условных выражений (например, тут). В своей практике я иногда использую комбинацию замены вложенных условных операторов граничным оператором и объединения условных операторов. Обычно она дает красивый результат, когда количество независимых условий и выполняемых выражений заметно меньше количества веток, в которых они комбинируются различными способами. Код будет на C#, но действия одинаковы для любого языка, поддерживающего конструкции if/else.

              image
              Читать дальше →
            • Архитектура интерпрайз-приложений может быть другой

                image


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


                Мне нравится перебирать архитектурные концепции. Всю жизнь я пытаюсь найти в области архитектуры и дизайна ПО что-то работающее и в то же время простое. Не требующее разрыва мозга для понимания и кардинальной смены парадигмы. Идей накопилось порядочно и я решил объединить лучшие из них в своём фреймворке — Reinforced.Tecture. Разработка таких штук даёт гигантское количество пищи для размышлений, я хочу ими поделиться.


                Тексты про такие технические вещи обычно до ужаса нудные. Я честно постарался не нудить, поэтому мой текст получился слегка агрессивным. Если вам с этим норм и интересно почитать про архитектуры .NET-приложений — заходите.

                Читать дальше →
              • Программисту. 10 ценных GitHub-репозиториев

                • Translation
                GitHub — это платформа, дающая программистам отличные инструменты для организации работы над кодом. Но в GitHub-репозиториях, помимо кода, можно найти массу ценных учебных материалов. Я, например, занимаюсь разработкой ПО и постоянно ищу репозитории, которые могут чем-то мне пригодиться. Вот 10 моих любимых GitHub-проектов.


                Читать дальше →
                • +37
                • 33.4k
                • 9
              • Более мощный конкурент Raspberry Pi 3 стоит всего $10


                  Одноплатных компьютеров, хороших и разных, становится все больше. Недавно мы писали о сетевой альтернативе Raspberry Pi, а сейчас появился еще более интересный вариант. Речь пойдет об Iconikal Rockchip 3328.

                  Он более современный, чем Raspberry Pi 3, с ним поставляется сразу несколько аксессуаров, а цена этого одноплатника почти в четыре раза ниже. Девайс уже поступил в продажу на Amazon, правда, там его очень быстро раскупили.
                  Читать дальше →
                • Как убрать из Git-репозитория файлы с конфиденциальной информацией

                  • Translation
                  Файлы проиндексированы, написано сообщение коммита, данные отправлены на сервер… И вдруг хочется повернуть время вспять. В коммит попал файл, которого там быть не должно. Когда такое случается, приходит время обращаться к поисковику.

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

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


                  Удаление файлов с конфиденциальной информацией из Git-репозитория (изображение большого размера)
                  Читать дальше →
                • JavaScript и TypeScript: 11 компактных конструкций, о которых стоит знать

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

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



                  В этом материале я собираюсь разобрать некоторые весьма полезные (и иногда выглядящие достаточно таинственными) компактные конструкции, которые могут попасться вам в JavaScript и TypeScript. Изучив их, вы сможете пользоваться ими сами или, как минимум, сможете понять код тех программистов, которые их применяют.
                  Читать дальше →
                • Разбор: зачем нужны анимации на сайтах + 7 полезных инструментов и библиотек для их создания



                    Источник: Dribbble

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