?

Log in

ironpeter's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in ironpeter's LiveJournal:

[ << Previous 20 ]
Sunday, July 5th, 2009
9:07 pm
Прощайте, скалистые горы


Из-за общей бурности жизни решил распрощаться со старой работой. Работалось в "Нивал Онлайн" долго и плодотворно, спасибо всем.

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

Если есть желание меня нанять ( очень желательная Москва ), то пишите на IronSPeter 'at' gmail.com

Вот собственно и все. До новых встреч.

 

 

Monday, June 4th, 2007
10:19 am
Фрактальный оркестр.
--Архитектура - это застывшая музыка ( не помню кто, кажется, Гете ).
--Хороший код - фрактальный код ( наш aruslan ).

Сразу оговорюсь, что ненавижу цитирования в шапке, они обычно неуместны. Но тут не мог удержаться - ибо надо что-то оставить над катом. Под катом - нудные технические подробности.

Read more...Collapse )
Friday, May 4th, 2007
11:22 am
Гайдзинам с любовью. Сони.
Купил на днях чудо-приставку PS3. Приставка просто так не включается, нужен монитор с поддержкой HDCP. На агрегат с поддержкой 1080p любви к Сони у меня не хватило, приобрел "простенький" 22 дюймовый монитор с поддержкой 720p.

Встроенная Game OS в русской транскрипции забавна. "Отформатировать утилиту" - "Format Utility". Заставка могильного цвета - говорят, что ее цвет зависит от месяца. Хочу зелененькую. Или желтенькую. Или синенькую - по желанию, а не в зависимости от фазы луны. Тормозит. Впрочем, эта самая Game OS была мне плоско-параллельна. Только для того, чтобы установить linux bootloader.

Дистрибутив YDL установился как легкий ветерок. Как обычно, совершил ужасную ошибку - выбрал русский язык в качестве системного. Каждый раз, когда ставлю новый дистрибутив, зачем-то делаю так. Раскаиваюсь, конечно, но поздно. В этот раз почти все шрифты отображались. Где-то половина, остальные - квадратиками. Это безусловный прогресс по сравнению с предыдущими наблюдениями.

Вы нам Хиросиму, а мы вам SPU!Collapse )
Thursday, April 26th, 2007
11:38 am
Денарий Гордиана III


Рим, примерно 250 год нашей эры. Прошло немногим больше двухсот лет с момента казни Иисуса Христа. Сменяющие друг друга императоры печатают монету для оплаты легионов.
Первоначально серебряный денарий теперь отливается из сплава меди и серебра. Потом он станет медным, а после бронзовым и выйдет из обихода. Но пока - 4 грамма, половина серебра.

Годовое жалование легионера - 300 денариев. Исходя из современных 15000 долларов годового денежного довольствия рядового американской армии можно примерно вывести современный денежный эквивалент этой монетки - 50 долларов.

Очень интересные ощущения испытваешь, когда держишь такую монетку в руках, но это лирика.

Практическая сторона вопроса состоит в том, что за почти две тысячи лет денарий не потерял, но и не приобрел покупательной способности. И монетка стоит примерно те же 50 долларов на аукционе.
Wednesday, March 28th, 2007
10:45 am
Риски программиста

Лежал в постели, пытался заснуть. Похоже, температурил. Внезапно в памяти всплыла фраза из TDD Пятых Героев: "А риски многопользовательской разработки будут сняты внедрением системы чекина-чекаута для SQL базы данных". Неожиданно картинка моего прихода в Нивал всплыла с необыкновенной яркостью. Почти как сон Кольриджа:

В стране Ксанад благословенной
Дворец  построил  Кубла Хан,
Где Альф бежит, поток священный,
Сквозь мглу пещер гигантских, пенный,
Впадает  в сонный океан.

Рассказываю. Есть SQL база, в ней дохрена табличек. Каждому игровому типу соответствует своя табличка. Массивам-членам класса тоже соответствует своя табличка и чтобы этот массив получить, надо сказать SELECT BY PARENT_ID. Над этим висит xsd схема, управляет структурой базы. Из схемы генерится C++ код для классов. Схема же используется в редакторе, который показывает такой симпатичный property view прямо из базы данных.

Шоколадно? Да, только игра не умеет читать SQL базу напрямую. А читает она бинарный дамп. Который генерится из базы такой мощной сериализацией всего. Ну, скажем, 30 минут. На 10 процентах ассетов в игре.

