Category: общество

Category was added automatically. Read all entries about "общество".

faculty of numbers

Сосед

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



Всего-то надо было повыше голову поднять и узреть табличку прямо у нашего входа.
Дома 86, 87 и 88 идут подряд, плечо к плечу. Наш офис в 86-м, а Ньютон в 1696-1700 годах жил в доме 88, а в 1700-1709 - в 87-м.
office

MWI

К недавним обсуждениям (elsewhere) интерпретаций квантовой механики. Шона Кэрролла всегда приятно и полезно послушать. О печальном состоянии вопроса интерпретаций КМ, о том, насколько проще и естественнее там получается многомировая, как примерно она работает, и немного тизеров с фронта теоретизирования:



(и это еще не тот пост, что я анонсировал недавно в личной переписке) Я тут после очередного просмотра Ахмедова кое-что понял на тему измерений в КМ, попробую на днях передать.
office

Избирательный участок

В нашем часовом поясе выборы уже начались. Оказалось, что участок открылся даже на нашем острове. Из любопытства съездили посмотреть.



Collapse )

Ехать на выборы тут надо через джунгли да через горы. Дорога между недавно открывшимся почетным консульством и моим домом:
office

Скевоморфизм

В коммерческом фантастическом кино и играх картинка должна быть а) зрелищной, но б) достаточно понятной, а значит привычной для обывателя. Поэтому в космосе мы будем слышать выстрелы и взрывы, лазеры будут стрелять яркими полосками, летящими не быстрее пули, иноплянетяне почти поголовно будут человекоподобными - того же размера и схожего строения, будут говорить ртом и понимать человеческую речь, прически у героев будут как это было модно в момент выхода фильма, межпланетная связь будет мгновенной, часы будут идти синхронно, ну а космические корабли будут похожи на самолеты - в частности, с двигателями сзади, которые работают постоянно, даже если корабль подлетает к пункту назначения, и даже если он тормозит. И чтобы сюжет был эмоциональным, герои будут порой вести себя иррационально.
Это законы жанра. Нарушишь - потеряешь в аудитории и деньгах. Кому это не очевидно?
Но, похоже, среди аутичных "технических специалистов" постоянно находятся те, кого это смущает, кто ищет реализма и рациональности в фантастике. А у меня с каждым разом все никак не получается не посчитать их идиотами. Постараюсь исправиться.
psychosis

сингулярность

Представил себе, что компьютерные ученые научились копировать умы людей в npm облака как есть и так даровать желанное бессмертие. И вот проходит много лет, гудят дата-центры, а в них работает симуляция миллиардов бессмертных копий водителей автобусов, продавщиц, ментов, шпаклевщиков, автомехаников, знатоков CSS, физруков, нотариусов, билетеров... Им все так же не интересно учиться новому, они все так же неспособны заниматься наукой (копии же), и вот они бесконечно снимают и смотрят Дом-2, олимпиаду и бесконечно продолжают срачи за Украину и феминизм. А новых людей больше не делают, вот те, что были, они так навечно и остались. И все это лишь набор байтов да инструкций x86 в цикле.
office

Детектор философских зомби

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



( https://www.youtube.com/watch?v=nQHBAdShgYI )
office

сегодня

Утром кот с другом притащили во двор связку сушеной рыбы откуда-то. У кого-то из соседей сперли, добытчики.

Днем с сыном (4 года) что-то обсуждали, рассказал ему как компания Кока-Кола никому не рассказывает свой рецепт, чтобы только она могла делать и продавать такую колу и тем зарабатывать деньги. Сын спрашивает:
-А если каждый-каждый день покупать кока-колу, та компания заработает много-много денег?
-Да.
-А когда она заработает много и ей больше не надо будет никаких денег, она расскажет другим, как делать такую колу?
office

Hextris

В эти выходные прошло соревнование ICFPC - волшебная пора, когда все функциональные программисты мира (все 800!) могут оторваться от своей дневной работы на джаве, С++ или РНР и на три дня представить, что их любимый язык все-таки где-то применим.

В этом году надо было сделать свой решатель тетриса, но хексагонального, с занятной неевклидовой геометрией (движение фигуры по прямой не сохраняет взаимное расположение частей в их координатах относительно друг друга, движения и повороты работают по-разному в зависимости от места происходящего).
Collapse )
К этому сверху был прилеплен поиск и использование волшебных заклинаний ("ктулху фхтагн бешельме чернмернда") - каждый ход кодируется одним из нескольких возможных символов, если из этих символов в решении складывается какое-нибудь заклинание, за это дают дополнительные очки, и, видимо, много. Я как обычно участвовал без ансамбля, поэтому на заклинания совсем забил, занимался только тетрисом. За первый день сделал логику игры (загрузка данных, движения фигур, сжигание рядов, подсчет очков) с визуализацией и ручным управлением, можно было играть самому, а также прогнать пример от организаторов и убедиться, что все работает. Все получалось довольно гладко, разве что на поворот фигур потратил неожиданно много времени: гуглить готовые подходы не стал, хотя понимал, что наверняка известны какие-нибудь красивые подходы с трехмерными координатами. Стал придумывать сам, но формулу для преобразования координат при повороте не придумал, вместо этого сделал табличку (отображение разных координат при повороте), заполнявшуюся индуктивно: точка, вокруг которой идет поворот, не меняется, ее ближайшие 6 соседей меняются местами циклично, а дальше если для какой-то клетки знаешь, как при повороте двигается ее ближайший сосед, то ее движение состоит из такого же ровно сдвига (вместе с тем соседом) плюс поворот вокруг этого ближайшего соседа, такой поворот уже известно как делается.

