Makarov’s Weblog

About my projects and about me

Системы осцилляторов

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

Скачать можно тута: http://nightmarez.webasyst.net/files/5ec9cc8e

Июль 20, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

Мысли вслух

Как всё-таки трудно в нашем обществе заниматься изобретательством. Если, конечно, твой папа не нефтяной магнат и бабушка не оставила наследство в сто тыщ мильёнов. Сначала учился в универе, где половину своего времени приходилось тратить на всякую ахинею. Теперь же приходится работать, дабы было чего пожрать, и, тоже трачу столько же времени, только теперь уж на то, чтобы те, кто стоит надо мной, хорошо жили. А на то, чтоб написать сотню строк кода в своём проекте, приходится выкраивать по часу-другому ночью, жертвуя нормальным сном. В следствии чего не высыпаюсь, да, и, порой чувствую совсем себя убитым. Иногда убегаю с работы по-раньше или наоборот опаздываю с той же целью, что, естесственно, сказывается на моей з/п. А архитектурные решения проекта приходится обдумывать на ходу. Ну а как по-другому? Финансирование получить откуда-либо я вообще не представляю возможным. Хотя, конечно, это было бы замечательно… я бы смог развернуться на полную силу и отдавать проекту часов восем-десять в день.

Подумать только, я потратив весь вчерашний день… целый день своей жизни, успел лишь реализовать класс буфера вершин. С такими темпами я буду писать Комплекс до Второго Пришествия :)

Но и это ещё не всё. Работая в нашем посёлке городского типа, я за этот год так и не смог купить себе ноут. Все бабки ушли на жратву, оплату жилья и т.п. Получается, что и работаю я за еду :)  Я бы с удовольствием спал бы по четыре часа в сутки, но, к сожалению, здоровье не позволяет… вот такие помидоры.

Всё. Поплакался. Теперь по сути дела. Проект таки потихоньку развивается. Развивается в данный момент на Delphi. Вроде бы как обратно на .NET переходить пока не хочу. И, надеюсь, что не буду. До начала следующей недели хочу реализовать базовые функции граф. библиотек под OpenGL и DirectX. После чего ещё неделька, наверное, уйдёт на прочие прибабахи (вроде загрузки модулей, основного 3D-меню выбора модулей, etc.), и, можно будет приступать к разработке самих модулей Комплекса.

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

Июль 8, 2008 Опубликовал systemhalt | Жизнь, Программирование | | 2 Комментариев

Гг… Delphi


Блин. Прикинул архитектуру проекта. Какие должны быть модули, как должны функционировать и взаимодействовать. Даж простенький рендер написал. На C# 2008 и на Delphi 2007.
С одной стороны ностальгия по Delphi мучает. С другой стороны, на C# немного удобнее…. хоть и не на много. А для Delphi не нужно будет фреймворк таскать… пошёл думать ещё, дабы окончательно определиться с выбором ))))

Июль 5, 2008 Опубликовал systemhalt | Программирование | | 7 Комментариев

Модули

Параллельно с разработкой основной программы собираю интересные задачки-эксперименты, которые можно промоделировать. Пока что список не очень длинный…. в дальнейшем обязательно буду пополнять и выкладывать инфу тут. Вообще на данный момент держу цель на 30 экспериментов. Но, возможно, в итоге будет больше.

  • Маятник (математический, двойной, etc.)
  • Пружинный маятник
  • Системы осцилляторов (куча грузов, связанных пружинами)
  • Маятник Фуко
  • Отрисовка полей (линии потенциалов, etc.), создаваемых заряженными телами
  • Реактивное движение
  • Задача Кеплера (+релятивистские эффекты, gravity simulator, etc.)
  • Движение частиц в электрических полях

Если у вас есть интересные идеи, плиз, сообщайте мне.

Июнь 30, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

.NET Framework


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

Писать буду под вторую версию. Ибо третья нафиг не нужна, да и требует она как минимум WinXP SP2, что не есть хорошо.

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

