reddit.com/r/place/

На 1 апреля на форуме Reddit сделали группу /r/place/, на которой был холст 1000×1000 пикселей и любой пользователь мог раз в пять минут в любом месте поставить точку одного из 16 цветов. Сперва начался хаос. Но позже люди стали организовываться, изображать что-то осмысленное. Через трое суток разработчики навсегда остановили процесс, получилась вот такая картинка.

Потрясающе!

Вот весь процесс на холсте в анимации из 72 кадров. Если владеете GIF-редактором, типа GIF Movie Gear, можете скачать, разоптимизировать и детально разглядеть. Очень любопытно разглядывать как кристаллизуются все эти персонажи, флаги, логотипы и надписи.

Или посмотрите полное видео, в высоком качестве. Напомню, что в ютюб плеере можно менять скорость воспроизведения в иконке «шестеренка».

Вот краткий обзор на английском про происходящее.

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

Юрган Мейер: аттракторы, фракталы, паркет

Jürgen Meier ведёт сайт на немецком про интересную мне математику: аттракторы, фракталы, паркет. Сайт, по сути, справочник-учебник. Всё c примерами в плагинах к Cinema 4D. Сайт старый, ведётся как HTML-сайт в iframe, неудобный, но если все ссылки протыкать — обнаружите массу информации. И главное, очень много примеров кодом, всё можно скачать и изучить: самые важные разделы Tutorials и Plugins.

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

Запомните vlso.ru — краткий домен Владимира Соловьёва для сайта vovkasolovev.ru

Теперь мой сайт vovkasolovev.ru доступен и по короткому 4-буквенному адресу из первых двух букв имени-фамилии vlso.ru. Пора готовится к старости, и делать первые шаги к мягкому запуску ребрендинга от Вовки к Владимиру.

vlso

Только представьте как будет удобно мне теперь вслух или по телефону объяснять:

— …Кстати, про это у меня есть на сайте, легко найдёшь. Какой адрес? Вэ-эЛ-эС-О-точка-Эр-У. Как первые две буквы моего имени и первые две буквы моей фамилии… Соловьёв у меня фамилия… Владимир… Нет без тире… Да, всего 4 буквы… да, точка-R-U тоже надо обязательно… Что?… А это ты в поисковике набрал, а надо было в адресной строке… Да, просто нажми первую ссылку. …Зашёл?

Как же сложно было вести такие диалоги диктуя vovkasolovev.ru, но теперь всё станет в 3 раза легче!

Этот пост был написан за время, сэкономленное от произношения длинного домена.

VLSO.RU

Новый сайт, теперь на вордпрессе

Я начал вести сайт давно, где-то в 2000 году. Сперва это были простые странички, шапка с навигацией и iframe с подгружаемым html файлом. Одна из страниц была с записями происходящего, некое подобие блога (тогда ещё небыло слова блог).

Потом, когда я заканчивал институт и занялся веб-дизайном, понял, что пора переделывать сайт. Начал делать вторую версию. Он мне быстро разонравился — я понял что это тупиковый способ вести сайт. Поэтому я сделал новый — тупо страницу с огромной иллюстрацией и списком ссылок на картинки, просто чтобы где-то их хранить, а блог стал вести в LiveJournal, он набирал популярность и был элитным роскошеством по инвайтам.

Когда мы организовались в студию, сайты со сложным программированием мы с коллегами делали на дотнете и пхп. Для простых сайтов иногда на языке Parser — по сути внедряющаяся в html разметка кодом, добавляющая циклы, функции, шаблоны и работу с базой данных. Это вполне себе язык, простой как бейсик, но уже тогда он слабо развивался. Достаточный минимум с известными ограничениями. Я его выбрал за простоту, чтобы сделать себе сайт, откладывать уже не хотелось. Сперва там были только галереи с картинками.

ЖЖ стал потихоньку отмирать, я написал на сайте простой блог, стал дублировать записи туда. Сайт я совершенстовал и менял часто, иногда даже чаще чем писал в блог на этом сайте. Были периоды, когда я раз в месяц достаточно сильно менял оформление, просто для развлечения. Потом я начал улучшать блог. И это оказалась ужасная мука — мне захотелось сделать тэги. Сперва, разумеется, я сделал просто (заповедь разработчика: «сначала сделай просто, чтоб жило во времени, и потом улучшай») — приписывал к записи БД поле «tag», и вот все мои посты обзавелись возможностью иметь один тэг (правильнее назвать это Рубрикой).

Начал делать нормальную структуру тэгов: таблица уникальных записей, таблица уникальных тэгов и таблица соответствий записи к тэгу. Много соответствий у записи — много тэгов. Это оказалось задачей посложнее, но её я сделал.

А вот третье усложнение мне далось не до конца. На вид просто — надо было сделать, чтоб при редактировании тэгов у записи в блоге они правильно перезаписывались. Оказалось что это не простая задача. На Parser она превращалась в головоломку на подобие языка Brainfuck. Кратко — в момент сохранения записи мне надо было проверить все ли тэги в порядке, появились ли новые, записать новые, выбрать старые, удалить старые, проверить появились ли после этого неиспользуемые тэги, удалить неиспользуемые, проверить тэги на дубликаты а соответствия на повторения. И всё это с синтаксисом, не предназначенным для сложной логики (массивы, например, обходятся с помощью указателя).

Вот например кусочек месива. Можно разглядеть цикл в цикле с проверками и ползанием указателем по массиву:

# Ищем дубликаты в таблице пост-тэг
# если находим дубль который ещё не записали 
#в таблицу на удаление, то дописываем

^for[i](0;$all_tagblog){
 ^all_tagblog.offset[set]($i)
 $check_id($all_tagblog.id)
 $check_post_id($all_tagblog.post_id)
 $check_tag_id($all_tagblog.tag_id)
 ^for[j]($i;$all_tagblog){
 ^all_tagblog.offset[set]($j)
 ^if( ($all_tagblog.id != $check_id) && 
 ($all_tagblog.post_id eq $check_post_id) && 
 ($all_tagblog.tag_id eq $check_tag_id) ){
 ^if(!^tagblog_to_delete.locate[id;$all_tagblog.id]){
 ^tagblog_to_delete.append[$all_tagblog.id]
 }
 } 
 } 
}

Написал. Кода получалось много, больше чем остального сайта. Но, иногда срабатывало не правильно!

На поиск ошибки меня уже не хватило. Я не настоящий программист, а упорный веб-дизайнер. И главное — стало очевидно, что пора менять инструмент. В студии мы тем временем уже сменили дотнет с пхп на Symfony, а симфони сменили на Ruby-on-rails, а простые сайты стали делать на WordPress и Drupal.

Сайт на парсере существовал до сегодняшнего дня, когда я набираю эти слова, теперь это история. Мне стукнуло 34, сайту 15, я решил сделать новый сайт на вордпресс, чтобы не изобретать велосипед.

Выбор прост — уже сейчас вордпресс некто не догонит по скорости роста, хотя он и далёк от совершенства. В нем неудобно работать с тысячью записей (а заводить из них custom post type давно можно, но всё ещё рано), неудобная работа с медиафайлами и много чего нет «из коробки». Но, всё, что в нем уже реализовано, закрывает 90% необходимых потребностей, чем сильно экономит время.

За три дня я легко мигрировал контентом (благодаря тому что на старом сайте у меня был RSS) и оформлением (весь CSS и куски для темплейтов давно продумал). Потом, 5 дней в борьбе за правильный вывод и доводка.

Мимими

Новый дизайник сайтика! Теперь нежненький!

Теперь другая менюшенька!