Репозитории — Блог optozorax'а

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

#Мои проекты с кодом

Все проекты, где есть программирование.

СсылкаОписание
space_objectsБиблиотека для работы с системами координат и преобразованиями между ними. Она настолько мощно абстрагирует работу с системами координат, что я использую её в каждом своем проекте, где есть хоть немного графики.
portals_openglРендеринг порталов при помощи OpenGL, поддерживает не только рекурсивные порталы, но ещё и объёмные.
path-tracingПолностью заного переписал этот рейтрейсинг, улучшил архитектуру, добавил возможность рисовать не только path-tracing (фотореалистичная графика), но и ray-tracing (быстрый, но не такой реалистичный). Используется в множестве моих других проектов.
ray-tracingФорк кода одного чувака с гитхаба. Выбрал именно его код, потому что он был максимально простым, и компилировался без проблем, а результаты давал впечатляющие. При помощи этого кода я впервые понял как работает рейтрейсинг и решил разобраться в нем ещё лучше, улучшив код, добавив пару фич.
keyboard_layoutМоя раскладка клавиатуры плюс инструменты для записи и показа статистики нажатий.
TinyWindowsGraphicsВторая оболочка над функциями WinApi. Наследует идеи GraphWinApi, но уже с намного более продуманной архитектурой. Так же имеет в себе оболочку над AGG для рисования со сглаживанием, EasyBMP и STB для сохранения изображений в файлы. Используется в множестве моих других проектов, но не как библиотека для создания приложений, а как графическая библиотека. И я думаю, надо выносить часть, отвечающую за цвет, точки и рисование в отдельную либу.
olympРешение олимпиадных задач. Пока что все задачи в этом репозитории берутся и проверяются на olymp.nstu.ru.
partially-drawing-image-algorithmАлгоритм для рисования изображения, когда оно получено не полностью. Задает не только порядок обхода пикселей, но и сам алгоритм рисования этого изображения. Использовалось для рейтрейсинга, чтобы в реальном времени показывать то, что рендерилось очень долго. Время работы от количества пикселей: линейное. К сожалению имеет в зависимостях TWG, поэтому не получится использовать её кому-то кроме меня.
GraphWinApiОболочка над функциями WinApi. Одна из первых библиотек и больших программ на C++, поэтому написано очень некрасиво.
slovo-gonkaПрограмма для изучения английских слов. Интерфейс простейший: слово на английском и четыре кнопки, где надо выбрать правильный ответ. Написана на основе TWG. Слова я по ней не учу *facepalm*.
slovo_gonki2Проект по написанию нового приложения для изучения английских слов совместно с Ldaon. Пока в разработке.
fast_tree_point_in_polygonПопытка изобрести алгоритм для определения нахождения точки внутри полигона при помощи разложения пространства полигона в дерево. Попытка неудачная, либо мне просто не хватило терпения.
keyboardПопытка написать код для нахождения оптимальной раскладки на основе идеи об аккордах. Забросил проект по причине невероятной сложности, которую себе воздвиг (хотел одновременно учитывать слои и продублированные клавиши). Дневник разработки раскладки.

#Статьи и разного рода писанина, LaTeX

СсылкаОписание
newtons_method_articleОбъясняю как работает метод Ньютона для решения систем нелинейных уравнений. Стараюсь рассказать это максимально подробно и качественно. Захотел написать после того, как сам разобрался в нём и не нашел чего-то подобного в интернете.
Формулы по математикеСобираю все возможные формулы по математике ещё со школы.
Отчет по лабораторной работе в LaTeXТак как я с третьего курса пишу отчеты в LaTeX, то я решил собрать большинство штук, которые я использую в одно место, а так же заготовку титульного листа. Намного удобнее Word'а для генерации таблиц, графиков, а так же математических формул. Но к сожалению очень большой порог вхождения и за полгода существования репозитория, никто из моих одногруппников так этим и не воспользовался.
Этот сайтБез комментариев.
sun-eclipsesКак-то собрал в одно место все солнечные затмения за 21 век благодаря одной проге, чтобы это индексировалось поисковиками, и я обрел популярность. Хоть попытка неудачная, зато я знаю когда будет ближайшее солнечное затмение в моем городе.

#Лабораторные работы для универа.

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

Ссылка, НазваниеОписание предмета
cgi_labs, Компьютерная графикаПрограммируем простые приложения с использованием OpenGL.
numerical_methods, Численные методыПишем методы для решения СЛАУ. Но СЛАУ задаются не в плотном формате, а в формате, когда имеется много нулей. Решаться она должна в этом же формате. Это применяется в МКЭ, где у каждого элемента лишь несколько соседей, и когда оперативная память ограниченая гигабайтами, а время - неделями (если составлять матрицу с нулями, то вы не найдете столько оперативки чтобы это всё хранить и столько времени, чтобы это ждать).
labs_emf, Уравнения математической физики ч.2Реализуем методы для решения дифференциальных уравнений что проходили на первой части этого предмета при помощи методов, похожих на МКЭ. В этом предмете плохо то, что методичка написана ужасно, ничего не понятно, исследования бессмысленные, и мы не проводим никаких симуляиций физических процессов, только абстрактные кони в вакууме. Зато курсач я написал почти божественно.
optimization_methods, Методы оптимизацииПишем и исследуем методы для нахождения минимумов и максимумов многомерных и одномерных функций.
matstat_rgz, РГЗ по математической статистикеПросто латех очень красивый, вот и всё.
labs_machine_learning, Проектная деятельность ч.2Изучаем computer vision с помощью сверточных нейронных сетей на примере распознавания кошек и собак.
numerical_simulation_of_ODEПишем решатели однородных дифференциальных уравнений и применяем это в каких-то физических задачах. Так как предмет появился только при нас, попытался написать свою методичку.
labs_translation_methods, Методы трансляцииПишем свой компилятор очень маленького подмножества Си. Предмет предназначен для понимая устройства компиляторов и изучения таких фишек в программировании, как: конечный автомат и грамматики. Код писал в основном не я.
cryptography, КриптографияПростые лабы на освоение основных криптографических концепций, таких как: частотность букв, хеш, протокол Диффи-Хеллмана, открытый и закрытый ключ, симметричное, асимметричное шифрование. Самое крутое что есть в этом репозитории - это программа автоматической расшифровки текста, зашифрованного перестановкой букв в алфавите. Для этого я использую генетический алгоритм и хитрые метрики по частотности биграмм и триграмм. Для этого смотри папку 1.
assemblerИзучение ассемблера MASM, и использование его в C++.
resources_control_labs, Управление ресурсами в вычислительных системахПишем программы, которые используют такие фичи линукса, как: fork, pipe, execl, openp. Благодаря этому предмету я понял, что либо я не понимаю Linux, либо у него ужасная архитектура!
prolog, ПрологПишем простые программы на этом языке.
machine_learningКакие-то деревья решений, нифига непонятно.

#Форки чужих репозиториев

СсылкаОписание
differential-evolutionЧуть-чуть доработал оригинальную дифференциальную эволюцию, сделав её одним файлом, и убрав зависимость от boost.
my-keyboard-layout-editorМоя версия этого сайта с красивым стилем и исправленным сохранением раскладки в JSON.
keyboard-layout-editorМоя версия этого сайта исправления сохранения раскладки в JSON, создано для того, чтобы показать в Issue как можно эту проблему просто решить.

Если вам нравится что я делаю, то подписывайтесь на меня в Telegram и YouTube.

Changelog

2021.08.26

Перевод этой страницы на новый блог на Zola.

2019.06.10

Первый релиз.