Обновить
0
Артемий Спиридонов@Ardesread⁠-⁠only

Программист

Отправить сообщение

Базовый набор для решения задач на LeetCode/Codeforces, ч.1

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели21K

«Время — это единственная вещь, которую все хотят иметь, но которую нельзя купить или продлить» — Харви Маккей

Эта серия тредов пригодится тем, кто только начинает учиться решать задачи на таких сайтах как LeetCode или Codeforces, используя при этом C++. В тексте присутствует описание основных библиотек и также по одному небольшому примеру.

Читать далее

Неопределённое поведение в C/C++ и приёмы против лома

Время на прочтение16 мин
Охват и читатели12K

Некоторое время назад в Интернете ходила статья о неопределённом поведении, просто бесившая коренную аудиторию Rust. Завсегдатаи С и C++ в ответ только бурчали, что кто-то просто не понимает Всех Тонкостей и Нюансов Их Светлейшего Языка. Как обычно, пришло время и мне постараться изо всех сил и вставить мои пять копеек в эту застарелую дискуссию.

Готовьтесь поговорить об Основной Проблеме языков C и C++, а также о Принципе Лома.

Читать далее

Базовый набор для решения задач на LeetCode/Codeforces, ч.2 Ассоциативные Контейнеры C++

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели12K

Начиная разбираться в ассоциативных контейнерах нужно обговорить, что вообще такое ассоциативность - если вы в детстве играли в "Ассоциации", то для вас все почти очевидно, ведь для каждого объекта обговариваемого в периоде игры - нужно найти что-то связанное с этим объектом.

Читать далее

Самый детальный разбор закона об электронных повестках через Госуслуги. Как сняться с военного учета удаленно

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели281K

Новый закон об электронных повестках потенциально касается практически всех российских мужчин от 18 до 70 лет. Я узнал у адвоката со специализацией в вопросах мобилизации, чем конкретно нам грозят эти нововведения, и можно ли как-то «выписаться из военкомата» удаленно.

Читать далее

MacOS Monterey на Linux — быстро и просто?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели66K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →

Как «эффективный менеджмент» создаёт катастрофы: изучаем причины техногенных аварий. Часть 1

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели83K

Когда в бизнес приходят «эффективные менеджеры», стоит ждать беды. С программами урезания расходов, подкручиваниями KPI и прочими странными решениями бизнес может в краткой перспективе получить даже какую‑то выгоду для себя, но довольно быстро сталкивается с проблемами: сложно продать или просто угробить курицу, несущую золотые яйца, и ожидать, что золотые яйца продолжат появляться.

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

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

Погрузиться в бездны катастроф

Полиморфные аллокаторы C++17

Время на прочтение9 мин
Охват и читатели22K
Уже совсем скоро в OTUS стартует новый поток курса «C++ Developer. Professional». В преддверии старта курса наш эксперт Александр Ключев подготовил интересный материал про полиморфные аллокаторы. Передаем слово Александру:





В данной статье, хотелось бы показать простые примеры работы с компонентами из нэймспэйса pmr и основные идеи лежащие в основе полиморфных аллокаторов.

Основная идея полиморфных аллокаторов, введенных в c++17, — в улучшении стандартных аллокаторов, реализованных на основе статического полиморфизма или иными словами темплейтов. Их гораздо проще использовать, чем стандартные аллокаторы, кроме того, они позволяют сохранять тип контейнера при использовании разных аллокаторов и, следовательно, менять аллокаторы в рантайме.
Читать дальше →

Аллокаторы памяти

Время на прочтение20 мин
Охват и читатели143K
Всем привет! Не так давно, после очень плотного изучения аллокаторов и алгоритмов распределения памяти, а также в последующем применении их на практике мне в голову пришла идея написать статью, в которой будет максимально подробно рассказано о них. Считаю, что данная тема будет достаточно востребованной, так как в сети, особенно в русскоязычной части, на данный момент существует очень мало источников, посвященных этому вопросу.
Читать дальше →

Альтернативные аллокаторы памяти

Время на прочтение13 мин
Охват и читатели106K
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate)
Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься.

Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new


Обязательная вступительная басня

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

