В численной линейной алгебре нас интересуют точное и эффективное решение задач и понимание чувствительности задач к возмущениям. К старту флагманского курса по Data Science делимся материалом от профессора Ника Хигэма о семи грехах линейной алгебры, из-за которых теряется точность/эффективность или информация о чувствительности [к возмущениям] оказывается недостоверной.
инженер-программист
Библиотека тестировщика: обзор полезных книг по тестированию ПО

В каждой профессии есть книги из категории «маст хэв» — те, которые любой уважающий себя специалист должен обязательно прочитать в целях самообразования. Какая полезная книга помогла бы углубить профессиональные знания тестировщика? Представляем обзор изданий, которые наверняка займут достойное место в библиотеке.
Есть ли жизнь без RTTI: пишем свой dynamic_cast

В современном С++ осталось не так много вещей, которые не подходят под парадигму "Не плати за то, что не используешь". Одна из них – dynamic_cast. В рамках данной статьи мы разберёмся, что с ним не так, а когда поймём – попробуем предложить альтернативу.
Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. Каждый день нашим мессенджером пользуются миллионы людей, поэтому мы уделяем особое внимание интерфейсу пользователя. Он должен быть не только функциональным и отзывчивым, но ещё и привлекательным с эстетической точки зрения. Для создания графических интерфейсов мы используем Qt Framework, и уже накопили много опыта в решении нетривиальных задач с помощью этого инструмента. Настолько много, что статью пришлось разделить на две части.
Под катом мы пройдём путь от создания отдельных компонентов-примеров, экспериментов с маскированием, прозрачностью, размытием и перекрывающимися компонентами до разработки небольшого демонстрационного приложения, объединяющего все полученные ранее решения.
Наглядное руководство по SSH-туннелям

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.
Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.
Пара слов о паттерне “Пассивное Представление” (Passive View)

Это выдержка из книги Further Enterprise Application Architecture development, работу над которой автор начал в середине нулевых. К сожалению, с тех пор слишком много других не менее важных вещей стали требовать его внимания, поэтому не было времени как следует поработать над книгой и просвета в обозримом будущем не предвидится. Поэтому имейте ввиду, что этот материал находится в черновом варианте и автор не планирует вносить никаких исправлений или обновлений, пока не найдется время закончить эту книгу.
Извечной проблемой при построении полнофункциональных клиентских систем является сложность их тестирования. Фреймворки очень большой части таких полнофункциональных клиентских систем создаются без оглядки на необходимость автоматизированного тестирования. Программное управление этими фреймворками часто бывает очень сложным.
Паттерн “Пассивное Представление” (Passive View) призван помочь нам с этим, сводя присутствие какой-либо логики в компонентах пользовательского интерфейса к абсолютному минимуму, перемещая ее в контроллер, который теперь не только обрабатывает ответы на пользовательские события, но и выполняет все обновления представлений. Это позволяет сосредоточить тестирование на контроллере, минимизируя риски возникновения проблем в представлении.
Обработка ошибок и C++

О чём тут не будет: напоминания базовых конструкций языка и основных моментов о том, как с ними работать; подробного разбора, как работают исключения (писали тут и тут); как грамотно спроектировать ваш класс/программу, чтобы не наломать дров в будущем с гарантией исключений (разве что совсем чуть-чуть, хотя я сам и не очень-то тук-тук).
О чём будет: разные способы обработки ошибок в C++, несколько советов от сообщества и немного заметок о различных жизненных (и не очень) ситуациях.
Объясняю Pattern Memento (Снимок)

В начале своего разработческого пути, меня часто посещало желание понять и принять паттерны. Но в интернете, этот материал крайне сложен для начинающих программистов. Поэтому я решил создать цикл статей, в которых разберу все GoF паттерны.
Первым разобранным шаблоном будет Снимок, замечательный паттерн, который часто не могут понять начинающие разработчики.
Боремся с 16-летним легаси-кодом, или исправляем C и C++ front-end в PVS-Studio

В 2022 году статическому анализатору PVS-Studio для языков C и C++ исполняется 16 лет. Если бы анализатор был человеком, то он бы уже заканчивал школу. Это очень старый проект, и система типов в нем не потерпела кардинальных изменений практически с самого начала. В этой статье мы посмотрим, как работал анализатор всё это время и расскажем, что было не так, и как мы начали это исправлять.
Алгоритмы сортировки и их производительность

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.
Разбираемся с условными брейкпоинтами в C++

Для большинства случаев дебаггинга вам должно с головой хватать стандартных точек останова (breakpoints или брейкпоинтов). Но иногда кода для проверки, объектов или случаев попросту слишком много. Что делать, если мы хотим отфильтровать код, генерирующий точку останова? Прошу вас поприветствовать условные точки останова!
Обзор markdown редакторов для Django
Упрощаем код с помощью if constexpr и концептов C++17/C++20

До C++17 у нас было несколько довольно неэлегантных способов написать static if
(if, который работает во время компиляции). Например, мы можем использовать статическую диспетчеризацию или SFINAE. К счастью, ситуация изменилась к лучшему, ведь теперь мы можем воспользоваться для этого if constexpr
и концептами C++20!
Ну что ж, давайте разберемся, как мы можем использовать это в качестве замены std::enable_if
кода!
Information
- Rating
- 3,889-th
- Location
- Свердловская обл., Россия
- Date of birth
- Registered
- Activity