Шоколадно? Да, только предполагается, что человек по жизни отконнекчен от материнской базы данных. У него есть опорная база, которая представляет собой срез материнской базы данных. И рабочая база данных. Когда человек хочет залить свои изменения, волшебным образом считается diff между опорной базой данных и рабочей. И применяется к материнской базе данных. Ух, как круто! Представляете, как считать diff в условиях того, что

a) схема базы постоянно меняется.
b) объекты имеют интовые идентификаторы, которые генерируются децентрализованно. И постоянно конфликтуют.

Сюда надо добавить такие мелочи вроде концептуального отличия std::vector от неупорядоченной коллекции, которой представлены массивы в SQL базе. 

Сюда добавить то, что бинарные файлы хранятся таки не как блобы, а как файлики на диске. И их тоже надо синхронизировать.

Зачем такое надо? Говорили, что надо аутсорсерам. Да вот только заводить игровые ассеты аутсорсеры не будут никогда,
выложат готовые майские сцены и текстуры на ftp - и апгемахт. А абстракция для карты как файлика на диске перебивает абстракцию 100+ записей в 100+ табличках огромной базы данных, hardwired by keys.

Стоит ли говорить, что когда rate чекинов в эту базу данных повышался до 10 в день, то все переставало работать? Центральная база раздалбывалась в хлам, а у клиентов ( которые ждали очереди на заливку своего diff часами ) тупо горело рабочее время. 

Лежал я в постели и вспоминал такое. Думалось, что Large Scale Design - искусство. И что для программиста необходимо чувство a'la музыкальный слух. Чтобы стукнуть камертоном по концепции - и слышать. Отзовется она нежным звонким звуком или станет надтреснуто дребезжать.

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



Friday, December 15th, 2006
12:25 pm
Наш человек на Олимпе.
Вот, голосование идет.

http://community.livejournal.com/rykov_premia/9040.html

Голосуйте за Руслана, он осознал, что код - это всего лишь застывшая музыка. Не более, но и не менее. Музыку надо уметь слушать, это сложно.

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

Пусть на Олимпе будет он.
Thursday, December 14th, 2006
3:54 pm
Корпоративная вечеринка и судьбы русской интеллигенции
Вчера была устроена вечеринка по случаю десятилетия компании Нивал. Устроена в длинном как сосика подвале, замаскированном под ночной клуб. В подвале было очень некомфортно. По мозгам била музыка, людей набилось как сельдей в бочке, жратвы - кукиш. Голые девочки ( и полуголые мальчики в рваной джинсе - на любителя ) радовали взгляд, но не настолько, чтобы оставаться на празднике.

Шел из клуба, весь рефлексировал ( как и положено русскому интеллигенту в пятом поколении ). Ах, как плохо устроили вечеринку! Смаковал, как буду повествовать в своем ЖЖ об отвратительной корпоративной вечеринке. Как расскажу всему миру про непотребство.

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

Дошло, насколько мелочно мое возмущение и насколько жизнь прекрасна.

Вот так вот.
Monday, December 11th, 2006
2:06 pm
Гламурные программисты
Обсуждали программиста X, я присутствовал и слушал. Говорили, что программист X чрезвычайно гламурен. Распиарен - это раз, вхож в разные программистские тусовки - это два, ко всем своим достоинствам пишет на Джаве - это три, все его хотят и хедхантят - это четыре.

Смотрел на себя, оценивал гламурность. С ужасом ощупывал костюм и сорочку, купленные накануне в гламурном магазине "Эстет". Параллельно думал страшные мысли, что не пойду со всеми есть еду из пластиковых коробочек, а, обратно, пойду пижонить в кафешку-ресторан "Фантоцци". Думал разное, можно ли считать #ff гламурной тусовкой.

Однако, я пока не пишу на Джаве! Я не совсем потерян и гламурен, черт побери!
Friday, October 27th, 2006
4:23 pm
Выйти из тени.
Нынче я работаю в Нивал Онлайн.

http://www.dtf.ru/news/read.php?id=42716

Вот сижу и вижу, как эти 20 миллионов по справедливости делят между программистами, дизайнерами и художниками... Хочу уже свою долю.

