Как стать автором
Обновить
696.95

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Численно решаем волновое уравнение разностной схемой

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 311
Программирование *Математика *
Из песочницы

Для меня уравнения в частных производных -- это очень красивая история из студенчества. Почему? Это невероятно красиво. Но что особенно стало для меня захватывающим, так это то, что дифуры в широком смысле прикладной математики -- это тот самый пример, когда математика и компьютер используются вместе, чтобы представить некоторую компьютерную модель вполне реальных процессов. Как вы уже, наверное, догадались, речь пойдёт про то, как вообще можно попробовать решать дифференциальные уравнения в частных производных на компьютере. Мы попробуем это сделать на примере волнового уравнения и с использованием уже ставших привычными python, scipy и numpy. Если вы примерно помните математику, но панически боялись дифуров или они просто как-то обошли вас стороной, то добро пожаловать.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 1

Новости

Выгорание программиста. Интересная работа — самая опасная

Время на прочтение 7 мин
Количество просмотров 869
Блог компании RUVDS.com Программирование *Управление персоналом *Карьера в IT-индустрии Здоровье

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

  • выгорание,
  • физическая деградация,
  • депрессия,
  • ранний уход из профессии.

Все эти последствия хорошо предсказуемы. Поэтому их можно предотвратить.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 4

Переходим на Flutter: за и против

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 978
Программирование *Разработка под iOS *Разработка под Android *Dart *Flutter *
Из песочницы

Привет, Хабр!

Меня зовут Данил Абдрафиков и уже более пяти лет я занимаюсь мобильной разработкой, три из которых — на Flutter. Последние несколько лет я разрабатываю продукты для энтерпрайза в TAGES, и за это время у меня успел накопиться определенный опыт, которым я бы хотел поделиться с вами в сегодняшней статье. Я расскажу, что нужно знать опытному мобильному разработчику для перехода на Flutter, с какими особенностями можно столкнуться и стоит ли вообще переходить на него.

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 16

Оптимизируем изображения в HTML

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 1.2K
Блог компании Нетология Разработка веб-сайтов *Программирование *HTML *Браузеры
Перевод

Вместе со Стивом Сьюэллом, CEO Builder.io, разбираемся, почему с точки зрения оптимизации производительности изображения лучше загружать через HTML, а не через CSS. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 6

Истории

Пишем простой калькулятор используя фреймворк eframe (egui)

Уровень сложности Средний
Время на прочтение 34 мин
Количество просмотров 1.1K
Программирование *GitHub *Rust *WebAssembly *
Из песочницы

Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Используется язык программирования Rust и фреймворк eframe (egui). В результате получим исполняемый файл для ОС Windows, и файл Webassembly. В процессе работы будет использоваться GitHub Action для отслеживания корректности написания нашего кода и сборки исполняемых файлов программы, а также для развертывания (версию программы с использованием Webassembly) как страницы в интернете (GitHub Pages).

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 0

Интеграция с Apache Cassandra. Создаем микросервис с Cassandra и Kafka

Уровень сложности Средний
Время на прочтение 66 мин
Количество просмотров 596
Блог компании OTUS Программирование *Микросервисы *
Кейс

Сегодня мы узнаем, как написать микросервис, который сохраняет данные в Apache Cassandra с помощью Java-драйвера DataStax и генерирует события для изменений данных в Apache Kafka.

Этот пост основан на дизайне простого микросервиса для управления данными бронирования отелей, который называется Reservation Service. Вы можете выполнить серию упражнений по записи и чтению данных в Cassandra с помощью службы резервирования в наборе «Cassandra: разработка приложений с помощью Java-драйвера DataStax». Исходный код службы бронирования доступен на GitHub.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 0

Первая информация о JDK 21: что принесет следующий LTS релиз?

Время на прочтение 3 мин
Количество просмотров 2.1K
Программирование *Java *API *
Дайджест
Перевод

Поскольку мы все с нетерпением ждем скорого выпуска JDK 20, список функций, которые появятся в JDK 21 этой осенью, также постепенно проясняется.

Сегодня мы рассмотрим тему того, что принесет следующий LTS релиз JDK 21.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 5

Разработка надстройки Macro Tools VBA – для автоматизации процесса создания макросов в VBE MS Excel

Время на прочтение 3 мин
Количество просмотров 875
Программирование *Софт Visual Basic for Applications *

Доброго времени суток!

Предыстория — личный опыт

Хочу поделиться своим опытом использования надстроек, которые позволяют автоматизировать процесс разработки макросов в Visual Basic Editor MS Excel (далее VBE). В результате которого я разработал свою надстройку для разработки макросов VBA.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 20

Проверка XML. Schematron

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 681
Блог компании RUVDS.com Open source *Программирование *XML *XSLT *

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

Недавно мне довелось поучаствовать в проекте, особую роль в котором занимают функции форматно-логического контроля входящих документов. Как следствие, у меня появились некоторые варианты решения подобных задач. Одним из них я и хочу поделиться.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 1

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

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 1.4K
Блог компании CloudMTS Программирование *IT-инфраструктура *Сетевые технологии *Go *
Кейс

Привет!

Меня зовут Петр Коробейников, я техлид команды DBaaS for Redis в #CloudMTS.
Некоторое время назад я озадачился созданием общего набора инструментов для наших команд разработки. Цель была проста: разработчик не тратит время на погружение в логику работы конкретного инструмента, берет готовую инструкцию и просто делает свое дело — пишет код. Типовое окружение поможет переходить ребятам из команды в команду и быстро адаптироваться, а новичку — проще приступить к работе.

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

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 10