Завтра у меня выходной. Буду закладывать первые кирпичики проекта.

Июнь 29, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

Выбор среды разработки


У меня есть два варинта, которые мне более-менее подходят:
1) связка C++/CLI и C#
2) Delphi
У обоих есть свои преимущества и недостатки, которые мне не дают окончательно определиться.

Плюсы Delphi и минусы .NET:

1) Delphi компилирует в нативный код, в дотНете же сборки будут в промежуточном коде (за исключением частей программы, написанных на C++, которые будут непосредственно общаться с OpenGL и DirectX). Мне не очень нравится тот факт, что кто-то может без проблем получить доступ ко всему моему коду. Обфускаторы я не уважаю.

2) Если я буду писать в Delphi, созданная мною программа сможет работать хоть на 98-ой винде без каких-либо проблем. Если же я буду писать под третий .NET, программу можно будет запускать лишь на осях начиная с WinXP со вторым сервис паком, на который перед запуском моей проги нужно будет поставить Windows Installer 3.1 и .NET Framework 3. Довольно неудобно.

Плюсы .NET и минусы Delphi:

1) C++/CLI и C# как ЯП по-развитее будут, чем Delphi. Да и сама .NET мне больше симпатизирует. Разбивать на ОО-модули программу в Delphi проблематичнее чем в .NET
Часто нужно определить типы в одном модуле (DLL), а использовать в других.
Есть, конечно, пакеты Delphi…. но к ним у мя душа не лежит :)

2) Защита от дурака (aka GC). Я, правда, работал в одном проекте в комманде из 10 человек…. и, не смотря на GC, продукт всё-равно тёк памятью и ресурсами :) Но всё же…. Хотя, в Delphi для этой цели можно юзать TInterfacedObject и считать ссылки.

Июнь 28, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

Выдали диплом :)

С сегодняшнего дня я дипломированный специалист. Это, блин, звучит гордо ))))

Июнь 26, 2008 Опубликовал systemhalt | Жизнь | | Комментариев нет

Что это такое и зачем оно нужно….


Для начала хочу рассказать почему я вообще начал подобными вещами заниматься. Дело было на втором курсе. Преподавал физику у нас проректор. И был у него набор программок, написанных им же, которые рассчитывали кое-какие физические задачи и результаты рисовали на экране. Если мне не изменяет склероз, написаны они были на турбо паскале…. ну и графика, естесственно, была соответственной. А у меня был подростковый возраст со всем присущим ему максимализмом, а ещё я неплохо знал Delphi и умел работать с OpenGL. Ну и захотелось мне сделать такое же, только круче :)

В конце концов через год получилось нечто, что я назвал Комплексом Физических Программ. Тут надо заметить, что я писал его не весь год изо дня в день, а периодически (когда настроение было). Имхо, для студента-второкурсника получилось великолепно.

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

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

Цель моя написать некоторое количество программ (навскидку штук тридцать), объединённых в единую систему. Каждая программа - суть модель какой-либо физической сущности. Одна - моделирует распространение колебаний в упругих средах, другая - движение заряженных частиц, третья - движение астатического маятника, четвёртая - ……..

Я считаю, что подобная программа - просто находка для преподавателей физике в школах и университетах. Ведь куда интереснее будет предмет для учеников, если они не будут изучать сухую теорию, а смогут увидеть всё своими глазами на практике.

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

Июнь 22, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

Борьба с идеальностью

Давно стал ловить себя на мысли, что некоторые свои начинания не могу довести до конца лишь по той простой причине, что стараюсь сделать их идеальными. Даже там, где это совершенно не нужно…. там, где можно просто реализовать “абы как”, всё-равно стремлюсь к совершенству. Начиная от вылизывания архитектуры и до комментариев в коде. Иногда стремление к совершенству не укладывается в рамки возможностей современных ЯП и платформ….