Радует, что обещают дать писать тек. Надо будет взять исходники старого корпоративного движка и предать их очистительному пламени. Обнаружил, что эти идиотские исходники ассоциируются с конкретными людьми. Надо себя бороть и не отождествлять. Что очень сложно.
Tuesday, October 3rd, 2006
11:25 am
Пиджак +5 shadow damage
Играл в ВОВ, ходил в DeadMines. Нарулил себе синюю рубашку и синюю палку http://www.thottbot.com/?i=4815. Палка сама с красным концом - такой кристалл на тонких ножках в навершии. Абсолютно неэргономичная конструкция, непонятно, как ей можно тыкать врага - каменюка должен сразу выпасть. Однако тыкать можно, и врагу больно.

Думал по дороге на работу о разных игровых условностях. Взял в руки палку - и опа! Стал круче. Интеллект поднялся и дух воспрял. И выносливости наросло ( на целых пять условных единиц ). Думалось мне, что в жизни такого не бывает.

Однако, пришел на работу, сижу, тыкаю пальцами в клавиши. Тут надо сказать, что хожу я на работу в костюме, а все остальные программисты кто в чем. Подходит новый в Нивале менеджер, просит чтобы я "проставил у своих людей опоздания". Я объяснил, что проставлять опоздания не входит в мои профессиональные обязанности.

Так что хорошая одежда рулит в обоих мирах. Пиджак +5 shadow damage.
Wednesday, September 20th, 2006
7:46 pm
Про любовь
Дело было в Вестфолле, в минутах полета на грифоне от людской твердыни.

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

Она была босая и в длинных одеждах. Он ставил на землю четыре тотема ( тотем земли, тотем огня, тотем воды и тотем воздуха ) по вершинам квадрата и садился на землю в центре. А она танцевала для него.

Пришли двое. Один был быстр, как красная молния. Второй соткался прямо из тени и атаковал орка со спины. Оба были 60 уровня. Все произошло быстро, и ее смех звучал как колокольчик.

"Нубы! Нажрались химии и вдвоем одного одолеть не смогли! Он вас сквозь натурпротекты убил!"

Потом началась заваруха и стальной кулак Альянса таки раздавил врага. Одинокого орка-шамана 60 уровня.

Она плакала над его трупом, над погасшими наплечниками.

А я, ворлок 19 уровня, думал про то, что игра - это почти жизнь.
Friday, September 1st, 2006
4:07 pm
Серебряная пуля для кабана
Присутствовал на собеседовании, задавал простые вопросы.

В голове созрела мега-задача, которой можно свалить кабана.

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

Интересно, кто думает, что знает решение?
Thursday, August 31st, 2006
1:22 pm
Последний день лета
Затем, что дни для нас —
ничто. Всего лишь
ничто. Их не приколешь,
и пищей глаз
не сделаешь: они
на фоне белом,
не обладая телом,
незримы.
Monday, July 3rd, 2006
11:20 am
прекрасное в программировании
Прекрасно, когда функции называются маленькими_буквами_с_подчеркиваниями, ясно и внятно, например: calc_distance_or_return_if_greater_than_treshold.

Прекрасно как бы ненароком бросить взгляд на ассемблерный листинг от Intel C Compiler и краем глаза увидеть россыпь parallel scalar SSE команд.

Прекрасны даже строки std::vector в коде. Мимолетное чувство радости охватывает тебя в тот момент, когда наводишь указатель мыши на них. Ах, как приятно нажать в этот момент на backspace!

Прекрасны юнит-тесты, которые пройдены модулем.

Но прекраснее всего commit в SVN на машине с RAID0 массивом. Клик мыши, треск дисков на мгновения - и тишина.
Monday, June 26th, 2006
8:53 pm
Об общем и частном
Вот ехал в метро и думал про http://boris-batkin.livejournal.com/8847.html?nc=8 . Реакция на отрывок "...то таки поправить в другом..." забавна. Забавна тем, что из всего русско-программистского ЖЖ откликнулись два моих товарища по работе и откликнулись на пункт минимального интереса.