Неожиданная проблема с макросами (точнее без макросов)

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 3.4K
Ненормальное программирование *Программирование *C++ *Компиляторы *C *
Мнение

image


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


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


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


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

Читать дальше →
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 28

Java для сисадминов

Время на прочтение 17 мин
Количество просмотров 3.9K
Блог компании ГК ЛАНИТ Программирование *Java *
Туториал

Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.

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

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Комментарии 2

Главное из мира Python за февраль 2023

Время на прочтение 3 мин
Количество просмотров 3K
Разработка веб-сайтов *Python *Программирование *Django *Flask *
Дайджест

Раз в месяц мы в Moscow Python Podcast собираемся и обсуждаем новые релизы, PEP, заинтересовавшие нас инструменты и статьи. Под катом — текстовая выжимка из обсуждения.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 9

Встраивание WebGL в HTML-страницу с помощью Three.JS

Уровень сложности Сложный
Время на прочтение 15 мин
Количество просмотров 977
Блог компании SimbirSoft Разработка веб-сайтов *JavaScript *Программирование *
Туториал

demo, github

Приветствую! Я Алексей, 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 и шейдеры, рекомендую вначале ознакомиться с этой технологией, а после вернуться к статье.

Читать далее
Рейтинг 0
Комментарии 0

Дао Кодинга

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 3.6K
Программирование *Совершенный код *
Из песочницы
Перевод

Я натолкнулся на этот мануал в интернете, когда гуглил описание "Верблюжьей вёрстки". Меня, технически и стилистически, очень продвинул данный текст, поэтому я взялся за его перевод, для себя. Переводчик я — так себе, моя основная цель — передать смысл текста в максимально полном объёме. Навык программиста и энтузиазм мне в помощь.

Текст написан от первого лица, и я решил сохранить этот момент. Поэтому "я" — это не я, а оригинальный автор статьи "Tao of Coding" — Коэн Уиттерс.

Читать далее

Данное руководство описывает стиль написания программного кода, который я разрабатывал несколько лет. Но стиль мой настолько неизвестен, что я не знаю никого, кто пользовался бы таким странным способом программировать, каким пользуюсь я. Тем не менее, он мне нравится и я бы хотел поделиться этим знанием (эй ты, везунчик, слышишь меня?). Этот стиль я использовал в разных языках: С, С++, Java, C#, Python,... .

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

Читать далее
Всего голосов 16: ↑12 и ↓4 +8
Комментарии 24

Rust 1.68.0: разреженный протокол cargo, локальный pin, обработчик ошибок аллокации

Время на прочтение 3 мин
Количество просмотров 2.6K
Open source *Программирование *Компиляторы *Rust *
Перевод

Команда Rust рада сообщить о новой версии языка — 1.68.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.


Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.68.0 вам достаточно выполнить команду:


rustup update stable

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


Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать beta (rustup default beta) или nightly (rustup default nightly) канал. Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Комментарии 0

Как мы сделали аудиозвонки в приложении для сотрудников

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 3.7K
Блог компании РСХБ-Интех (Россельхозбанк) Программирование *Разработка мобильных приложений *IT-компании Flutter *
Кейс

Меня зовут Ильдар, я техлид в команде Центра развития финансовых технологий (ЦРФТ) Россельхозбанка. Сегодня расскажу о том, как мы внедрили функцию аудиозвонков в наш корпоративный мессенджер для сотрудников.

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 7

Тестирование UI в JavaScript – наилучшие практики

Время на прочтение 9 мин
Количество просмотров 2.9K
Блог компании Издательский дом «Питер» JavaScript *Программирование *
Перевод
image
Это руководство по наилучшим практикам в тестировании UI на JavaScript, от разработки через поведение (BDD) до соглашений об именовании и до того, какие именно операции браузер должен выполнять в рамках тестов.

От качества UI (пользовательского интерфейса) зависит, состоится приложение или развалится. Для вас принципиально, какое первое впечатление пользователь получит от приложения, так как второго шанса у вас может и не быть. Поэтому важность тестирования UI при разработке приложений только растёт. В процессе тестирования UI проверяются те аспекты работы программы, с которыми придётся непосредственно иметь дело пользователю. Но какими методами и приёмами нужно пользоваться, чтобы добиться максимальной эффективности тестирования? В этой статье мы поговорим именно о таких инструментах, использовать которые можно прямо с сегодняшнего дня. Начнём.

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

Но, если эти тесты не автоматические, то такой процесс может быть обременителен. Ручное тестирование – сильный метод, и он бывает эффективен, если в программе предусмотрено не так много элементов UI или находится на ранней стадии разработки. Однако, чем больше фич подхватывается в программу, и чем больше элементов добавляется в UI, тем вероятнее, что ручная верификация станет неуправляемой.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

Как нанять талантливого программиста и никому не навредить

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.9K
Блог компании Wunder Fund Программирование *Управление персоналом *Карьера в IT-индустрии
Перевод

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

Читать далее
Всего голосов 27: ↑23 и ↓4 +19
Комментарии 4

Достаточно ли защищен ваш GraphQL API?

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 878
Блог компании БАРС Груп Информационная безопасность *Программирование *API *
Туториал

На связи Юлия Полозкова, ведущий разработчик отдела архитектурных решений и перспективной разработки «БАРС Груп». В этой статье делюсь опытом, как обеспечить достаточный уровень кибербезопасности бизнес-приложений. Разбираю техники и средства защиты Graph API, такие как отключение интроспекции средствами HotChocolate, лимиты размеров запроса, его глубины вложенности и количества запрашиваемых объектов

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 0

Вклад авторов