Для меня уравнения в частных производных -- это очень красивая история из студенчества. Почему? Это невероятно красиво. Но что особенно стало для меня захватывающим, так это то, что дифуры в широком смысле прикладной математики -- это тот самый пример, когда математика и компьютер используются вместе, чтобы представить некоторую компьютерную модель вполне реальных процессов. Как вы уже, наверное, догадались, речь пойдёт про то, как вообще можно попробовать решать дифференциальные уравнения в частных производных на компьютере. Мы попробуем это сделать на примере волнового уравнения и с использованием уже ставших привычными python, scipy и numpy. Если вы примерно помните математику, но панически боялись дифуров или они просто как-то обошли вас стороной, то добро пожаловать.
Программирование *
Искусство создания компьютерных программ
Новости
Выгорание программиста. Интересная работа — самая опасная
Среди айтишников мало жизнерадостных людей… Скорее наоборот, многие выглядят несчастными, а если провести анкетирование, то 83% проявляют признаки выгорания, хотя до крайней степени истощения и цинизма ещё не дошли. Но постоянная когнитивная нагрузка и хронический стресс ведут к закономерному результату:
- выгорание,
- физическая деградация,
- депрессия,
- ранний уход из профессии.
Все эти последствия хорошо предсказуемы. Поэтому их можно предотвратить.
Переходим на Flutter: за и против
Привет, Хабр!
Меня зовут Данил Абдрафиков и уже более пяти лет я занимаюсь мобильной разработкой, три из которых — на Flutter. Последние несколько лет я разрабатываю продукты для энтерпрайза в TAGES, и за это время у меня успел накопиться определенный опыт, которым я бы хотел поделиться с вами в сегодняшней статье. Я расскажу, что нужно знать опытному мобильному разработчику для перехода на Flutter, с какими особенностями можно столкнуться и стоит ли вообще переходить на него.
Чтобы вам было удобнее знакомиться с инструментами и технологиями, используемыми во Flutter, в материале будут упоминания нативных языков и инструментов, приближенных к привычному представлению процесса мобильной разработки.
Оптимизируем изображения в HTML
Вместе со Стивом Сьюэллом, CEO Builder.io, разбираемся, почему с точки зрения оптимизации производительности изображения лучше загружать через HTML, а не через CSS.
Истории
Пишем простой калькулятор используя фреймворк eframe (egui)
Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Используется язык программирования Rust и фреймворк eframe (egui). В результате получим исполняемый файл для ОС Windows, и файл Webassembly. В процессе работы будет использоваться GitHub Action для отслеживания корректности написания нашего кода и сборки исполняемых файлов программы, а также для развертывания (версию программы с использованием Webassembly) как страницы в интернете (GitHub Pages).
Интеграция с Apache Cassandra. Создаем микросервис с Cassandra и Kafka
Сегодня мы узнаем, как написать микросервис, который сохраняет данные в Apache Cassandra с помощью Java-драйвера DataStax и генерирует события для изменений данных в Apache Kafka.
Этот пост основан на дизайне простого микросервиса для управления данными бронирования отелей, который называется Reservation Service. Вы можете выполнить серию упражнений по записи и чтению данных в Cassandra с помощью службы резервирования в наборе «Cassandra: разработка приложений с помощью Java-драйвера DataStax». Исходный код службы бронирования доступен на GitHub.
Первая информация о JDK 21: что принесет следующий LTS релиз?
Поскольку мы все с нетерпением ждем скорого выпуска JDK 20, список функций, которые появятся в JDK 21 этой осенью, также постепенно проясняется.
Сегодня мы рассмотрим тему того, что принесет следующий LTS релиз JDK 21.
Разработка надстройки Macro Tools VBA – для автоматизации процесса создания макросов в VBE MS Excel
Доброго времени суток!
Предыстория — личный опыт
Хочу поделиться своим опытом использования надстроек, которые позволяют автоматизировать процесс разработки макросов в Visual Basic Editor MS Excel (далее VBE). В результате которого я разработал свою надстройку для разработки макросов VBA.
Проверка XML. Schematron
Так или иначе, все сервисы сталкиваются с задачами валидации. Часто они сводятся к простым и однотипным проверкам: заполнены ли все обязательные поля, верен ли формат телефонного номера, кредитной карты и пр. Но существуют проекты, в которых условия и правила проверок более разнообразные, да и те временами требуют серьёзного пересмотра. Внесение же изменений или создание дополнительных правил валидации требует непростых согласований и привлечения внимания нескольких команд разработчиков, обновления документации.
Недавно мне довелось поучаствовать в проекте, особую роль в котором занимают функции форматно-логического контроля входящих документов. Как следствие, у меня появились некоторые варианты решения подобных задач. Одним из них я и хочу поделиться.
Как мы сделали для разработчиков универсальную шину событий, не требующую знаний Kafka и прочих брокеров
Привет!
Меня зовут Петр Коробейников, я техлид команды DBaaS for Redis в #CloudMTS.
Некоторое время назад я озадачился созданием общего набора инструментов для наших команд разработки. Цель была проста: разработчик не тратит время на погружение в логику работы конкретного инструмента, берет готовую инструкцию и просто делает свое дело — пишет код. Типовое окружение поможет переходить ребятам из команды в команду и быстро адаптироваться, а новичку — проще приступить к работе.
Сегодня я хочу рассказать про один из элементов такого типового окружения, который позволяет быстро начать работу с брокерами сообщений. Даже если разработчик Kafka и прочие брокеры до этого в глаза не видел. Речь пойдет о шине данных или событий (EventBus) и про то, как мы настроили ее кодогенерацию.
Неожиданная проблема с макросами (точнее без макросов)
Макросы — один из самых мощных инструментов в языках программирования. В самом простом виде макрос, это символьное имя, которое заменяется на другое или целую последовательность программных инструкций, что позволяет упростить процесс написания кода при меньших затратах времени и усилий на кодирование, чем если бы программист писал все целиком вручную.
Возможности макросов зависят от конкретного языка программирования (макропроцессора) и некоторые из языков программирования позволяют себя расширять новыми синтаксическими конструкциями, фактически, реализуя парадигму DSL для конкретной решаемой задачи. Подобные возможности добавляют новые области применения и способы разработки больших программных системы, например, за счет использования языково-ориентированного программирования.
Если же говорить о простых реализациях макросов, например как для языков С и С++, то умные люди и умные книжки советуют избегать использования макросов и по возможности заменять их шаблонами, константами и inline-функциями. Ведь с помощью макросов можно не только упростить код, но и не менее изящно стрелять в ноги себе или своих товарищей.
И вот при окончательной доработке синтаксиса макросов для нового языка программирования я неожиданно столкнулся со сценарием, который элементарно реализуется с помощью макропроцессора C/C++, но который невозможно повторить при использовании любого из рекомендованных инструментов для их замены. И я буду очень рад, если ошибаюсь и кто-нибудь подскажет решение, которое можно сделать без применения макропроцессора.
Java для сисадминов
Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.
Статья не претендует на полноту или полную непогрешимость. Во-первых, нельзя объять необъятное. Во-вторых, все меняется и проверенные истины могут перестать быть истинами в новых версиях. В сети существует множество статей об устройствах Java, однако в этой статье в блоге ЛАНИТ я стремился сделать выжимку основных моментов, необходимых для администраторов Java-приложений. Для более глубокого погружения в тот или иной вопрос потребуется обратиться к другим источникам.
Главное из мира Python за февраль 2023
Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем новые релизы, PEP, заинтересовавшие нас инструменты и статьи. Под катом — текстовая выжимка из обсуждения.
Встраивание WebGL в HTML-страницу с помощью Three.JS
Приветствую! Я Алексей, frontend‑разработчик в SimbirSoft. Вы, возможно, видели потрясающие веб‑сайты, представленные на www.awwwards.com. Это онлайн‑каталог лучших веб‑сайтов, который оценивает и награждает творческие и инновационные работы веб‑дизайнеров и разработчиков. На этом сайте можно найти множество примеров креативного веб‑дизайна, анимаций и визуальных эффектов. Такие удивительные анимации обычно разрабатываются с использованием WebGL. Эта технология позволяет более свободно и творчески подходить к созданию впечатляющих визуальных эффектов без ущерба для производительности. Для работы с WebGL используются такие библиотеки, как Three.js, PIXIJS или BABYLON, которые также популярны при создании игр.
В данной статье мы рассмотрим совмещение WebGL‑анимации с прокруткой страницы HTML, используя библиотеку Three.js. Работа с ней во многом схожа с работой 3D‑редактора (3ds Max, Maya, Blender и т. д.). Для получения результата в виде картинки или анимации необходимо создать сцену, поместить в нее камеру, создать примитив (геометрию или 3D‑модель), создать источник освещения и запустить процесс рендеринга.
Эта статья будет полезна middle и senior фронтенд‑разработчикам, которые хотят ознакомиться с Three. В статье очень мало теории и вводных материалов, акцент сделан на практической части. Если вы совсем не знаете, как работает Three.js и шейдеры, рекомендую вначале ознакомиться с этой технологией, а после вернуться к статье.
Дао Кодинга
Я натолкнулся на этот мануал в интернете, когда гуглил описание "Верблюжьей вёрстки". Меня, технически и стилистически, очень продвинул данный текст, поэтому я взялся за его перевод, для себя. Переводчик я — так себе, моя основная цель — передать смысл текста в максимально полном объёме. Навык программиста и энтузиазм мне в помощь.
Текст написан от первого лица, и я решил сохранить этот момент. Поэтому "я" — это не я, а оригинальный автор статьи "Tao of Coding" — Коэн Уиттерс.
Читать далее
Данное руководство описывает стиль написания программного кода, который я разрабатывал несколько лет. Но стиль мой настолько неизвестен, что я не знаю никого, кто пользовался бы таким странным способом программировать, каким пользуюсь я. Тем не менее, он мне нравится и я бы хотел поделиться этим знанием (эй ты, везунчик, слышишь меня?). Этот стиль я использовал в разных языках: С, С++, Java, C#, Python,... .
Если вы хотите бегло ознакомиться со стилистикой написания, просто пролистайте страницу вниз и посмотрите на участки кода, написанные моим, "deWiTTERS" способом, и вы увидите, как удачно и красиво он выглядит.
Rust 1.68.0: разреженный протокол cargo, локальный pin, обработчик ошибок аллокации
Команда Rust рада сообщить о новой версии языка — 1.68.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.68.0 вам достаточно выполнить команду:
rustup update stable
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta
) или nightly (rustup default nightly
) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Как мы сделали аудиозвонки в приложении для сотрудников
Меня зовут Ильдар, я техлид в команде Центра развития финансовых технологий (ЦРФТ) Россельхозбанка. Сегодня расскажу о том, как мы внедрили функцию аудиозвонков в наш корпоративный мессенджер для сотрудников.
Тестирование UI в JavaScript – наилучшие практики
От качества UI (пользовательского интерфейса) зависит, состоится приложение или развалится. Для вас принципиально, какое первое впечатление пользователь получит от приложения, так как второго шанса у вас может и не быть. Поэтому важность тестирования UI при разработке приложений только растёт. В процессе тестирования UI проверяются те аспекты работы программы, с которыми придётся непосредственно иметь дело пользователю. Но какими методами и приёмами нужно пользоваться, чтобы добиться максимальной эффективности тестирования? В этой статье мы поговорим именно о таких инструментах, использовать которые можно прямо с сегодняшнего дня. Начнём.
Если вы автоматизируете тесты UI при помощи тестировочного инструмента, то можете:
- Убедиться, что элементы UI не схлёстываются и не смещены,
- Проверить, нет ли ошибок в правописании, капитализации или пунктуации,
- Гарантировать, что шрифт чёткий и хорошо читается, подобрать цвет и кегль шрифта,
- Проверить выравнивание изображений,
- Убедиться, что в браузере правильно выводятся сообщения об ошибках,
- Проверить положение элементов UI при разных разрешениях экрана.
Но, если эти тесты не автоматические, то такой процесс может быть обременителен. Ручное тестирование – сильный метод, и он бывает эффективен, если в программе предусмотрено не так много элементов UI или находится на ранней стадии разработки. Однако, чем больше фич подхватывается в программу, и чем больше элементов добавляется в UI, тем вероятнее, что ручная верификация станет неуправляемой.
Как нанять талантливого программиста и никому не навредить
Этот материал посвящён формированию культуры технических собеседований, проводимых с учётом потребностей людей и с уважением к ним.
Достаточно ли защищен ваш GraphQL API?
На связи Юлия Полозкова, ведущий разработчик отдела архитектурных решений и перспективной разработки «БАРС Груп». В этой статье делюсь опытом, как обеспечить достаточный уровень кибербезопасности бизнес-приложений. Разбираю техники и средства защиты Graph API, такие как отключение интроспекции средствами HotChocolate, лимиты размеров запроса, его глубины вложенности и количества запрашиваемых объектов
Вклад авторов
-
alizar 3850.2 -
olegchir 3286.6 -
tangro 2672.2 -
nmivan 2585.0 -
haqreu 2566.0 -
DmitrySpb79 2296.0 -
MaxRokatansky 2271.8 -
grigoryvp 2212.2 -
ru_vds 2116.6 -
tagir_valeev 1740.0