Аттрактор Лоренца
Развлекаюсь с анимацией на HTML5 canvas. Написал вот такую чудесную визуализацию аттрактора Лоренца:
При открывании в новом окне, не забудьте что браузер можно перевести в полноэкранный режим, нажав F11. Так смотрится ещё лучше.
То что вы тут видите, представляет собой анимацию решения системы следующих дифференциальных уравнений:
Где , , — текущее состояние системы, — время, , , — параметры системы.
В моём примере:
Для каждой линии (представляющей собой отдельное решения уравнения) я выбираю начальное значение с добавлением небольшого случайного числа. Таким образом очень хорошо заметен «эффект бабочки»: незначительное возмущение системы («взмах крыла бабочки») приводят к очень большим изменениям в дальнейшем, линии «вылетающие» из очень близких точек вскоре начинают демонстрировать совершенно разное поведение.
Новый движок моего блога
В очередной раз переделал движок своего блога. Теперь у меня чисто статический блог, лежащий в Amazon S3. Предыдущая версия благополучно и без единого нарекания отработала свои год и 9 месяцев. Теперь настало время перемен.
Мне кажется, что суммарное время, которое я трачу на программирование движков своего блога, уже превышает время на то чтобы что-то сюда писать. И уж во всяком случае это явно сравнимые величины.
Окончательным толчком к переходу на чисто статический блог послужило недавнее появление у Amazon S3 функции редиректов, без редиректов всё-таки сложно обойтись. Также, для такого простого сайта как личный блог, держать целый сервер, базу данных, как-то всё это администрировать — явное переусложнение. В последнее время я больше склоняюсь к простым решениям.
Для интересующихся некоторые технические подробности:
Генератор
Тут для меня без вариантов — Haskell. Самый главный действующий персонаж тоже понятен — Hastache, не зря же я его писал.
Организация
Технически каждая запись в блоге выглядит так: отдельная директория с именем типа «2011-02-28 16:03 new engine», внутри лежит файл def.json с заголовком и тегами этой записи, файл text.html с текстом, и какие-нибудь дополнительные файлы (если они в этой записи нужны). Такие вот ракетные технологии блогостроения. Text.html — это не просто чистый html, это ещё и кое-какая дополнительная разметка, например для вставки математических формул ( рулит) или исходного кода с подсветкой синтаксиса (highlighting-kate). Дополнительная разметка большей частью представлена секциями Hastache.
Типографика
Ммм, это прямо моя прелесть. Не понимаю чего никто переносов в вебе не делает, намного ведь приятней выглядит, особенно если текст растянут по ширине. Технически сами переносы уже сто лет как доступны во всех браузерах. У меня теперь всё с переносами, красота да и только. Переносы расставляет самописанная библиотека (работает по алгоритму Ляна-Кнута), я её написал для qrmania.ru, и вот опять пригодилась. Надо бы выложить в Hackage, но пока QA-отдел в моей голове этого не позволяет.
Работа с S3
Сначала думал обойдусь s3cmd, но в итоге написал собственный синхронизатор для S3, благо для Haskell есть библиотека aws. Кстати, я в неё закоммитил работу с редиректами S3, но эта версия в настоящий момент ещё не выложена в Hackage, кому срочно надо берите прямо с GitHub.