четверг, 24 июля 2014 г.

Летний шарф

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

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

"Зима была шесть месяцев назад", - сказала Хвайда, - "Объяснись!"

Йывень нежно перебирала нити рукой: "Каждый оттенок серого отображает разные целые числа в порядке их значения. Для нуля я выбрала цвет с именем 'Темнота до начала времен'. Тридцать один - это 'Угольная пыль', шестьдесят три - 'Собирающаяся грозовая туча' и так далее, всё светлее и светлее до двухсот пятидесяти пяти: 'Белое божественное облако'".

"Впечатляющая палитра для такого скромного сезонного аксессуара", - сказала Хвайда.

Йывень подняла шарф со своих колен: "Это не просто предмет одежды. Рисунок на нём показывает меняющееся состояние массива чисел в процессе сортировки. Каждый ряд представляет собой одно такое изменение, а петли в ряду изображают числа. Видишь, в первом ряду цвета в полном беспорядке, но с каждым рядом они становятся всё более упорядоченными, так как алгоритм сортировки говорит мне, какие нити поменять. Цвет нитей последнего ряда будет плавно меняться от чёрного к белому".

"Также я тут вижу одну тонкую сверкающую золотую нить и ещё одну рубиновую", - сказала Хвайда.

Йывень указала ногтём на часть шарфа: "Если на текущем шаге алгоритм сравнивает два элемента, то я завязываю золотые узелки вокруг соответствующих нитей. Если он выбирает опорную точку, то я украшаю эту нить рубином. Таким образом, шарф будет иметь столько строк, сколько операций требуется алгоритму сортировки, и эстетика алгоритма будет видна".

"Ты всё ещё ищешь красоту в коде?" - сказала Хвайда.

"Тысяча извинений, Хвайда, но это не единственная моя цель", - сказала Йывень. - "Знакома ли ты с монахом-послушником, недавно присоединившимся к моей команде? Его первой задачей было убедиться, что результирующее множество отсортировано перед отображением. Но он не знал о встроенной утилите сортировки, поэтому реализовал свою собственную".

"Самая неудачная трата времени", - сказала Хвайда.

"Твои слова весьма кстати", - сказал Йывень. - "Он выбрал Bubblesort, как выяснилось в дальнейшем, когда приложение получило очень большое множество и потребовалось несколько минут, чтобы отобразить страницу".

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

"Верно!", - сказала Йывень. - "Я уже связала шарф с помощью встроенного алгоритма сортировки Timsort. Он около четверти метра в ширину и два метра в длину, и я буду с удовольствием носить его. Этот же шарф - подарок для монаха. У него будет такая же ширина, но он будет несколько более... нескладный".

"Он будет шестьдесят четыре метра в длину!" - воскликнула Хвайда.

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

"А что будет, если монах откажется носить твой ​​щедрый подарок?" - спросила Хвайда.

"То же самое, что будет, если он не исправит своё невежество", - сказала Йывень. Она свернула шарф в тонкую трубку и дернула за концы, показав свою силу. - "Шестьдесят четыре метра делают это неуклюжим шарфом, но отличной петлёй".

Original: The Summer Scarf

SPb Free WiFi

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