spiiin: (Default)
Есть ли такие типы программ, за написание которых разработчик, по вашему мнению, должен отправиться в ад, ну или хотя бы в чистилище? Не конкретные программы, которые вам не нравятся, а именно области, которых "хорошему" разработчику лучше даже не касаться, чтобы не марать руки и карму.

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

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

Наоборот, к областям, однозначно хорошим, отнёс бы разработку игр (хотя, конечно, за качество и модели монетизации иногда хочется отрывать руки), и всё, связанное с наукой.
Tags:
spiiin: (Default)
Небольшая, но полезная функция для поиска наибольшего по площади прямоугольника одного цвета на Python. Всякие OpenCV, Python Image Library, Plotlib и Jupyter Python просто чтобы показать, как конвертировать картинку в матрицу и обратно.

https://github.com/spiiin/FindMaxFilledRectangle/blob/master/example.ipynb


Jun. 5th, 2017 01:59 pm

Radio Tapok

spiiin: (Default)
Смешной дядька, переводит песни на русский:
Tags:
spiiin: (Default)
...объявляется финансово провалившимся. Официально :)

Через недельку заканчивается подписка от Apple, за год приложение "продалось" около 100 раз, бесплатная версия была скачана около 300 раз.
Сделал его полностью бесплатным. Может, когда-нибудь запилю андроид-версию.




Однако, с нефинансовой стороны, всё вполне удовлетворительно.

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

- Был стимул начитаться статей по геймдизайну, способам программной генерации контента, монетизации (ничего из этого я не использовал в игре, потому что изучал всё уже после того, как занимался игрой).

