Разные новости из заброшки
Я доделал каркас кухни. Успел до слякоти все сварить.
Все не могу окончательно вытащить разное небытовое барахло в колидор. Земли 100 литров, краска разная, инструменты - везде.
Из косяков - я просчитался на 15 сантиметров длинны). Не знаю как - тут наверное сыграла роль моя склонность все делать на глазок, а следовательно несколько халатно к измерениям относится. Пришлось вырезать из каркаса кусок. Обратно сваривал новыми электродами - goodel ок-46 gold 2,5. Думал говна какая нибудь, но нет,очень милые оказались электроды. И с отрывом и сплошняком. На 50 амперах работали даже, стабильно.
В общем неделю я между делом варил и резал. Набивал руку.
Обнаружил важный факт. Моя китайская маска тру колор - изза того что не блокирует синий, очень быстро приводит к усталости отчасти напоминающей легкий ожог УФ. Даже решил проверить - взял очки сертифицированые на блокирование все что выше меньше 400нм. Одел под маску. Эффекта ноль. Проблема именно в синем цвете. А точнее в сочетании того что он не заблокирован по умолчанию и неизбежного лага срабатывания светофильтра. На обычной маске с зеленым сфетофильтром без автоматики - такой пидерсии нет.
Итого, вывод - труколор с незаблокированым по умолчанию синим выбросить нахер.
Из плюсов - ножки с 8 сантиметровым диапазоном регулировки не стали излишеством. Как раз выбрались все изгибы пола в заброшке пока выводил в горизонталь.
На очереди выпилить столешницу, заодно напилить материала для книжных полок (есть мысль сделать их них нечто вроде дорожек для кошки, будут вдоль стен вести к ее халабуде в углу под потолком).
В эти выходные я бы уже занимался водой - нужно склеить наконец сетку на трубу и уронить все это в скважину. Но проявилась скотская суть Буханки.
Ехал ехал, слышу дзыньк такой характерный. Болт который притягивает кронштейн ГУР к корпусу помпы отстегнулся. Это уже второй раз, и в этот мне не удалось обломок с ходу вывернуть, с одной стороны, а с другой - лопнула бобышка на помпе к которой он притягивался. Не сильно но плоскость потерялась.
Ну и по давней традиции - я конечно же заменил почти новую помпу - ну тысяч 30 отъездила, изза этой мелочи. Может потом придумаю как надежно старую восстановить. Просится после извлечения обломка - на рассверливание и внедрение резьбы размером побольше - на 10.
Заодно решил затестить шкив помпы, металлический (заместо текстолитового), двухременный, уменьшенного диаметра - вместо 110мм - 88 мм. Собрал все на болт попрочнее. Буду надеятсян а то что оный не лопнет.
Кроме этого форсмажера с буханью, я замещал руководителя отдела. И в этот раз хапнул норм. Во первых - датацентр яндекса приказал долго жить. На нас это не сильно сказалось, были перебои. Но отвалилась часть сервисов нам .net. А я половину и не знаю где они).
Потом на работе бизнес чтото конкретно перекатегоризировал, и система подрядчиков стала херачить сторно по всем документам с 1917 года. Весьма сомнительным кодом с затратами 50 миллиардов(!) чтений на миллион записей. И это на одном потоке брокера).
В общем, довольно напряженные были деньки.
Далее пришла наконец опора оси вал-сектора на ГУР, который я ушатал неподходящей выколоткой. Почти 3 недели лежала в РЦ 5пост. Уже написал им претензию. Но к удивлению - нашли и прислали. Вот тоже надо поставить пока машина на приколе.
Далее - у меня установлена кастомная панель проводки за сиденьем водителя, чтобы не кромсать оригинальную проводку - отвод от АКБ. Завтра внедрю туда реле напряжения, которое будет отключать всю эту чещую при остановленном двигателе. Ну и заодно - подогрев батареи поставлю. Две пластины на 12 вольт, со скотчем 3М.
Ну и если успею - уже займусь водой, подключу плиту, нажарю скумбрии себе).
Общий Интернет
Посетило в раз очередной, нереальной кайфости идея, сделать для людей инет такой, чтобы был он общий и без денег, ну совсем без денег так никак, а как можно будет это сделать, повествую ниже смысл для всех, тех кто немного шарит в кодах devах. С mesh сетями кто чуток знаком, там мештастик типа и мешкоры, про меш вайфай полюбэ слышал полюбому что-то тоже. Но идея этого вайфая, как по мне реально нераскрыта. Надо сделать тема чтоб была такая, что к примеру в доме все вайфаи меж собою, через роутера с прошивкою спецальной в сетку общую объединялись, е когда участник той сети чего качает, то запрос в инет меж всеми гейтвеями распределялся и общим потоком с этих разных выходов закачивался, но при этом чтоб хозяин этой точки, мог в процентах выставлять канал для общей сетки, тобишь скажем 10-ть я % от канала интернета своего даю на общий интернетный наш канал. И при том чтоб всё вот это по вайфаю... Смысл такой примерно, тем кто шарит в теме можно обсудить идею...
КриптоПРО и Fusion360
Fusion 360 не видит интернет, а виноват CryptoPro? Реальная история
Столкнулся с редкой ошибкой на Windows 11 Pro (10.0.26100, версия 2009).
Запускаю Fusion 360 - а он пишет:
«Unable to connect to internet»
Интернет есть, виниаминпетровича пробовал, мобильную раздачу - всё равно ошибка. Переустановка Fusion не помогала. Сайт Autodesk открывается спокойно, а программа - нет.
Погрузился в диагностику: TLS 1.2 включён, .NET 4.8 есть, WebView2 установлен, системные DLL на месте… а Invoke-WebRequest через PowerShell падает с:
«Базовое соединение закрыто: Непредвиденная ошибка при приеме»
Короче, Windows не хочет делать HTTPS через .NET/WinHTTP, а браузер работает - потому что у него свой движок. Логи Fusion не создавались, Licensing и Identity Manager тоже отсутствовали.
Причина оказалась неожиданной: CryptoPro. Этот чудо-софт заменяет или ломает системные криптопровайдеры Windows, из-за чего любой софт, использующий TLS через .NET или WinHTTP (а это Fusion, AutoCAD, 1С и др.), падает.
Удалил CryptoPro, перезагрузил ПК - Fusion360 запустился сразу!
Вывод для технарей:
Если Fusion360 ругается на интернет, даже при рабочем соединении, проверьте системный TLS и сторонние криптопровайдеры.
CryptoPro - частый виновник таких историй.
Иногда проблема не в Autodesk, а в том, что Windows "сделали безопасной".
P.S. Если ваша Windows отказывается работать с HTTPS через .NET - ищите, кто у вас там криптографию поломал.
Как перенести плейлист из Яндекс Музыки в Spotify в 2026: инструкция и технический разбор
Если вам нужно перенести музыку, вся процедура занимает три шага.
Как перенести плейлист из Яндекс Музыки в Spotify, инструкция
Откройте плейлист в Яндекс Музыке и сделайте его публичным.
Скопируйте ссылку на публичный плейлист
3. Отправьте ссылку боту t.me/yandex2spotify_bot
4. Получите ссылку на готовый плейлист в Spotify и добавьте его к себе
Профит!
Работает также через веб-сайт: yaspot.ru
Что нужно знать перед переносом
Не все треки есть в Spotify
Иногда названия могут совпадать не идеально (в среднем менее ~8%)
Порядок треков сохраняется
Скорость импорта: 1 000 за ~ 30 сек
Для импорта нужен публичный плейлист из Яндекс Музыки. Закрытые плейлисты сервис прочитать не сможет
А теперь начнем разбор! Почему я написал свой сервис переноса
Увидев "крутой" новый дизайн ЯндексМузыки, а так же, что управление на сайте с клавиатуры:
L - перемотка трека вперед
Space - пауза/play
ВКЛЮЧАЯ управление с модификаторов клавиш по типу fn + ►► и т.д., не работают от слова совсем, не говоря уже о цензуре, неимении определенной части треков в наличии, плюс все прочие минусы - было принято решение ретироваться на Spotify
Очевидно, идем в яндекс и ищем варианты переноса и находим
Пост на DTF где необходимо сначала пойти в один сервис и спарсить треки плейлиста в текстовый файл, затем пойти в другой сервис которому необходимо скормить этот текстовый файл
Soundiiz - где не работает авторизация в яндекс аккаунт, сообщение об ошибке пересылает нас на пост поддержки, которая в свою очередь ссылается на GitGub Discussion где описано получение токена авторизации из яндекс музыки
Прочие сервисы с аналогичными проблемами
У меня возник вопрос: неужели в 2026 году нет БЕСПЛАТНОГО сервиса который переносит плейлисты из Яндекс Музыки в Spotify в один клик без танцев с бубном?
Я в это реально не верил, но все поиски были тщетны...
Поэтому я взялся написать сервис, который предоставляет такую возможность - бесплатно импортировать любое количество треков/плейлистов В ОДИН КЛИК
Как устроен импорт
На вход сервис получает ссылку на публичный плейлист.
Потом :
загружает список композиций из ЯндексМузыки
формирует поисковые запросы для Spotify
сопоставляет найденные треки с исходными
создает новый плейлист
добавляет найденные композиции в исходном порядке
возвращает пользователю ссылку
В этой схеме две внешние системы со своими ограничениями. С ЯндексМузыкой проблема возникла еще на этапе получения списка треков, а со Spotify - при массовом поиске и создании плейлистов.
Проблема 1: У Яндекса нет публичного API для такой задачи
Решение:
Проблема решается использованием НЕофициального API из публичного репозитория
Окей, мы спарсили плейлист с яндекса, теперь нам нужно импортировать треки на Spotify
Буквально пару строк кода, думал я...
Изначально, нужно сказать как происходит взаимодействие с Spotify API:
Вам нужно перейти на Developer Dashboard и создать свое приложение, вы получите client_id и client_secret посредством этого вы будете общаться со Spotify
Приложения имеют два mode
Developer mode
Extended quota mode
Developer mode имеет скудные лимиты на API, плюс авторизация доступна только тем пользователям, которые ПРЕЖДЕВРЕМЕННО были внесены в белый список приложения
Список ограничен на 25 пользователей
Extended quota mode имеет уже более привлекательные лимиты для прода, плюс неограниченное количество авторизованных пользователей
НО, для того чтобы получить Extended quota mode нужно соответствовать некоторым требованиям
Требования к реализации:
Устоявшееся юридическое лицо (юридически зарегистрированное предприятие или организация)
В настоящее время ведется работа над действующим и запущенным сервисом.
Поддержание минимального количества активных пользователей (не менее 250 тыс. активных пользователей в месяц).
Доступность на ключевых рынках Spotify
Коммерческая жизнеспособность
Соблюдение условий
Очевидно, мой пет проект не претендует ни на одно требование
Исходя из документации API мы видим, что искать треки мы можем только по одному, это усугубляет наше положение
Таким образом, импортировать плейлист в 1 000 треков - это МИНИМУМ 1 000 запросов на поиск, не говоря уже о retry и добавлении треков в плейлист
Из этого вытекает следующий скоуп проблем
Проблема 2: Недоступность Extended quota mode
Проблема 2.1: Список пользователей ограничен до 25
Мало того, что список ограничен до 25, нам нужно ПРЕЖДЕВРЕМЕННО внести пользователя в белый список для возможной авторизации пользователя на сервисе
Решение:
Было принято решение НЕ добавлять возможность авторизации через Spotify для клиента
Вместо этого, был создан аккаунт, который будет хранить все импортированные плейлисты
Пользователь просто будет добавлять импортированный плейлист к себе
Плейлист останется у пользователя, даже если будет удален на основном аккаунте, так же, пользователь может воспроизводить любые действия с плейлистом: обновить название, удалить треки, добавить треки и так далее
Плейлист становится собственностью пользователя
Проблема 2.2: Ничтожные лимиты API
Самая главная проблема
Spotify НИГДЕ не указывает конкретные цифры по лимитам, поэтому это было выявлено методом тыка и получением бана в 90 000 секунд
Rate Limit: ~ <10 req/s
Получив примерное ограничение по лимитам, мы можем оптимистично прикинуть сколько у нас займет времени на импорт плейлиста в 2 000 треков
2000 / 10 = 200 сек = 3.3 минуты
Добавление треков в плейлист происходит батчами по 100 треков, это нам на руку
Но кроме поиска у нас есть импорт, создание плейлиста и добавление треков в плейлист + задержки и погрешность сети
Итоговое время будет ближе к 4 минутам
Такое меня, конечно же, не устраивает
Решение:
Для решения этой проблемы был создан скоуп аккаунтов, на которых было создано по приложению, в белый список были добавлены сами пользователи
Таким образом, мы имеем пул клиентов, расширяя тем самым пропускную способность
Итоговый Rate Limit: ~ <40 req/s для 3-4 клиентов
Почему не 100 аккаунтов?
Я думал об этом, но пока я думал, у Spotify вынесли фулл дамп базы на 256млн записей, включая 86млн аудиофайлов - поэтому Spotify уже неделю не дает возможности создавать приложения
Если посчитать так же оптимистично, то на поиск 2 000 треков у нас уйдет
2000 / 40 = 50 сек
Отлично, теперь поиск будет супер реактивным
думал я...
Проблема 2.3: Привязка Rate Limit
В интернете я нашел инфу от интузиастов на подобии меня, что лимиты привязаны к приложению + пользователю
То есть: если у пользователя несколько приложений - то его лимит все равно остается на уровне <10 req/s
Логично предположить, что это решается созданимем нескольких аккаунтов с собственными приложениями, но даже таким образом лимит остался на уровне <10 req/s
Проблема была в том, что привязка лимитов происходила следующим образом:
10 req/s = пользователь + client_id + ip
Решение:
В текущее время, почти у всех есть собственный VPS с поднятым VLESS, таковым являюсь и я
Было принято решение арендовать range ipv6, благо он стоит копейки ~ 0,031292 руб/день
Далее
Создать несколько inbounds типа socks на разные порты
Смапить порты с ipv6
Профит!
Теперь, осталось только при инициализации пула Spotify клиентов выдать им необходимые прокси
Важно: Это было в январе 2026 года, когда я проводил основные эксперименты - с тех пор правила изменились, поэтому старую архитектуру нельзя воспринимать как актуальную по масштабированию Spotify приложения.
Эпилог
Резюмируем:
Итого у нас есть:
Взаимодействие с API яндекс музыки посредством публичного НЕофициального репозитория
Пулл из нескольких клиентов Spotify
Range ipv6 для каждого клиента из пула для увеличения пропускной способности
+/- оптимизированный код
Теперь, можно поговорить о боевом тестировании
Исходные данные:
Было: 2633 трека за 280 сек
Стало: 2633 трека за 75 сек
Посчитаем:
Скорость раньше: 2633 / 280 ≈ 9.4 трека/сек
Скорость сейчас: 2633 / 75 ≈ 35.1 трека/сек
То есть:
Ускорение: 35.1 / 9.4 ≈ 3.7×
Сокращение времени: 280 → 75 сек = –73%
У Яндекса есть ограничение на количество треков в плейлисте - 10 000
Если прикинуть линейно, то импорт такого плейлиста будет занимать ~5 минут
Таким образом, у нас есть сервис, который БЕСПЛАТНО импортирует публичный плейлист с яндекс музыки В ОДИН КЛИК за секунды
Считаю, получилось довольно не плохо
Стек:
Backend Stack
Framework: ASP.NET Core 8.0 (C#)
Architecture: RESTful API + Background Workers
Dependency Injection: Autofac
API Integration:
Spotify Web API (SpotifyAPI-NET)
Yandex Music API
Telegram Bot API
Authentication: OAuth 2.0 (Authorization Code Flow с auto-refresh токенов)
Caching & Stats: Redis 7.4
Security: Cloudflare Turnstile (bot protection)
Proxy: SOCKS5 прокси-пул из нескольких инстансов для обхода rate limits Spotify API
Infrastructure & DevOps
Containerization: Docker + Docker Compose
CI/CD: GitHub Actions
Reverse Proxy: Traefik (автоматические HTTPS сертификаты от Let's Encrypt)
Hosting: Self-hosted VPS
Monitoring: Structured logging, Redis-based metrics
Архитектурные фичи
Client Pooling: Динамический пул из нескольких Spotify клиентов с least-loaded балансировкой
Rate Limiting: Exponential backoff + автоматический retry на 429/503
Background Processing: Очередь импорта с concurrent обработкой (до 12 параллельных search-запросов)
Streaming Import: Поиск треков и добавление в плейлист батчами по 100 шт. (без ожидания завершения всех поисков)
Dual Interface: Web UI + Telegram bot с единой очередью импорта
Graceful Degradation: Автовосстановление соединений с Redis и Spotify API
p.s.#1: будет обновляться по мере необходимости, возможно в дальнейшем будет
улучшенный кастомный матчинг треков
кеш запросов
с вероятностью <1% поиск треков будет переписан под слитую БД Spotify, в таком случает импорт 10к треков будет составлять 10 секунд
p.s.#2 могут быть непредвиденные ошибки и баги - если найдете можете отписать в комменты
p.s.#3 если у кого то есть плейлист в 10к треков для теста - отпишите в комменты
UPD:
UPDATE (30.01.2026):
Из-за роста пользователей, сервис переехал на нормальный сервер + спотик урезал лимиты в ноль
Поэтому сервис перешёл на модель подписок
При этом бесплатный тариф сохранён:
- неограниченное количество плейлистов
- до 500 треков в одном плейлисте
Перенос данных между DataTable и Excel с использованием C#
В современных приложениях обработка табличных данных является одной из базовых функций. С помощью C# и библиотеки Spire.XLS for .NET можно легко реализовать конвертацию данных между DataTable и Excel. В этой статье объясняется, как записывать данные из DataTable в Excel и как считывать данные из Excel в DataTable.
Что такое Spire.XLS для .NET?
Spire.XLS for .NET — это мощный компонент для работы с файлами Excel, который поддерживает создание, чтение, редактирование и конвертацию файлов Excel в приложениях на .NET. Он позволяет разработчикам выполнять различные операции с Excel-файлами без необходимости установки Microsoft Excel. Библиотека поддерживает форматы файлов для версий Excel 2003, 2007, 2010, 2013, 2016 и других, обеспечивая высокую производительность и богатый функционал, что делает её подходящей для разработки отчетов, анализа данных и приложений для импорта/экспорта данных.
Основные возможности Spire.XLS
Создание и редактирование Excel-файлов : динамическое создание файлов Excel и изменение их содержимого.
Чтение данных из Excel : быстрое считывание данных из файлов Excel и импорт в DataTable или другие структуры данных.
Форматирование : поддержка стилей ячеек, цвета шрифта, стилей таблиц и др.
Графики и изображения : возможность вставки графиков и изображений в Excel.
Поддержка нескольких форматов : форматы .xlsx, .xls, .xlsm, .csv и др.
Как установить Spire.XLS для .NET
Установка Spire.XLS для .NET очень проста. Ниже приведены несколько способов:
1. Через NuGet Package Manager
Наиболее распространенный способ — выполнить следующую команду в проекте:
Install-Package Spire.XLS
2. Через Visual Studio
Откройте Visual Studio и перейдите к своему проекту.
Щелкните правой кнопкой мыши по названию проекта в Solution Explorer и выберите "Manage NuGet Packages" .
Во вкладке "Browse" найдите "Spire.XLS" .
Выберите Spire.XLS и нажмите "Install" .
3. Ручная установка
Если предпочитаете ручную установку, можно скачать соответствующие DLL-файлы с официального сайта Spire.XLS и добавить их в ссылки проекта.
После установки можно использовать Spire.XLS в проекте на C# для работы с Excel.
1. Запись данных из DataTable в Excel
Ниже приведены шаги и пример кода для записи данных из DataTable в Excel.
Пример кода
using System.Data;
using Spire.Xls;
namespace WriteDataTableToExcel
{
class Program
{
static void Main(string[] args)
{
// Создание экземпляра Workbook
Workbook workbook = new Workbook();
// Удаляем стандартный лист
workbook.Worksheets.Clear();
// Добавляем новый лист и задаем имя
Worksheet worksheet = workbook.Worksheets.Add("InsertDataTable");
// Создаем объект DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("No", typeof(Int32));
dataTable.Columns.Add("Name", typeof(String));
dataTable.Columns.Add("City", typeof(String));
// Добавляем строки с данными
DataRow dr = dataTable.NewRow();
dr[0] = 1; dr[1] = "Tom"; dr[2] = "New York"; dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
dr[0] = 2; dr[1] = "Jerry"; dr[2] = "Houston"; dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
dr[0] = 3; dr[1] = "Dave"; dr[2] = "Florida"; dataTable.Rows.Add(dr);
// Записываем DataTable на лист
worksheet.InsertDataTable(dataTable, true, 1, 1, true);
// Сохраняем Excel-файл
workbook.SaveToFile("InsertDataTable.xlsx", ExcelVersion.Version2016);
// Освобождаем ресурсы
workbook.Dispose();
}
}
}
Пояснение к коду
Создается экземпляр Workbook и очищается стандартный лист.
Создается DataTable, определяются колонки и вставляются данные.
Метод InsertDataTable записывает данные из DataTable в Excel.
Метод SaveToFile сохраняет данные в Excel-файл.
2. Чтение данных из Excel в DataTable
Далее показано, как считать данные из Excel-файла в DataTable.
Пример кода
using Spire.Xls;
using System.Data;
using System.Windows.Forms;
namespace ReadExcelIntoDataTable
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Создаем объект Workbook
Workbook wb = new Workbook();
// Загружаем существующий Excel-файл
wb.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");
// Получаем первый лист
Worksheet sheet = wb.Worksheets[0];
// Экспорт данных листа в DataTable
DataTable dataTable = sheet.ExportDataTable();
// Привязываем DataTable к DataGridView
dataGridView1.DataSource = dataTable;
// Освобождаем ресурсы
wb.Dispose();
}
}
}
Пояснение к коду
Создается экземпляр Workbook и загружается указанный Excel-файл.
Получается первый лист, затем вызывается метод ExportDataTable для экспорта данных.
Экспортированные данные привязываются к DataGridView для отображения.
Освобождаются ресурсы Workbook.
Итог
С помощью библиотеки Spire.XLS for .NET можно легко конвертировать данные между DataTable и Excel. Такой подход значительно повышает эффективность разработки при анализе данных, создании отчетов и обработке информации. Надеемся, что примеры кода из этой статьи помогут вам лучше понять и применить данную технологию.
ChatCaster - текст с геймпада
Друзья всем привет!
Делал для себя приложение на ПК чтобы общаться в игровых чатах с дивана без клавиатуры.
Возможно есть такие же как я, которые играют на ПК с геймпада. Причины у всех разные, начиная от "надоело сидеть за компом", заканчивая физическими ограничениями и здоровьем.
Изначально идея была сделать поддержку только геймпада, но со временем понял что и поддержку клавиатуры добавить будет не лишним. Теперь я вам расскажу что оно умеет и как может быть вам полезным.
Простой интерфейс. Вы можете нажать мышкой или использовать свою комбинацию клавиш на геймпаде или клавиатуре.
По запросу друзей, добавил кнопку копирования текста из приложения (далее поймете зачем).
3. После скачки приложения и модели распознавания, работает полностью автономно, вам не нужен интернет для использования.
Поддержка 5 самых популярных языков в Steam (русский, английский, китайский (упрощенный), немецкий, испанский).
Как это работает: Вы говорите на русском любую желаю фразу в свой микрофон, получаете перевод в виде текста в любом активном приложении. Для этого я и выводил кнопку копирования текста в главном окне приложения.
Мне лично хватает базовой модели для игровых чатов, но если вы будете использовать как переводчик, то возможно вам нужна будет нужна модель получше. Просто выберите то что вам подходит и используйте без каких либо ограничений. Потребление оперативной памяти, будет пиковым. Т.е. прирост потребления только в момент распознавания. После распознавания (1-2 секунды), лишняя память освобождается.
4. В интерфейсе вы можете включить автозапуск, выключить оверлей и т.д.
5. Поддержка ваших комбинаций клавиш. Для клавиатуры это ctrl+любая клавиша или shift+любая клавиша (либо ctrl+shift+любая клавиша). Для геймпада любая комбинация клавиш. Главное требование это поддержка вашим геймпадом XInput (геймпады сертифицированные Microsoft). У меня просто нет другого типа дуалшоков, поэтому написать и протестировать не могу.
Приложение полностью бесплатное без рекламы и скама. Просто качаете его на моем гитхабе вот тут и пользуетесь. На сертификацю от microsoft 200 баксов в год я платить не могу, поэтому возможно ваш защитник винды может ругаться при первом запуске. Просто ждете 5 секунд (при первом запуске), запускаете приложение, на предупреждение даете согласие и пользуетесь.
Вроде все просто, но на всякий случай тут видео как пользоваться.
Я начинающий .NET разработчик. Приложение делал для себя и использую как свой пет проект. Потратил кучу времени на него, очень хотелось бы добавить поддержку linux (для stemdeck), но я уже не могу себе позволить его развивать, так как пока писал совсем забросил обучение разработке.
Если кому-то приложение окажется нужным, пожалуйста не поленитесь оставить звездочку на гитхабе. Или если вы .NET разработчик, присоединяйтесь к разработке.
Ну или если вам совсем лень, хотя бы на юутбе лайк поставьте. Я хочу устроиться на работу без накруток опыта и вранья. Только с теми знаниями и умениями которые есть, по честному.
Ответ на пост «Сам написал, сам полетал: как и зачем я разработал 3D-игру с нуля под компьютеры из 90-х в 2024 году?»1
Когда я учился в 9 классе, а это был вроде 2003 год, начали заниматься программированием на информатике, хотя я начал изучать его чуть раньше. Нам объясняли, как на бейсике отрисовать точку, круг, квадрат, и прописав несколько координат, линиями нарисовать многоугольник в виде разных лодочек. Меня это так увлекло, ведь мы на алгебре как раз строили графики, а задав нужную функцию, вывести точки в виде графика, нет ничего проще. В общем первой моей программой был "решебник" для проверки верности моих построений графиков. Потом втянулся, нажал на кнопочку, нарисована ось координат с необходимым масштабом и штрих отметками, перерисовка при изменении масштабов окна и т.д. были, конечно проблемы с тормозами, ведь если точки рисовать достаточно плотно друг к другу, происходит эффект анимации рисования, а если точки редко, отрисовка быстрая, но приблизительная. В общем довел эту программу практически до уровня примитивного графического редактора, можно сказать даже некое подобие графического движка, способного выводить необходимые 2д модели, сохраняя их в файле и пользоваться ими в дальнейшем как спрайтами. Сделал на нем даже две игры, лабиринт, по которому бегает колобок, и пятнашки. Когда учитель информатики увидел мои работы, он конечно мне отлично поставил за будущие года, так как я там ничего нового больше не узнаю, но в то же время предложил заниматься со мной факультативно. Хоть он мне и сказал, что я изобрел велосипед, и все это уже реализовано в DX, но меня преисполняла гордость, что допер до этого сам. Тем не менее, я купил книжку по директу, и тут понеслось. Как же изменилось качество графики, в основном из за смены буферов. Затем разобрался с фотошопом и 3dsmax. Вуаля, и первая полноценная 3d игра, где все тот же лабиринт из рельс и вагонетки, в которой помимо стандартного прохождения, нужно еще переключать стрелки в нужном порядке, чтобы собирать золото. В общем игра не слишком захватывающая, но играл в нее чаще, чем в КС. Эх как же жаль что исходников не сохранилось.







