Обновить
256K+

C++ *

Типизированный язык программирования

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

Халява с Юлы и Авито

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

Как вы думаете, многие люди используют дома холодильники и стиральные машины? Наверное практически все. А ломается эта техника? Еще как! А всегда ли ее потом чинят? Наверное кто-то чинит. А кто-то не чинит, а хочет от нее избавиться. А как проще всего избавиться? Вынести на помойку? А если вы живете на 3…5 этаже без лифта? Может быть выкинуть в окно? ;-) Нет, гораздо проще дать бесплатное объявление типа «Отдам даром старый холодильник. Морозит кое как самовынос  и самовывоз». Объявление можно дать на авито или юлу. Указать свой номер телефона и всегда найдутся желающие взять технику. Что-то можно будет сдать в прием лома, что-то пустить на запчасти, а что-то может и починить, если есть навыки.

Только вот есть интересные моменты: сколько может найтись таких желающих и как быстро они найдутся?

Забегая вперед скажу: желающих может найтись много, и найдутся они очень быстро. В СПб, в среднем, холодильник в любом состоянии находит нового владельца за 1…2 минуты. Время очень короткое, неправда  ли? А теперь я расскажу мою историю по порядку.

Несколько лет назад, мне по работе приходилось мотаться по городу. Причем ездил я в основном на метро и на маршрутках. Сидел и копался на сайтах объявлений в поисках чего-то интересного из компьютерных раритетов и прочих штуковин. И случайно напоролся на объявление об отдаче то ли газовой плиты, то ли еще чего-то похожего. И отдавали рядом с моим домом. Решив, разжиться на халявку этой техникой я дождался станции (чтобы не так шумно было) и позвонил, но мне ответили, что все, уже отдано. А прошло минуты 3…4. Ого-го, что-то быстро. И я стал уже целенаправленно искать подобные объявления, и да, они находились, только реально что-то взять уже не выходило. Я всегда опаздывал.

Читать далее про халяву ;-)

Управление RC машинкой 27mhz с компьютера

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

Накопилось у меня некоторое количество радиоуправляемых игрушек, из тех, которые покупать своим двум детям нельзя: один пульт управляет всем в округе, никакого разделения ни по частотам, ни по кодам. Одновременно играть не получится. У меня эти игрушки работают на частоте 27mhz, но аналогичные могут работать на частотах 35, 40, 49 mhz по тому же простейшему протоколу, о котором и пойдет речь дальше.

Моя идея заключалась в том, чтобы сделать USB девайс, на который можно передавать с компьютера коды команд, а это устройство каждую команду закодирует и выдаст в эфир RC-машинке.

Читать далее

Адаптация Qt-приложений под мониторы высокой чёткости. Часть 1

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

В связи с техническим прогрессом рынок мониторов постоянно обновляется моделями с повышенным разрешением, плотностью пикселей и/или размером экрана. Году в 2010 стандартным монитором можно было считать экземпляр 19’’ c разрешением WXGA++ (1600*900) и фактической плотностью пикселей 97 DPI (dots per inch). Сейчас (2021 год) стандартным монитором, думаю, можно признать экземпляр 24’’ c разрешением Full HD (1920*1080) и плотностью пикселей 92 DPI. Под «стандартным» я понимаю тот монитор, который стоит на рабочем месте у большинства работающего люда: инженеры, бухгалтеры, переводчики и т.д. (при этом, конечно, «стандартность» — это субъективная и приблизительная оценка). Относительно новые и отчасти нишевые модели (для фотографов, видеографов, геймеров) имеют характеристики: 4K UHD (3840*2160) и 28’’ (157 DPI) или UWQHD (3440x1440) и 34" (109 DPI) или QHD (2560x1440) и 27" (109 DPI) или UWHD (2560x1080) и 29" (96 DPI). Таким образом, наблюдается рост в связанных группах признаков: разрешение+размер экрана, или разрешение+плотность пикселей, или даже разрешение+плотность пикселей+размер экрана. На рынке ноутбуков в плане экранов похожая ситуация – растет разрешение+плотность пикселей.

К сожалению, не всегда программное обеспечение поспевает за ростом характеристик мониторов. Нередко оно выглядит немного коряво и неухоженно, что расстраивает пользователя. Действительно, на дворе 21 век, а зачастую приходится видеть размытые шрифты, а иногда и микроскопические иконки.

Что касается высокой чёткости (большой плотности пикселей), то в ОС Windows давно есть такие настройки, как масштабирование шрифта и изображений (масштаб экрана), которые применяются для увеличения слишком малых элементов GUI на мониторах с высокой чёткостью (High DPI). Также есть поддержка в платформе Qt (с нюансами, об этом далее). Однако способно ли Ваше, конкретное ПО их адекватно учитывать, применять?

Читать далее

Маленькая библиотека для работы с графами

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

Хочу рассказать об одном интересном решении для работы с небольшими графами (несколько сотен или тысяч вершин с несколькими ребрами каждый) над которыми нужно выполнять довольно много разнообразных вычислений. Я постарался изложить материал максимально просто, чтобы было понятно даже начинающим разработчикам, и последовательно, начиная с самых первых простых решений в начале работы и дальше в строну усложнения. Тем не менее для поминания необходимо знание С++, в частности базовое понимание шаблонов и рекурсивных функций. Статья скорее про реализацию на С++, чем про графы.

Читать далее

Уроки по SDL 2: Урок 13 ввод текста и прокрутка экрана

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

В этом уроке мы научимся создавать миникарту, прокручивать экран по ней, и писать текст с клавиатуры на экран.

код:

Читать далее

С++23 — feature freeze близко

