Dmitry Develop
176 subscribers
77 photos
35 videos
88 files
205 links
Этот канал в основном будет интересен новичкам в программировании и людям немного поопытнее.
Здесь я буду делиться своими новостями и достижениями в программировании.

Разработка, программирование; c++, gcc, g++, gnu, mingw; winapi, windows; vscode.
Download Telegram
Dmitry Develop
image_2024-06-21_00-46-59.png
Когда я только собрал новый ПК, у меня не было какого-либо sata или M.2 накопителя.
Поэтому я windows установил на внешний usb ssd диск и пользовался так ПК некоторое время.

В играх всё было хорошо и стабильно, но потом я начал замечать графические артефакты, которые были только в игре Dying Light.
Некоторые случайные текстуры, которые от запуска к запуску были разными, заменялись на какую-то разноцветную сетку, и от расстояния немного менялись.
В инвентаре так же вместо правильной текстуры могла быть какая-то другая: карта высот или что-то другое техническое.
Переустановка игры, сброс настроек, обновление видеодрайвера и другие способы не помогли, но после покупки M.2 ssd проблема ушла.

Как думаете, в чём была причина, кто сталкивался?
У диска или контроллера забивался буфер, повредилась файловая система или какая-то другая причина?

ссылка на канал | ссылка на группу
👍1
Ура, в моём списке portable программ теперь появился obs studio).

Скачал программу в виде zip-архива, удалил все старые настройки в %appdata%, удалил уже установленную obs, разархивировал новую obs, запускаю её и вижу, что она сохранила все настройки в %appdata% — не порядок, что это за portable программа, которая выходит за границы своей папки.

Немного поискал, почитал, и нашёл, что есть два пути: добавить аргумент командной строки "--portable" или создать в корне папки obs файл с названием "portable_mode.txt", и только после этого portable программа сохраняет настройки в распакованной папке.
Инструкция:
https://obsproject.com/forum/resources/obs-and-obs-studio-portable-mode-on-windows.359/

Такая же история была с vs code и vs codium, их zip версия тоже требует некоторых действий, чтобы не хранить свои файлы за пределами папки установки.

ссылка на канал | ссылка на группу
👍31
За несколько месяцев я увидел много разных интересных или полезных сайтов, которые добавил в свою подборку:
Полезные ссылки для С++ разработчиков

Это довольно старый пост, поэтому многие из вас могли его пропустить, даже при наличии ссылок на этот и многие другие посты в единственном закреплённом сообщении сверху.

Какие ещё интересные или полезные сайты знаете вы, которых ещё нет в моей подборке?

ссылка на канал | ссылка на группу
👍3
Использовать компилятор mingw в vs code довольно просто.
Если путь до mingw/bin/ указан в переменных среды, то редактор кода и расширения могут автоматически найти g++.exe и получить все необходимые пути и настройки.
Если же компилятор ещё не добавлен в переменные среды или не хочется по какой-либо причине, то можно просто указать полный путь до исполняемого файла компилятора и отладчика, так тоже всё будет работать.

Если предыдущий компилятор можно просто скачать в виде 7z или zip архива, просто разархивировать в любое удобное место, а потом просто запустить gcc.exe или g++.exe без каких-либо дополнительных настроек и трудностей, то с компилятором от microsoft (MSVC, cl.exe) так просто не будет.

Для установки MSVS отдельно от IDE visual studio придётся сначала скачать и запустить Build Tools for Visual Studio 2022, выбрать необходимые рабочие нагрузки (workloads).
Но если после установки вы попробуете запустить компилятор cl.exe, то получите такую ошибку:
>cl.exe
"cl.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

>


Кстати, установка MSVC будет весить примерно 8 Гб, когда mingw примерно 0.5-2 Гб в зависимости от версии и наличия clang.

Есть несколько способов использовать компилятор cl.exe в vs code:
1) Если вы компилируете вручную и только через терминал, то открываете терминал, запускаете bat файл "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" (у вас путь может отличаться) с аргументом x64.
Готово, в данном конкретном терминале будут установлены все переменные среды и компилятор будет работать.
>"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.6.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

>


2) Создать bat файл, в котором сначала будет запускаться vcvarsall.bat, а потом запускаться cl.exe с нужными аргументами, и tasks.json, в котором будет запускаться скрипт:
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
cl.exe %*


{
"version": "2.0.0",
"tasks":
[
{
"label": "run cl",
"type": "shell",
"command": "build.bat",
"args":
[
"/Fe:", "main.exe",
"main.cpp"
],
"problemMatcher":
[
"$msCompile"
],
"group":
{
"kind": "build",
"isDefault": true
}
}
]
}


3) Запустить терминал, выполнить "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x64, запустить code.exe (или его ярлык).

Если я найду ещё какие-то другие способы, я дополню этот пост или сделаю отдельный, если помешает лимит символов.

ссылка на канал | ссылка на группу
🔥2👍1
Dmitry Develop
cmdPrompt.png
Иногда в группе по vs code я видел желание некоторых людей в терминале скрыть длинный путь до виртуального окружения python или до папки проекта.
У меня такого желания не было, но понять их я могу, всё-таки кастомизация это интересно и удобно.

Например, чтобы вместо:
C:\users\hecker\Desktop\my\very\deep\path\to\my\project> build.bat

Стало такое:
> build.bat

Я видел решение то ли специфичное для python, то ли для конкретной оболочки или терминала, то ли только для linux или macos, типа сделать export какой-то переменной среды и всё получится.
Но для windows cmd мне ни разу не попадалось такое решение, я даже представить не мог, можно ли это сделать и как это реализовано.

Сейчас во время поиска информации для решения одной проблемы я нашёл решение для другой проблемы).

Называется команда (или программа) prompt.
В примере выше использовалась следующая команда: "prompt [$T$H$H$H] $G ".
Почитать какие есть параметры можно по ссылке на документацию или при помощи команды "prompt /?".

ссылка на канал | ссылка на группу
👍1🔥1
Dmitry Develop
image_2024-08-23_12-34-30.png
Разбираюсь с ventoy, хочу научиться устанавливать его вручную без помощи их программы, то есть вручную записать загрузчик, вручную разбить диск и сделать другие этапы.

Сначала было отчаянье, ничего не получалось, не работало, я ничего не понимал.
Но сейчас постепенно начинают появляться успехи).

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

ссылка на канал | ссылка на группу
🔥3
Dmitry Develop
IMG_20240823_225928.jpg
Всё ещё мучаюсь с китайским велокомпьютером, о котором я говорил в своей группе.

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

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

Полдня ещё мучился, но в итоге после всех тестов и экспериментов я обратил внимание на наличие сопротивления между проводами в несколько мегаом.

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

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

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

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

ссылка на канал | ссылка на группу
🤔2👻1