В свое время разговаривал с другим товарищем по работе, пили чай. Я рассказывал про то, как присутствовал на собеседовании. Посетовал, что собеседуемый не смог написать на asm на бумажке критическую секцию своими руками и как-то не особо зажег на той же бумажке скиннингом на HLSL. Товарищ по работе прослушал, а потом сказал: "Это еще что, я вот собеседовал и собеседуемый не смог назвать ни одного Способа Организации Сцены". Последние три слова были явно именованы с большой буквы. Я подавился чаем - срочно стал соображать, что за Способ Организации Сцены, именованный с Больших Букв. Спросил, ибо я нахальный и не стесняюсь повышать свои знания. Оказалось, что правильный ответ "octree" и еще что-то, что именно, я забыл. Нет, не то чтобы я не знал это слово, но было оно на краю сознания. У меня сразу возникли ассоциации: "Маргинальное Ускорение Функции FrustrumCull(...)" и "Большие Проблемы С MoveUnit( const CVec3 &vPos )". Мелькнули и исчезли на краю сознания. Второй Способ Организации Сцены у меня вызвал еще меньше ассоциаций, его я даже не запомнил. Продолжали пить чай.

Думал я так шибко, что проехал Китай-Город, пришлось сделать RollBack на одну остановку.
Sunday, June 25th, 2006
2:09 pm
Шопен, прелюдия 24
Слушал http://classic.chubrik.ru/Chopin/Prel_Argerich.html , 24 прелюдию. Создалось ощущение, что исполнитель адски мажет. В конце первой фразы, когда шестнадцатой играет си-бемоль перед ударной ля.

Скачал "сорцы" http://www.sheetmusicarchive.net/compositions_b/pre28_24.pdf Нет, сука, все правильно. И как у Рубинштейна получалось не акцентировать эту самую си-бемоль, которая ни к селу ни к городу?

После перерыва в год сел за фортепиано, решил сыграть сам. Получил адское разочарование. Со слуха кажется, что вещь простая. Левая рука тихонько переливает шестнадцатые. Правая ведет мелодию, простую, как "Мурка". А на практике - хуя. Левой надо в адском темпе с пятого на первый палец летать через полторы октавы. И не акцентировать, мягко. А правая взрывается шопеновскими проигрышами по всей клавиатуре up down. Я в таком темпе не могу.

Сколько же надо тренировать пальцы, чтобы играть эту, несложную с первого взгляда вещь? Или вот просто так, нахаляву кому-то дается? От Бога? Как Паганини, который якобы по причине особой болезни суставов пальцев мог феерически играть? Или надо всего лишь по 6 часов играть гаммы? Каждый день, 20 лет. В духе тренировок восточных монахов.

Думаю, что от Бога.
Thursday, June 8th, 2006
3:44 pm
Послеобеденное расслабленное
Рядом с Нивалом есть торговый комплекс "Пятая Авеню" ( оказывается, что Авеню - это она ). Поскольку нам либерализовали услуги питания, то пошел кушать туды.

Итальянская кафешка "Фантоцци". Кафешку от ресторана отличить легко, кафешка женского рода, ресторан - мужского. В кафешке официантки, в ресторане - официанты. Так вот, в "Фантоцци" большинство персонала - девушки, но есть и пара официантов, так что есть стремление от к.

Взял премилую "Груду цыпленка по-милански" - куриное филе с кэрри, ломтиками сладкого перца и ананаса. Продукт крайне рулит за счет грамотного подбора специй. Белого вина в розлив не было, пришлось взять ром, 40 грамм. Ром ординарный, грубоватый. Закончилось все кофе. Сверху пенка, пенка посыпана корицей - вкусно. Чизкейк с ванильным соусом и клубничными разводами по тарелке. Клубничные разводы пахли синтетикой, это минус. Общая оценка 4+.

Вот, работать хочется.

rev 1.1: Грудка цыпленка, а не груда.

Current Mood: working
Wednesday, June 7th, 2006
12:33 pm
Модный тренд.
С прекрасно-художественной точки зрения речь пойдет про ZBrush, который привносит в 3D моделирование классические скульптурные техники. Создаем крупную форму, общую топологию, рисуем поверх кисточкой. Мнем, вытягиваем по-разному, красим. Разные кисточки - разная фактура.

С точки зрения реализации - сначала делается экстремально lo-poly моделька. Делается ей subdivision, получается почти регулярная сетка, по которой совсем легко рисовать кисточкой. Храним смещения.

Вот посмотрим, что можно делать с такой моделькой. Во-первых, результирующая модель имеет очень простую топологию, нет проблемы строить уровни детализации. Во-вторых, нет проблемы прикручивать адаптивные алгоритмы тесселяции в стиле ROAM, ибо модель состоит из кусков с регулярной топологией. Считать разные уровни детализации, морфить между ними - не проблема. Опять же сжимается информация на раз - сетка состоит из регулярных кусков, а сжимать 2D массивы лихо надрочились. В том числе и тупо, см. DXTN алгоритмы сжатия текстур. Легкие данные - легкий стримминг, общность подхода: от ландшафта, крупных объектов вроде скал, пещер, утесов до монстров. Вот додумаются в ZBrush ( или аналоге ) ландшафт моделить - совсем круто будет. Как обычно, все упирается в конвенциональные средства редактирования.

