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

Я начал вести сайт давно, где-то в 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 дней в борьбе за правильный вывод и доводка.

Новый сайт
Первая версия сайта VovkaSolovev.ru на WordPress

 


Фрагменты картин Маурица Эшера

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

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

Я сходил посмотреть, чтобы иметь представление о размерах работ и штрихов на них. Некоторые любопытные мне детали я сфотографировал (Размер объектива в телефоне просто создан для съёмки деталей в музейных условиях. Объектив где-то на 5-7 см от картины).














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

А это фрагмент конечной работы и его эскиз.

XO

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

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

Ну потом до него доходит, что он не на клетки посмотрел, и злится. За одну сессию два раза на такую уловку не попадаются, конечно.


Как сохранить «сохранить»?

Выскажу свое мнение насчет иконки для «Сохранить». Напомню, многим кажется что проблема в том, что современная иконка в виде дискеты не отражает сути поскольку дискеты уже не используют.

При этом всё множество разговоров сводится к одному — заменить иконку с дискетой нечем, новые варианты также в чем-то неудачны но при этом потребуют внедрения.

Получается противоречие: иконку надо сохранить, поскольку её все знают, и иконку надо обновить, поскольку символ дискеты неактуален.

Решение такое: надо сохранить распознаваемый образ — квадрат с косым углом. А про детали которые делают этот квадрат дискетой надо забыть — шторка и наклейка совершенно лишние элементы.

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


ZX

У меня были компьютеры ZX Spectrum на 48K, 128K и даже 512K. На этих компьютерах был один неудобный графический момент — всё экранное пространство делилось на клетки 8×8 пикселей в каждой из которых могло находится только два цвета. Например чёрный и красный, или белый и синий. А три невозможно. И вот те люди, которые в те времена делали экранную графику для игр, они умели так обойти эту особенность, что если не знаешь этой тонкости, то и не заметишь. Но если знаешь, то сразу начинаешь вглядываться как они эту особенность обходили, как этим людям удавалось сделать действительно многоцветные картинки.

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

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

Но вообще, я хотел ссылкой поделиться. Оказывается можно поиграть в игры с ZX Spectrum. Игры там отсортированы по годам. Поэтому вторая ссылка поможет определить в каком году какая игра появилась.