Время на прочтение6 мин
Охват и читатели22K
Прошло четыре месяца с прошлой онлайн-встречи ISO-комитета, а значит, настало время собраться опять.



В этот раз в черновик нового стандарта C++23 добавили весьма полезные и вкусные новинки:

  • operator[](int, int, int)
  • монадические интерфейсы для std::optional
  • std::move_only_function
  • std::basic_string::resize_and_overwrite
  • больше гетерогенных перегрузок для ассоциативных контейнеров
  • std::views::zip и zip_transform, adjacent, adjacent_transform

Подробности об этих и других (даже более интересных!) вещах, а также о том, что за диаграмма стоит в шапке, ждут вас под катом.
Читать дальше →

Заводим трактор: QMake -> CMake

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

Заводим трактор: переезжаем с QMake на CMake?

По дороге заглянем на улицу "Кросс компиляторщиков", в сквер "Систем сборки" и посидим в баре "Управления зависимостями". Заодно увидим тех, кто использует Qt в embedded linux.

Поехали

TypeScript Native (AOT) Compiler

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

TypeScript Native (AOT) Compiler

Имплементация нативного Ahead-of-Time компилятора для языка TypeScript

Читать далее

Тайные знания: библиотеки для С++

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

Рун не должен резать
Тот, кто в них не смыслит.
В непонятных знаках
Всякий может сбиться.
Десять знаков тайных
Я прочел и знаю...(Сага об Эгиле)

Многие начинающие программисты, уже освоив синтаксис C++, обнаруживают, что нет простого способа, как подключить библиотеку, так и собрать программу для другой ОС, или чего хуже, под другим компьютером с той же ОС. Эта проблема отчасти порождается спорной практикой обучения, когда код учат писать и запускать лишь средствами IDE, таких как Visual Studio, Code::Blocks, и других.
Поначалу такой подход работает, но лишь до первой реальной задачи сделать что-то, что запустится не только на вашей машине. Тут-то новички и сталкиваются с отсутствием стандартной системы сборки и менеджера зависимостей. После осознания этой сложности, большинство студентов, как правило, переходят на другие языки, попутно тиражируя в индустрии миф о том, что C++ де не кроссплатформенный язык, а вот мой Python/Java/C# - да.
Между тем нас окружает множество замечательных кроссплатформенных программ написанных на C++. Если вы обучаетесь C++ и хотите понять как создавать такое ПО, то эта статья для вас.

Узнать заклинания кроссплатформености

Дизайн и эволюция constexpr в C++

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

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

У constexpr с каждым годом становится больше возможностей. Сейчас использовать в compile-time вычислениях можно почти всю стандартную библиотеку. Пример вычисления числа до 1000 с наибольшим количеством делителей: ссылка на код.

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

Эта статья подходит как тем, кто еще не знает, что такое constexpr, так и тем, кто уже долгое время его использует.

Назад в будущее

Немного уличной магии, либо как статически определить вызывается ли функция

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

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

Читать далее

Уроки по SDL 2: Урок 12 Музыка и мышь

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

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

Читать далее

Xeus-lua — интерактивные виджеты Lua в Jupyter Notebook

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

Торстен Бейер — программист из QuantStack, в Open Source он работал над nifty и vigra на C++, а также над inferno, kipoi и ilastik — на Python. Делимся материалом о новом ядре Lua от Торстена Бейера из блога разработчиков Jupyter, пока у нас начинается флагманский курс Data Science.

Читать далее

Ближайшие события

Безопасное использование C++

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

От переводчика. Данный текст является переводом документа Safer Usage Of C++, выложенного в общий доступ командой Chromium/Chrome из компании Google. Текст активно обсуждался на Reddit, и команда PVS-Studio решила, что аудитории Habr-а может быть интересно познакомиться с его русскоязычным вариантом. Для перевода использован текст от 20 сентября 2021, и на момент его чтения он может отличаться от текста по ссылке.

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

CWE Top 25 2021. Что такое, с чем едят и чем полезен при статическом анализе?

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

Впервые поддержка классификации CWE появилась в PVS-Studio с релизом 6.21, который состоялся 15 января 2018 года. С тех пор прошло уже очень много времени, и хотелось бы рассказать об улучшениях, связанных с поддержкой этой классификации в последних версиях анализатора.


https://import.viva64.com/docx/blog/0869_CWE_status_ru/image1.png


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

Темы оформления Visual Studio Code стали доступны в Visual Studio (+8 интересных тем)

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

Microsoft выпустила новый инструмент, который преобразует темы VS Code для работы в Visual Studio. Теперь есть возможность выбирать паттерн оформления IDE из встроенных тем и тем сообщества в Visual Studio 2022.

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

Читать далее

Зачем нужен динамический анализ кода, на примере проекта PVS-Studio

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

В разговоре с Маршаллом Клоу на подкасте CppCast #300 ABI Stability была затронута достаточно давняя новость о поддержке компиляторами Visual Studio инструмента AddressSanitizer (ASan). Мы уже достаточно давно внедрили ASan в свою систему тестирования и хотим рассказать о паре интересных ошибок, которые он помог найти.


0868_PVS-Studio_ASan_ru/image2.png

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

Новости из жизни Haiku за август-сентябрь 2021

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

Здравствуйте, дорогие друзья. Продолжаю Вас знакомить на Хабре с новостями проекта Haiku.

Читать далее

Руководство Google по стилю в C++. Часть 5

Время на прочтение7 мин
Охват и читатели16K
Часть 1. Вступление

Часть 4. Классы
Часть 5. Функции
Часть 6. Специфика Google



Эта статья является переводом части руководства Google по стилю в C++ на русский язык.
Исходная статья (fork на github), обновляемый перевод.
Читать дальше →