четверг, 10 декабря 2009 г.

Закон Мура в ПО

— Сколько занимает места Windows?

— Сколько находит, столько и занимает.

Из жизни

Табличка развития версий TP в статье натолкнула мысль о своеобразном законе Мура для ПО. При чем по нему любой софт будет развиваться именно так, как возмущаются о нем ретрограды — «Вот когда-то ОС влезала на одну дискету, и HDD были в 21 мегабайт, и функциональность была практически такой же!».

А как мне думается, все даже оченьвидно. Имеется две закономерности:

  1. Закон Мура.
  2. Если ПО не останавливать, то оно экспансионно на все возможные ресурсы.

Закон Мура

Здесь (т.к. формулировок есть много): объем доступной памяти, вычислительных мощностей, степень и скорость связности компонентов растут экспоненциально.

Экспансионность ПО

Система «стремится» использовать как можно больше ресурсов, если ей не установлены границы — экономически, невозможностью из-за физического на данный момент предела и пр.. Т.е. пока разработчики не упрутся в просаживание по какому-либо из параметров, то оптимизация не наступит.

Может кто-то и даже много кто этот подпункт посчитает неправильным (вот я всегда оптимизирую, и мой «Hello World» что-то не занимает все что находит). Но основная мысль заключается в том, что любая оптимизация — это ресурсы. На каком-либо из этапов: разработки, обучения, прошлого опыта. И с течением времени потребность в контроле на каком-то уровне исчезает — закон Мура раздвигает рамки дальше. В результате дешевле сделать без оптимизиации что-то, и если работает — забыть об этом.

Говоря более точно: с течением времени использование большего объема памяти, больших вычислительных мощностей и пр. — выгоднее, нежели их оптимизация. В результате получаем то, что получаем.

Заключение

Походу софт будет двигаться вслед за границей железного Мура, хотим мы этого или нет. И возмущаться этому все равно, что бурчать на дождь или землетрясение.


воскресенье, 6 декабря 2009 г.

О саперах

Существует на свете такая известная игра — Сапер. Стала известной повсеместно благодаря системе Windows. Но для меня история сапера началась намного раньше.

Когда-то давно, когда компьютеры были большими, и назывались по-советскому, учились мы программированию на ЕС-ках, клонах Speccy, Немигах, Поисках, БК-шках и других ныне вымерших зверях. Когда-то тогда, где-то в году так 92-м, когда Win 95 ещё не было, познакомились мы с сапером. Причем он был собственного производства. Кто-то узнал правила, или увидел где-то реализацию, и собрал на занятиях сам.

Немногим позже у меня и моих друзей был период расцвета кодинга на Speccy. Это была домашняя машина, не ограниченная кружком по программированию, со своими особенностями — медленным бейсиком, магнитофонной лентой, 48 K памяти, мощным ассемблером … Делали мы на нем многое, но одним из больших творений стал Сапер, запущенный в разработку как два независимых проекта. Мой проект благополучно завершился в 95-м, когда была собрана игрушка, в которую можно было играть одному и вдвоем, мог играть сам компьютер и 'думать' разгадывая поле, игра с фоновой музыкой, спецэффектами, отдельной серией уровней с жизнями и конечным итогом в виде победы. Конечная защита от взлома только была поставлена в 97-м, так, между делом. Но в любом случае в 95-м уже был законченный полноценный продукт.

Любопытным побочным эффектом явилось написание небольшого пособия по саперному делу для начинающих. В нем были описаны принципы соответствия 1 к 1, лемма 12 и теоремы 121 и 1221, принцип прохода по коридору в 3, отталкивания от стенок, разности множеств и принцип Дирихле (вроде ничего не забыл…). И в конце прилагался сборник задач для решения. И все это получилось из-за того, что при отладке на поле 16х16 я начал ставить по 30-40 мин, и с таким раскладом приходилось совсем туго. В результате приходилось думать и находить теоретический предел числа мин для нормальной игры.

Игра так нигде и не была опубликована и за почти 15 лет её видело три человека (включая меня). Сейчас же нужно только аккуратно перевести кассету в «.TZX» или «.TAP» и разослать на весь инет. Процесс уже запущен.

Но на этом история о саперах не закончилась. Недавно случайно узнал, что на ресурсе IGDC проходил геймдев-конкурс на тему «напишите оригинального сапера за 10 дней». Ностальгия взяла свое, и за двое убитых week-end'ов и несколько вечеров появился ещё один Сапер. Конечно, все создавалась не на пустом месте, а на проработанной базе 15-ти летней давности. Но все же. А в полку саперов прибыло на 10 штук, разных и по-своему оригинальных. На радость фанатам (;

Собранная для конкурса реализация не планирует остаться на одном месте. Так что следите за новостями (;


вторник, 20 октября 2009 г.

Утренний гость

Сегодня утром обнаруживаю, что ко мне залетело вот такое существо:

Это дневной павлиный глаз. Его летом не часто увидишь, а тут за окном +5°С… Залетело погреться (;


понедельник, 21 сентября 2009 г.

Завязывание шнурков

Когда-то мы с фэем нашли сайт, посвященный завзыванию шнурков. Кроме разных интересных способов и их преимуществ уже тогда на нем постулировалось более триллиона способов завязывания, но в них и описанных способах не было того, которого я использую. Только сейчас после попадания на этот сайт узнаю, что для спортивной обуви применяю метод Train Track, а в последнее время в инверсном варианте (на сайте не нашел, потому вот фото; извне похоже на Straight (Easy), но внутри чистый Train Track).

За много лет использования Train Track зарекомендовал себя как намного более плотный способ завязывания, при котором один раз зафиксированный вариант практически не ослабевает. Кроме того, он плоско формирует поверхность связывания. При завязывании удобно фиксировать поэтапно, каждый из проходов (так как 90° поворот на каждой точке, + 2 шнурка в одном отверстии и каждый этап удобно фиксируется параллельной нагрузкой). Из недостатков самый большой это то, что шнурки при плотной фиксации намного быстрее изнашиваются (1.5-2 раза по времени), особенно под нагрузкой. И шнурки нужны подлиннее, чем обычно. Для обычной и парадной обуви способ не так эстетичен, но вот для спорта очень удобен и практичен (;


воскресенье, 20 сентября 2009 г.

Labuat

Такое активное флешовое 'демо' (загружаемся, делаем play и не забываем двигать мышкой).

Использование одного стиля, взаимодействия со зрителем одновременно с сочетанием самой композиции и действия в нем дало такой вот результат.