- Разработчик игр и так зачастую мультифункциональный комбайн (занимается вообще всем), непонятно, как при этом можно ещё и вести блоги о разработке и писать в социальные сети. Не знаю, как инди-разработчики ухитряются, например, помимо разработки, снимать качественные ролики для кикстартера с рассказами о своих приключениях. Я бы на это явно выделял отдельного человека.
- Собственно, вволю наигрался с пластилином (ролик Cube for Valentine's Day).

- Более чётко представляю себе круг проектов, которыми мне было бы интересно заняться в настоящий момент. Из связанного с играми было бы интересно:

1. Поработать программистом 3d-графики (одна из немногих неосвоенных мной нормально областей в геймдеве, требует хорошего знания математики, железа видеокарт и художественного вкуса одновременно :( ).
2. Заняться плагинами для 3d-редакторов, движков или другим middleware (недавно открыл для себя Python и MEL для Maya).
3. Поучаствовать в каком-нибудь конкурсе или хакатоне по играм (тут желательно с командой и с заявкой на хороший приз).
Tags:
spiiin: (Default)
Пролистываю "Урожаи и посевы" Гротендика. первая зацепившая мысль - любой результат начинается с нырка в море неизвестного и отщепления оттуда капли, которую затем оплодотворяет Мечтатель, и рождается Мечта. Человек расспрашивает обнаруженную им вещь, задаёт ей вопросы, пока она из неизвестной черноты не проявит свои очертания. Дальше исследователь залезает на вершину этого объекта и осматривается, и уже оттуда описывает результат труда.

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

Вообще книга, на мой взгляд, о самонаблюдении, чем и интересна.
Tags:
spiiin: (Default)
В твитторе забанили, livejournal и dreamwidth читаю через Inoreader, заодно частично удалось очистить френдленту от мёртвых и ненужных журналов, напрямую почистить френдленту практически невозможно.

Подсел на инстаграмы японских жонглёров, очень удобно смотреть, что они _сейчас_ делают – на ютубе в основном, прилизанные видео, а там можно найти свежие видео с тренировок. Ещё инстаграм странным образом создаёт ощущение непосредственной близости к "звёздам" - легко словить лайк или комментарий от кого-то именитого.

Другое открытие – каналы в телеграмме. Подписываешься на пару новостных каналов, и новости прилетают прямо в телефон, ходить за информацией не нужно. Не знаю, возможно ли там как-либо структурировать сообщения или производить поиск по ним, но следить за несколькими интересными людьми можно.
spiiin: (Default)
Забанили в твиттере чего-то, и не разбанивают :(
Хрен с ними, всё равно давно уже туда ничего не писал. Вытащил оттуда скриптом все твиты, в которых славил еду, за много лет. Вкусовые ощущения очень хорошо запоминаются, и позволяют вернуться в памяти к конкретному моменту, в который были сделаны, так что оставлю список для себя.

Read more... )


spiiin: (Default)

Малость вечернего жонглирования. Торнадо в обе стороны.
Tags:
spiiin: (Default)
Весна в этом году оказалась какая-то короткая совсем. Получилось провести её не так, как планировал, большую часть времени пришлось приводить в порядок старый дом, но зато удалось немного походить на природе в Крыму. Успели погулять по Эски-Кермену, Ласпи, съездить на Кутузовские Озёра и пройтись по пляжам от Балаклавы в сторону Инжира.

На Эски-Кермене залез в какую-то пещеру на высоте метров 400, в потолке нашёл останки раковин аммонитов:


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

Хотели сходить в Черноречье, однако теперь там ООПТ, и хозяйничают казаки с байкерами, которые выгоняют туристов.

Сейчас снова зарядили дожди (вроде как на всю неделю) – отличное время, чтобы пить чай на балконе.

Tags:
spiiin: (Default)
Интересная глава из книги. Собственно, как блоки являются строительным элементов в 2d-уровнях, так и 3d-блоки (выровненные по сетке) зачастую являются составным элементом 3d-уровней.

http://level-design.ru/pro-ld-book-index/03-modular-level-design/
Tags:
spiiin: (Default)
Felix The Cat - одна из немногих игр для NES, использующая сжатие данных описания уровня.

Из интереса разобрал формат сжатия (почти не лазил дизассемблером, просто потыкал отдельные байты своими утилитами и проанализировал изменения на экране в эмуляторе).

Уровень состоит из блоков 2x2 (с аттрибутами палитры и физики). Блоков используется 128.

Все подуровни описываются одним массивом, это необязательно в движке, но, видимо, так было удобнее разработчикам). Каждая вертикальная линия описывается отдельно, уровень описывается как массив указателей на линии, если линия полностью повторяет предыдущую, просто используется указатель на эту линию. Повторение линий активно используется, где-то 40-50% линий - повторы. Также в указателях на линии несколько бит используются для кодирования объектов.

Линии сжимаются с помощью алгоритма RLE, после чего из сжатых пар (количество повторов блока, номер блока для повтора) образуется словарь и повторы заменяются на слова из словаря. Обычные блоки имеют индексы от 0x00 до 0x7F, слова из словаря нумеруются от 0x80 и дальше, до 124 слов в словаре.

Последние 4 значения 0xFC-0xFF используются для задания второй формы сжатия. Она устроена интереснее и используется на уровнях с мозаичным фоном (например, узоры на стенах пирамид на уровнях 2-2 и 2-3).
В этом случае в начале линии может использоваться команда из двух байт (номер_базовой_линии, кол-во блоков из базовой линии). На уровне используется 4 базовые линии (их номера кодируются от 0xFC до 0xFF), которые описывают зацикленную мозаику. Первые несколько блоков берутся из этой линии, а затем нижняя часть дорисовывается обычным способом.
Пример таких начал линий на скриншоте:



На нём выделены рамками повторяющиеся базовые линии.

Эти три приёма (индексирование линий, RLE-словарь и базовые линии) позволяют сжимать уровни размером в 18 килобайт до 4-5 килобайт.

Tags:
spiiin: (Default)
CENTURY XXII
Азы использования программ:
Интерактивная геометрия на примере кривых Безье
Эпическое появление белого квадрата. Базовые принципы анимации.
Компьютер vs бумага 4: Wolfram Mathematica

Базовые, но хорошие объяснения что, как и зачем.
Пока смотрел, наткнулся на ещё один забавный канал Sci-One TV, образовательной силы тут никакой особенной нет, зато иногда забавные видео- и аудиоэффекты:
КАК ОБМАНЫВАЮТ ПОЛИТИКИ
САМЫЕ ВАЖНЫЕ ИДЕИ ОБ ЭВОЛЮЦИИ | КОВЧЕГ ИДЕЙ
Рассчитано на масс-публику, агрессивный пиар в соцсетях и борьба со на всякими тв-стайл передачами о теориях заговора, медицине, религии, психологии, инопланетянах, искусственном интеллекте, гмо и прочему подобному.


Tags:
spiiin: (Default)
http://spiiin.github.io/CadEditor/tutorial-powerblade2.html

Вторая статья по исследованию формата уровней игр и составление конфига для редактора уровней CadEditor, на примере Power Blade 2 [NES]. Работа с дампами памяти и начало работы с отладчиком.


Все статьи по редактору CadEditor .

Tags:
spiiin: (Default)
Прочитал сабж, пока прогонял несколько раз часовые тесты многопоточной программы-парсера в поисках хитрых ошибок. Целостной картины после книги не составилось, поэтому просто надёргал кусочков (не всегда цитат) для небольшого конспекта из разных глав.
Read more... )
Tags:
spiiin: (Default)
(Лично мне на политику жж, вообще говоря, пофиг, просто захотел почистить список друзей от мёртвых журналов, сообществ, а также от тех, кто переехал в dreamwidth, чтобы 2 раза их не читать, а через RSS-агрегатор это сделать намного удобней, другого способа получить последие несколько записей из каждого журнала/сообщества я не нашёл).