Сейчас объясню, почему...

Сборка и публикация Qt Android приложений через Gitlab CI

Время на прочтение5 мин
Охват и читатели7.7K

Доброго времени суток и с Новым Годом хабровчане! В данной статье хочу рассказать как я делал CI/CD на платформе GitLab для кроссплатформенных мобильных приложений написанных на Qt. Пока что только для Android, но в будущем возможно получится сделать и для iOS. Кого заинтересовал, прошу пожаловать под кат.

Читать далее

Linux-порт Far Manager: новости весны 2023

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели33K

Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.

Нас взяли в Debian!

Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l, без всяких сложностей с ppa или самостоятельной сборкой!

Читать далее

Это ужасно бесит — подборка косяков, постоянно встречающихся от сайта к сайту, от приложения к приложению

Время на прочтение5 мин
Охват и читатели38K

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

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

Читать далее

6 Python декораторов, которые значительно упростят ваш код

Время на прочтение5 мин
Охват и читатели79K

"Простое лучше сложного".

Лучшая функция Python, которая применяет эту философию из "дзен Python", - это декоратор.

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

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

Болтать не буду. Давайте посмотрим на отобранные мной 6 декораторов, которые покажут вам, насколько элегантен Python.

Читать далее

Две культуры программирования: почему обе из них важны?

Время на прочтение13 мин
Охват и читатели60K
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать дальше →

Современный CMake: 10 советов по улучшению скриптов сборки

Время на прочтение8 мин
Охват и читатели95K

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

Читать дальше →

Перегрузка операторов в C++

Время на прочтение6 мин
Охват и читатели794K
Доброго времени суток!

Желание написать данную статью появилось после прочтения поста Перегрузка C++ операторов, потому что в нём не были раскрыты многие важные темы.

Самое главное, что необходимо помнить — перегрузка операторов, это всего лишь более удобный способ вызова функций, поэтому не стоит увлекаться перегрузкой операторов. Использовать её следует только тогда, когда это упростит написание кода. Но, не настолько, чтобы это затрудняло чтение. Ведь, как известно, код читается намного чаще, чем пишется. И не забывайте, что вам никогда не дадут перегрузить операторы в тандеме со встроенными типами, возможность перегрузки есть только для пользовательских типов/классов.
Читать дальше →

Зеркалирование GitHub-проектов в 2023 году

Время на прочтение5 мин
Охват и читатели15K

По ряду причин я решил зеркалировать свои открытые GitHub-проекты на другие платформы совместной разработки. Сделать это оказалось не так просто. В этой короткой статье описаны трудности, с которыми мне пришлось столкнуться, и итоговое рабочее решение.

Читать далее

Wine 8.0: что «выросло» в новой версии? Возможности и совместимость с ПО

Время на прочтение4 мин
Охват и читатели22K

На Хабре публиковалась новость о Wine 8.0, новый релиз был представлен спустя целый год разработки и трех десятков тестовых версий для «обкатки». Наконец, несколько дней назад разработчики представили стабильный релиз Wine 8.0. Работа действительно очень объемная — команда внесла почти 9 000 изменений.

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

Принципы SOLID на JS, теперь точно простым языком, но не очень коротко

Время на прочтение9 мин
Охват и читатели39K

SOLID — универсальный набор принципов разработки поддерживаемого программного обеспечения. В данной статье я попытался разъяснить свое понимание принципов SOLID в отношении языка JavaScript: особенности реализации, некоторые синтаксические конструкции и, конечно, примеры из жизни. Если вам стало интересно, то прошу под кат.

Читать далее

Высокофункциональная лень

Время на прочтение7 мин
Охват и читатели9.7K

Лень и морализм

Вокруг лени есть ореол морализма. «Фуу плохо». Не хорошо быть ленивым, надо много трудиться. Лень — зло.

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

Лень: биологически основы

Эволюционные предпосылки

В древней древности калории были очень дорогими. За каждый маленький кусочек еды приходилось платить значительными затратами сил.

Поведенческие программы. А у всякой программы есть жизненный цикл. Есть версии программы, они могут устареть в новых реалиях. Эволюция «не успевает» за изменениями условий и среды.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность