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

C++ *

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

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

Как я поднял свой сервер без возможности выставить для него статический IP адрес

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 30K

Родился я в одном городе, позже переехал жить в другой. В родном городе остался ПК, который стоит без дела. В один прекрасный день решил я из него сделать многофункциональную удаленную машину: чтобы и кодить, и файлы хранить, и сайты/ботов хостить. Идея мне понравилась, я накатил на машину линукс, поставил все валявшиеся без дела диски и начал все это проверять. Но тут оказалось, что в родительском доме интернет тариф не поддерживает возможность установки статического IP адреса по умолчанию - адрес выдается провайдером в случайные моменты времени. Это означало, что я не мог, например, хостить какой-нибудь сервер на этой машине. Более того, я даже банально не мог к ней по SSH подключиться после смены ее адреса.

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

Читать далее
Всего голосов 68: ↑33 и ↓35 -2
Комментарии 93

Новости

ESPspectrum прошивка

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

ESPspectrum - проект на основе компьютера ZX spectrum, с собственной простой операционной системой.

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

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

Как я создавал автокликер для приложения «ДругВокруг»

Уровень сложности Средний
Время на прочтение 15 мин
Количество просмотров 5.8K

Социальные сети и мессенджеры последнее время завоевали большую популярность среди пользователей интернета. Одной из таких соцсетей было приложение «ДругВокруг». Точнее, было в моём обиходе. Стояло оно у меня на компьютере с Windows XP в 2016 году. В то время у меня возникла идея сделать одну интересную программу для работы с этим приложением...

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

Разработка под Symbian: SDK

Время на прочтение 2 мин
Количество просмотров 4.1K
Речь пойдет о платформе Series 60, позже переименованной в S^1.

Это обзорная статья, если немного сумбурная — извините. Только-только исправил все ошибки в postinker elf2e32, её описание и ссылка на гитхаб — в конце статьи.
image
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 8

Истории

Еще один год из жизни ReactOS

Время на прочтение 6 мин
Количество просмотров 13K

Здравствуйте, дорогие друзья!

Вот и заканчивается 2023 год. В этой статье я хочу продолжить начатую в 2021 году традицию вспоминания наиболее важных событий из жизни ReactOS за год. То что статьи не появляются на Хабре, не значит что система мертва. Медленно, но верно, в ReactOS реализуются разные фичи и исправляются баги. И в данной статье мы рассмотрим что произошло в жизни системы в 2023 году.

Читать далее
Всего голосов 108: ↑106 и ↓2 +104
Комментарии 54

Электроника для самых маленьких: или еще один UV излучатель для активации фотополимера

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

Однажды в своих запасах я наткнулся на пакет с микроконтроллерами ATtiny2313A, которые были куплены по акции лет шесть назад на всем известном китайском маркетплейсе и успешно заброшены в дальний угол. Эта неожиданная находка побудила меня создать простое и компактное устройство, которое имеет важное значение для производства прототипов печатных плат в домашних условиях. И что из этого получилось — об этом далее.
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 32

Быстрый парсинг 8-битных целых чисел

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 8.9K

Допустим, вам нужно быстро распарсить 8-битные целые числа (0, 1, 2, …, 254, 255) из строки ASCII/UTF-8. Задача взята из проекта simdzone под руководством Йероена Коеккоека (NLnet Labs). Дана строка и её длина: например, ’22’ и длина 2. Наивное решение на C может выглядеть так:

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

ESPspectrum

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

ESPspectrum - проект на основе компьютера ZX spectrum, с собственной простой операционной системой. Есть возможность открывать, редактировать, создавать и удалять файлы. Есть калькулятор с историей запросов, также я сделал режим свободной печати, как для определения адреса клавиш, так и для теста клавиатуры. Устройство компактное, всего 6 на 10 см.

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

Полезные материалы для С++ разработчика: о новом стандарте, висячих ссылках и технических собеседованиях

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 7.4K

Привет, Хабр! Принесли материалы с недавнего митапа по С++ — сохраняйте в закладки, чтобы посмотреть на новогодних каникулах. Что интересного ждет в подборке? 

Дискуссия о технических собеседованиях, из которой вы узнаете, какие красные флаги кандидатов отмечает Константин Владимиров, как Елена Степанова относится к алгоритмическим задачам и почему Илья Шишкову важны софткиллы. 

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

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

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

Первый взгляд на производительность реализации floating-point GEMM для CPU на языке Mojo

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1.6K

Сравниваем производительность реализаций floating-point GEMM из OpenBLAS, Eigen и MKl с реализацией на новом языке программирования Mojo.

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

Вам [не] нужен свой игровой движок

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 23K

Что мне больше всего нравится в gamedev, так это что большая часть игр и каждый первый кастомный игровой движок бросают вызов устоявшимися стереотипам разработки. Иначе зачем начинать разработку такого сложного и комплексного софта, когда десятки похожих софтин есть вокруг. Конечно такие монстры как Unreal и Unity и десяток монстриков калибром поменьше существенно упростили разработку во многих отношениях, привлекли тысячи разработчиков к созданию множества великолепных игр с использованием готовых технологий, освободив их от ямы отчаяния пустого уровня. Но также не оставляет мысль, что еще больше игр они похоронили. Невзирая на весь функционал и мощь U/U люди часто застревают в рамках, о которых они даже не подозревали. На протяжении многих лет наблюдаю как оригинальный контент в большинстве случаев убивается ассетсторами, если там есть что-то близкое или похожее к нужному объекту, функционалу и виду. Не поймите мои слова неправильно, я обеими руками за магазины ассетов и любых других ресурсов, скриптов и технологий, но беря что-то в магазине за доллар, вы уже с большой вероятностью не сделаете свое. Или сделаете конечно, но позже, но до этого "позже" еще надо дожить, а пока что у вас будет всё как у всех: одинаковые паттерны, одинаковые текстуры, одинаковое поведение, одинаковые модели... и одинаковые игры? Что тогда остается своего - уникальные механики и впечатления. В другом случае не было бы игры, вот только проблема, что сначала люди видят картинку. Хорошо если игрок через полчаса-час доберется до уникальных механик, одинаковая картинка вызывает в памяти игры в которые вы уже играли, а уникальная механика так никогда может быть и не увидена в игре.

Хочешь сделать хорошо, сделай сам
Всего голосов 56: ↑53 и ↓3 +50
Комментарии 35

Отслеживание изменений в директории с помощью Inotify

Время на прочтение 4 мин
Количество просмотров 3K
Столкнулся с задачей, где необходимо было отслеживать в ОС Linux изменение файла в директории на чистом С++. Так как чистый С++, Qt с его QFileSystemWatcher сразу отпадал, из-за того что необходимо было подключать QObject. В итоге решил пользоваться линуксовой функцией Inotify.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 5

Квиз со звёздочкой для С++ программистов от Сергея Кушниренко

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 7.4K

Привет всем любителям побрейнштормить и хорошенько развлечься! Команда PVS-Studio на связи. Новый крутой квиз с интересными вопросами из мира программирования уже у нас на сайте. Да не простой квиз, а задачки от Сергея Кушниренко — разработчика игр в 4A Games! Если устали от рутинных задач и хотите поразмять мозг чем-то интересным, welcome!

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 23

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

Предновогоднее шоу: Топ 10 ошибок в C и С++ проектах в 2023 году

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 11K

Вот уже выпал снег, на дворе декабрь, а значит и Новый Год где-то рядом. В преддверии праздников мы решили показать вам наиболее интересные ошибки, которые мы смогли найти в коде популярных Open Source проектов. Наши авторы написали много познавательных статей, разобрали множество ошибок в коде, и теперь мы подведём итоги.

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

Эволюция enum

Время на прочтение 8 мин
Количество просмотров 10K

Константы — это здорово. Типы — это замечательно. Константы определенного типа — еще лучше. А enum классы — это просто фантастика.

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

Читать далее
Всего голосов 18: ↑11 и ↓7 +4
Комментарии 28

CLI'нический парсинг

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 3.2K

Каждый программист однажды получает по голове необходимостью парсить аргументы командной строки и вот это наконец случилось со мной - так почему бы не использовать это как возможность (написать какую-то дичь) (CLI парсер)? Скажу сразу - мы тут чтобы развлекаться, потому требования к парсеру будут... Интересные

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

Тестовое в Firefly Studios или игра за час

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 6.6K

Пару недель назад, на меня вышла HR "светлячков" и пригласила поговорить о позиции AI программера в их новую старую игру. Я был несколько удивлен, потому что знаком с парой ребят из студии и знаю, что найм у них сейчас остановлен. Но всегда интересно пообщаться с умными людьми, поэтому отказываться не стал. Первый созвон с HR вышел стандартный, где над чем работал, какие игры шипнул. Не очень понимаю зачем все это было спрашивать, если все это есть на линкедине подробно и с датами. Ну да ладно - видно такая их эйчарская доля по тридцать три раза переспрашивать. Или HR дальше второй страницы просто поленилась почитать.

Забукали время технического интервью. В полдень четверга на встречу приходит сотрудник студии и начинает просматривать резюмешку дальше второй страницы, где натыкается на скрин опенсорсного проекта StoneKingdoms, в который я некоторое время активно комитил. Проект, если что, получил благословение самого Simon Bradbury, так что проблем с правами на использование ресурсов из Stronghold нет. Посыпались вопросы, а что за проект? а как делаете? и что все на lua? а как же плюсы? Где-то на середине разговора к нам подключился другой разработчик "светлячков", с которым мое знакомство началось еще в 2010, когда он помогал восстанавливать исходники Caesar III и просто давал консультации как реализована игровая симуляция. Мы и сейчас иногда общаемся на форуме по ремейкам старых игр.

Как прошел собес...
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 26

Современный С++ в разработке девайсов

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 14K

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

Меня зовут Андрей Белобров. Я тимлид одной из команд, разрабатывающих приложения для умных девайсов Сбера.

На прошедшей недавно конференции Салют, OS DevConf! я выступил с докладом, в котором рассказал, как мы с командой разрабатываем приложения на С++ для умных устройств с виртуальным ассистентом. А также о том, как инструменты статического и динамического анализа помогают поддерживать единый стиль и высокое качество кода в проекте.

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

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

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

Читать далее
Всего голосов 28: ↑25 и ↓3 +22
Комментарии 36

Как мы переводили проект на CMake

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 5K

В статье мы расскажем о том, как переводили проект с рекурсивной сборочной подсистемы ЗОСРВ "Нейтрино", представляющей собой набор расширений инструмента GNU Make на сборочную систему CMake: с какими нюансами нам пришлось столкнуться, какие преимущества мы получили в результате перевода и как это повлияло на нашу команду разработчиков.

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

Держись, Маша! Ты, ведь, наша! Продолжение разбора книги «Цифровая схемотехника и архитектура компьютера»

Уровень сложности Сложный
Время на прочтение 21 мин
Количество просмотров 10K

Упомянутая в заглавии книга (далее H&H) - это про железо [15]. Я - про программирование, но на базе "железной модели" конечного автомата. И там и там математическая основа одна. Все это, действительно, крутая железная концепция, помогающая поставить не только синтез цифровых схем, но и программирование на совершенно другие рельсы, определяющие его будущее.

Параллелизм у программистов нынче в моде. Но, видимо, они (программисты) совсем не в курсе, что разработчики железа давным-давно погружены в эту тему. А потому им (я все про программистов) есть у кого поучиться. Но, похоже, некие амбиции-заскоки этому  мешают. Но, если вы этим не страдаете, то прочитайте книгу H&H и дойдите, ну, хотя бы до 4-й главы. Попробуйте реализовать одно-два упражнения, используя свой, программистский инструментарий - всякие там корутины, потоки и весь сопутствующий этому террариум. Убедитесь в его полном бессилии. И тогда, может, это заставит кое-что пересмотреть, переосмыслить. Только представьте: логический элемент - отдельный процесс, десятки, сотни, тысячи элементов - множество параллельных процессов, и все это в вашей ладошке (это я про смартфон) и даже работает!

Но пришло время исполнять обещанное (см. предыдущую часть темы в [1]). И пусть количество "плюсов" пока не достигло заданной планки, но ... если каждый "минус" считать за два "плюса", то это уже более чем ... ;) Так что спасибо всем, давшим положительную оценку - нет, не автору, а затронутой теме. Области знаний, от которой многое сейчас зависит.  Это те слова, которые мы вправе сказать в адрес теории, посвященной  синтезу цифровых схем, в адрес тех, кто занимался и занимается ее развитием, становлением и внедрением в практику.

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

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

Работа

QT разработчик
7 вакансий
Программист C++
114 вакансий