Но если вы из "переехавших", но хотите читать ленту друзей в живом журнале, вам может пригодиться.

RSS я не пользовался со времён закрытия Google Reader'а, лень было подбирать другую программу. Сейчас взял Inoreader, на первый взгляд он хорош.

Сам ЖЖ утверждает, что экспорт всей ленты друзей доступен только пользователям с подключенным пакетом "профессиональный". Не знаю, что это значит, но по ссылке http://www.livejournal.com/tools/opml.bml?user=<USERNAME> можно скачать файл со списком всех лент друзей в формате opml, который можно импортировать в любую программу по чтению RSS.

Единственное, что мне не понравилось, что в качестве названий блогов жж выдаёт название журнала, в котором большинство пользователей пишут шутки, афоризмы и прочие малопонятные для распознавания журнала вещи, поэтому я прогнал этот файл через такой python-скрипт, который заменяет название журнала на ник пользователя, по которому намного проще узнать журнал:

with open("lj.ompl") as f:
    ll = f.readlines()
 
for l in ll:
  if l.startswith("<outline"):
    for m in re.finditer('<outline text="(?P<t1>.*?)" xmlUrl="http://(?P<t2>[a-zA-Z0-9_\-]+).livejournal.com/data/rss" />', l):
      g1 = m.group('t1')
      g2 = m.group('t2')
      ans.append (l.replace(g1, g2))
 
 with open("lj_fixed.ompl") as f:
    f.writelines(ans)



Tags:
spiiin: (Default)
http://spiiin.github.io/CadEditor/tutorial-tmnt2.html

Написал более подробную статью про использование инструментов для поиска данных в NES-играх и добавление игр  в редактор уровней.
(на основе поста о формате блоков 4x4 + 1 байт атрибутов)

Tags:
spiiin: (Default)
Я ЛЮБЛЮ.
Запах моря и травы
Когда едешь в электричке мимо леса весной с открытым окном
Лежать на большой куче листьев
Смотреть на облака
Бегать по пляжу с собакой
Показывать фигуры из теней руками
Пить дрянной кофе из автоматов в чужом городе рано утром
Когда кладут сахар в чай и не спрашивают, сколько ложек
Мяту
Наблюдать за насекомыми
НЕ ЛЮБЛЮ.
Рассуждения о том, о чём понятия не имеешь и приписывание в ходе рассуждений этому каких-либо свойств. Вместо того, чтобы взять и попробовать самому.
Фаллометрия там, где нужен компромисс.
Упорное игнорирование фактов. Если 5 раз решить задачу не вышло, пора сменить метод.
Коллективное пинание слабых.
Люди, которые про всех своих прошлых знакомых говорят, что те их предали, обидели и были не правы.
Равнодушие ко всем, кроме себя.
Безыинициативность в жизни.

Profile

spiiin: (Default)
spiiin

July 2017

S M T W T F S
      1
2345 678
9101112131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 06:33 am
Powered by Dreamwidth Studios