Имеется куча академических работ, посвященных кластеризации и multiresolution анализу произвольных мешей. Как эту бедную нерегулярную сетку на куски рубят, потом симплифицируют куски, потом на стыках мучаются - до реализации обычно не доходит, но диссертации защищаются регулярно. Ясно дело, что никто на практике использовать это не будет. Как не жгут академические работы по multiresolution анализу, и как зажигает подход от ZBrush, который удобен и прост.


Спускаясь к железу - все становится просто отвратительно. Плавающая тесселяция, которая есть на XENOS и которой нигде больше нету и не будет; могучие SPU, которые могут считать на лету все что хошь, хошь тесселяцию; PC с перспективами странного интерфейса DX10. Прямо жить хочется. Мне кажется, что тема будет модной.

И, как обычно, ничего нового. Вспомните, когда были сказаны слова "npatches" и "vertex displacement".
Wednesday, May 31st, 2006
12:07 pm
Депрессивное постаттестационное.
Прошла аттестация. Аттестовали, зарплату подняли, назвали нужным. Конечно, пожурили так отечески. Что не дело знать шейдеры ps 3.0, несолидно это. Лучше бы изучил корпоративную систему UI. Она страх какая сложная, сама мыслит, а внутре у ней неонка.

Настроение депрессивное - специально ходил по Нивалу, смотрел, кто зажигает. Никто не зажигает. Далее - совершенно абстрактно.

Мега-дизайнер с супер-идеей игры. Менеджер говорит: "Издателям не нужны новые жанры и новые игры, давайте купим Ай-Пи. И будем делать игру про э... Человека-Паука, это очень крутой Ай-Пи. Давайте, дизайните пропозал, через неделю дедлайн."

Программист хочет писать low level, ему говорят: "Мы не фигней занимаемся, а делаем игру про Человека-Паука! Посему будем делать игру про человека-паука на Движке За Миллион, а ты скрипты попишешь."

Лид-программист перекладывает бумажки, спокойный, как Будда. Ему наплевать на технологии, процессы, производимый продукт про Человека-Паука, он перекладывает бумажки. Формализованный подход. Все задачи про Человека-Паука должны быть разбиты на подзаздачи ( не больше 2 и не меньше 1 дня ) и положены в формалин.

На ff возникло отличное новое слово: "Слабак". Не просто мудак. А слабак. Который не верит, что может что-то сделать. И никто не верит в то, что он может что-то сделать. Сидит, делает заформализованные задачи. Рожденный ползать. Состояние души. Есть чужая Ай-Пи, есть миддлварь, еще можно совсем сузиться, уволить программистов и поаутсорсить арт. Зачем жечь, убеждать что могу, потом напряжением всех сил делать - нафиг оно?

И совсем с другой стороны - посмотрим на постсоветское, на вечное. На Сталкера. Эх, слева бесы, справа бесы.
Monday, May 15th, 2006
6:52 pm
Агейская железка
Получил от начальства агейскую железку в черной коробке, внутри уложенной розовым поролоном. Выглядит загадочно. Сама железка в компьютер воткнулась, примеры запускаются и работают. По первым впечатлениям - бутылочное горлышко пополам в OpenGL рендеринге в стиле glutSolidCube, пополам в физике.

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

Есть еще API. Собственные размышления на тему std::vector, vec3, quat, ray, plane прилагаются, имеется специальный класс для колеса. Все как в лучших домах Лондона. Имеются виртуальные функции - и не просто из пустых понтов, а настоящий ООП, все наследуется и инкапуслируется со страшной силой. По умолчанию объект имеет отрицательную массу, и остается верить документации, что данная масса будет вычислена автоматически.

Вот вспоминаю OpenGL, разные glVertex3vf(). И нету никаких собственных векторов, и нету труевого ООП. Однако, пальцы сами летают и программу пишут. А тут - хуя. Зачем такой API, когда пишешь, а в кончиках пальцев нет удовольствия?
[ << Previous 20 ]
About LiveJournal.com