Рубрика «Программирование» - 81

Хаос всегда возрастает. Возрастает непрерывно и неотвратимо. Так гласит второй закон термодинамики: в любой замкнутой системе энтропия – мера хаоса – увеличивается, пока та не достигнет термодинамического равновесия – состояния полной неопределённости, когда ничего нельзя предвидеть и всё ведёт себя предельно беспорядочно. Мы, живые организмы, не являемся замкнутыми системами, и сдерживаем рост энтропии внутри себя за счёт увеличения его снаружи – пока можем. И программные проекты имеют с нами много общего: они тоже вынуждены тратить внешние ресурсы (силы разработчиков, CPU на оверхед абстракций), чтобы сдерживать непрерывно растущую энтропию – иначе в какой-то момент они теряют способность достаточно быстро адаптироваться к изменяющейся действительности и умирают.

Программист и энтропия - 1
Какаду воспринимают тезис про увеличение энтропии снаружи слишком буквально.

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

Прочитав эту статью вы узнаете:

  1. Способы, которыми можно продлить время жизни временного объекта в С++.

  2. Рекомендации и подводные камни этого механизма, с которыми может столкнуться С++ программист, и с которыми сталкивался на работе я.

Информация из статьи может быть полезна как новичкам, так и профессионалам.

Если заинтересовало, то самое время налить чая, и погнали разбираться где тут референсы повисли.

Оглавление

Предисловие

Как Вы возможно знаете на территории РФ более недоступен Qt. Также в этот момент мне потребовалось реализовать кросс-компиляцию своего проекта под разные ОС. В ходе реализации кросс-компиляции обнаружилось, что можно совершенно легально использовать Qt, да еще и реализовать кросс-компиляцию.

Windows 11

Используя метод проб и ошибок выяснилось, что наиболее хорошо подходит для данных целей Windows 11, т.к. под него есть X Server, причем абсолютно бесплатный. Также не может не радовать скорость работы WSL2 под данной ОС. Итак, не буду томить - переходим к реализации.

Установка WSL2 + X Server

Читать полностью »

Work in Progress: самодельный микро ЧПУ-робот для заточки фрез и свёрл - 1


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

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

Сразу скажу, что ничего подобного (несмотря на достаточно напряжённые поиски) — я никогда не встречал. Ни в российском сегменте интернета, ни в мировом. Так что, не удивлюсь, если подобный аппарат, с теми характеристиками, которые рассматриваются ниже — будет первым в мире!

Читать полностью »

Добавляйте единицы измерения в имена - 1

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

time.sleep(300)

Thread.sleep(300)

threadDelay 300

Сколько «спят» эти программы? Программа на Python выполняет задержку на пять минут, программа на Java — на 0,3 секунды, а программа на Haskell — на 0,3 миллисекунды.

Как это можно понять из кода? А никак. Вам просто нужно знать, что аргументом time.sleep являются секунды, а threadDelay — микросекунды. Если вы часто ищете эту информацию, то рано или поздно её запомните, но как сохранить читаемость кода для людей, никогда не встречавшихся с time.sleep?
Читать полностью »

В сфере создания квантовых компьютеров в 2023 году может произойти сразу несколько значимых событий. Ожидается, что именно в этом году появится первая коммерческая модель квантового компьютера, а также будет практически завершена работа над первым российским квантовым компьютером на ионах. Будет ли это означать уверенное достижение квантового превосходства, о котором уже заявили в Google, Читать полностью »

С виду – мужики как мужики. Ну да, среднего возраста, со слегка притухшим взглядом, без искорки. Но таких много среди пытающихся войти в айти. Внешние признаки в резюме и на собеседовании – как у всех, ничего выдающегося.

Но у этих парней есть тайна. Нет, у них Тайна. Вскрывается, как теперь выяснилось, элементарно – задним умом и я крепок. Но то ли я какой-то не такой, то ли явление действительно из ряда вон… Распознать именно тенденцию смог лишь с третьего раза.

История будет короткой, чай не успеете допить.

Читать полностью »

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

Начало

Довольно часто у студентов, изучающих C++ в определённых учебных кругах, складывается мировоззрение о том, что всё должно быть объектами. Попросите их написать программу, которая считает некоторое значение - и они начнут с создания объекта ValueComputer и метода vc.computeResult()Читать полностью »

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

image
Мать вычислений, бесподобная леди Лавлейс
Читать полностью »

В этом опусе я написал о буднях программиста микроконтроллеров в России.

Господа, Если у Вас нет времени читать эту одиссею, то можете послушать её аудиоверсию в формате *.mp3
https://vk.com/audio2000225095_456245975

Что вообще пишут программисты МК и на чем?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js