….надо было как-то описать вершину в 3D на C#. Что может быть проще? Объевляем структуру и три переменные в ней типа float: x, y и z. Десять секунд работы. Но, блин, только не в моём случае. А вдруг понадобятся вершины, координаты которых будут храниться в переменных типа double? А вдруг я захочу сделать переменные какого-то своего типа? Подумал…. делаю generic-структуру, параметром буду задавать тип переменных в ней. Готово…. Но писать Vector каждый раз как-то криво, поэтому нужно сделать две специализированных структуры FloatVector и DoubleVector, унаследованные соответственно от Vertex и Vertex. Стоп! Но, ведь, в C# нельзя наследоваться от структур! Ок, делаю параметризованный интерфейс IVertex, свойства для доступа к переменным (вроде X {get; set; } ) и т.п., наследуюсь от него в FloatVertex и DoubleVertex, реализую своейства…. готово. Стоп! Вполне логично, что будет желание преобразовывать из FloatVertex в DoubleVertex и наоборот (мне это могло понадобиться при работе с 3D-графикой; в граф. движке я использую координаты типа float, а в физ. движке - как минимум double). Создаю операторы преобразования из одно в другое……….

Не хочу продолжать дальше расказывать о том, как я угробил день своей жизни на проблему, решение которой можно было уложить в 10 секунд, добавлю лишь то, что дальше мне ещё много мыслей пришло о том, как можно улучшить Vertex.

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

Июнь 22, 2008 Опубликовал systemhalt | Uncategorized | | Комментариев нет

Разработка идёт полным ходом

Итак, обо всём по-немногу.

Комплекс будет работать только под Виндой…. смысла в портировании на другие ОС совершенно не вижу.

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

Гуй (GUI) по типу того, что был в первой версии Комплекса. С той лишь разницей, что он будет строиться по типу MDI и всё будет происходить в одном основном окне.

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

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

Июнь 21, 2008 Опубликовал systemhalt | Программирование | | 1 комментарий

Диплом защитил :)

Два дня назад (суть 6-го июня) защитил диплом на отлично, чем неимоверно доволен. Теперь будет время на зарабатывание бабла и разработку своих проектов…. чем неимоверно доволен вдвойне :)

Июнь 8, 2008 Опубликовал systemhalt | Жизнь | | 1 комментарий

Комплекс Физических Программ 2

Прошло несколько лет с момента, когда я создал мой Комплекс Физических Программ. Именно с того момента я убеждён, что эта программа была лишь пробником, альфа-версией чего-то более существенного, хорошо проработанного, профессионального, чего-то действительно стоящего всеобщего всеобщего внимания. Но, сколько я ни пытался начинать разрабатывать вторую версию, сколько ни проектировал и продумывал детали реализации, каждый раз я забрасывал разработку. Через какое-то время я опять брался за дело и…. опять забрасывал. Несколько раз даже получалось нечто работающее. Но каждый раз я приходил к заключению, что это всё не то. Если первый Комплекс считать альфа-версией моего мега-проекта, то, будучи настроенным написать бету, я бы это давно уже сделал. Увы, я вбил себе в голову, что это должен быть завершённый продукт и никак иначе.

Сейчас наступает тот момент, когда я закончу этот грёбаный университет (если закончу) и, в свободное от работы время, смогу заняться Комплексом-2 вплотную. Не скрою, что сейчас у меня уже нет той уверенности в необходимости его разработки, которая была несколько лет назад. Я не знаю, действительно ли он будет полезен многим людям. Знаю лишь точно, что в ближайшее время я обязан сделать нечто такое, а других глобальных идей, кроме Комплекса-2, у меня нет.

Май 9, 2008 Опубликовал systemhalt | Программирование | | Комментариев нет

Первая запись

Сегодня волею судьбы занесло меня на ru.wordpress.com

И да решил я создать блог.

Mastermind

Май 9, 2008 Опубликовал systemhalt | Жизнь | | 1 комментарий