На второй день стал придумывать стратегию для игры, и в течение второго и третьего дней ее постепенно реализовал (как-то не очень быстро каменный цветок выходил). Работало все следующим образом. Когда очередная фигура появляется на поле, понятно, что остановиться ей надо будет или где-то непосредственно рядом с уже имеющимися заполненными клетками, или рядом со стеной (краем уровня). Очки дают за сжигание полностью заполненных горизонтальных рядов, поэтому нас интересует соседство горизонтальное прежде всего. Поэтому в самом начале игры для каждой фигуры, для всех ее поворотов, были составлены списки точек, которыми она может касаться горизонтально. Когда фигура появляется на поле, надо пройтись по всем пустым горизонтальным соседям уже имеющихся на поле объектов и примерить к ним текущую фигуру по тем спискам потенциальных точек соприкосновения, т.е. перебирать все-все возможные ее положения не нужно, лишь те, где ожидаются касания. Для каждой такой потенциальной позиции приземления оценивается ее привлекательность: приведет ли ее занятие к полному заполнению каких-нибудь горизонтальных рядов (и их количество), если нет, то для каждого горизонтального ряда занимаемой позиции оценивается наибольшее количество получающихся заполненных подряд клеток (больше - лучше), плюс поправка на высоту: сжигать ряды лучше те, что выше, а вставать на пока еще незаполненные лучше пониже. Чуть позже был добавлен еще один фактор: сравнивалось количество "пузырей" (недостижимых сверху пустых клеток, т.к. фигуры могут двигаться лишь вбок и вниз, но не вверх) до и после занятия позиции, образование новых "пузырей" пенализируется, снижает оценку привлекательности позиции. Оценив все эти потенциальные позиции для приземления фигуры и отсортировав их по привлекательности, первая версия брала первую достижимую из них (для которой найдется путь от исходного положения фигуры). Это дало смешной результат: т.к. часто вращение фигуры на некоторые углы отображает ее в себя, позиции с такими углами поворота получают одинаковую оценку, и после сортировки по оценке первой часто попадалась позиция повернутая, в результате фигура перед ее занятием делала ненужные вращения, что по условиям задачи чревато обнулением очков. Поэтому вместо первой достижимой позиции из отсортированного списка брался набор позиций с одинаковыми оценками и из них выбирался вариант с кратчайшим путем, это отсекало ненужные вращения. Поиск пути был простым А* в трехмерном пространстве (x,y,угол), в процессе поиска строится множество достижимых позиций, в котором для каждой клетки сказано, как туда попали. Если для какой-то интересующей нас позиции путь не нашелся, то значит поиск пути перебрал все достижимые клетки карты, и при поиске путей для других позиций уже ничего еще раз строить не нужно: если позиция достижима, она уже в нашем множестве достижимых, и путь к ней уже известен, а если ее там нет, то путь не существует. В итоге все работало мгновенно, как-то еще оптимизировать или усложнять поиск не понадобилось. Памяти процесс ел меньше 3 МБ на маленьких задачах и около 20 МБ на больших.

В последний день к описанной схеме был еще добавлен look-ahead: последовательность фигур известна заранее, поэтому вместо принятия решений лишь по текущей фигуре был сделан рекурсивный перебор на пару шагов вперед. Вместо того, чтобы брать наиболее привлекательную достижимую позицию, составлятся список из 5 лучших достижимых (с разными оценками, чтобы отсечь те, что отличаются лишь поворотами), для каждой из них моделируем что получится при ее выборе, рекурсивно ищем решение для следующей фигуры, так на несколько фигур вглубь (в будущее), в этом дереве вариантов для листьев выбирается максимум, он возвращается наверх и складывается с оценкой узла-родителя, из его таких сложенных вариантов выбирается максимум и передается наверх.. В итоге для текущей фигуры выбирается такое положение, которое дает максимальную сумму оценок для этой и нескольких следующих фигур. Например, если текущей фигурой можно сжечь один ряд и следующей можно будет сжечь еще один, но если сейчас один не сжигать, то следующая сможет сжечь оба, то будет выбран именно последний вариант, ибо за сжигание двух рядов сразу дают больше очков, чем за два сжигания по одному ряду. С таким look-ahead'ом все стало ощутимо медленнее, но все равно большинство задач обсчитывалось меньше чем за минуту, и чтобы обновить все решения мне понадобилось менее получаса. Писал на D, исходники на битбакете, 1200 строк включая гуй.

Вот, получилось довольно интересно, на мой взгляд. Поскольку заклинаниями не занимался, очков набрал не очень много, в общем зачете из 300+ зарегистрированных команд на 103 месте (в этот раз назвался Dr. Zoidberg).
office

Reasonable Ineffectiveness of Recurrent Neural Networks

Статья с похожим названием недавно всколыхнула умы тех, кто следит за вопросом по новостям и сам никогда с нейросетками не пробовал возиться. Хотя результаты там не особенно интересные, на марковских процессах и подобных вероятностных моделях люди еще в доколумбовские времена получали результаты лучше и быстрее (вспомнить те же рефераты на яндексе, статью про корчеватели, прошедшую в рецензируемые журналы и пр.). Еще всякие прогнозы люди взялись делать про неестественный интеллект, туды его в качель. Сделаю и я. К 2020 году никакой сингулярности не будет, ничего похожего на Strong или General AI тоже. Программы будут по-прежнему писать программисты, и многие все еще на джаве.
office

волшебно

Некие люди занимались верификацией всякого кода на Джаве и столкнулись с трудностями при доказательстве корректности TimSort'a - алгоритма сортировки, издавна используемого в Питоне и Джаве. Оказалось, что он некорректен, на некоторых данных не работает вообще.

Proving that Android’s, Java’s and Python’s sorting algorithm is broken (and showing how to fix it)

Кому вообще нужны эти теорем-пруверы? Питон, тесты, махание руками!