2007-10-05

WordPress. Текущие задачки

Что было сделано по ходу работы.
  • Теперь WordPress доступен из корня сайта. Операция оказалась хорошо документированной, поэтому процесс занял несколько минут
За время доводки сайта напильником, с http://themes.wordpress.net/ куда-то девались наиболее удачные темы. Например, ссылка на Stardust уже ведет на 404 :(

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

Аналитика (тьфу*3) прикрутилась без проблем.


Скелет №2. WordPress глотает все пользовательские теги p, div вообще не обращая на них никакого внимания. Свинство.
Это просто песня лебединая. Если задать теги br (хоть десять штук) WordPress нормально отобразит их. Однако если начать редактировать пост, то их уже не будет и при следующем показе текст снова окажется смещенным.
Если в режиме Visual поместить несколько переводов каретки, то они не окажут никакого влияния при рендеринге. Понятно, что html их игнорирует, но совершенно непонятно почему WordPress не вставляет в код заглушки.
(Зачем это вообще нужно. Есть картинка, справа от нее располагается список. Как только картинка заканчивается, пункты списка прыгают пикселов на 40 влево. Получается очень некрасиво)

Upd Теперь понятно почему (здесь)

Use HTML
You don't have to use HTML when writing your posts. WordPress will automatically add it to your site, but if you do want control over different elements like boxes, headings, and other additional containers or elements, use HTML.
Интересно, почему они после этого не пишут, как делать таблицы :\
Upd2 Решение нашлось здесь.

in case anyone's interested, this problem has been solved on my side (thanks to the french WP support) by upgrading tinymce, and commenting out the following line of code in plugins/wordpress/editor_plugin.js
(around line 240)

// Remove anonymous, empty paragraphs.
// quentin: no don't, this prevents multiple line breaks
// content = content.replace(new RegExp('(\\s| )*', 'mg'), '');


Ну нафиг такие пляски с кодом. Сделал разрыв с помощью таблицы. Тег table WordPress жрать отказался :)

WordPress. Выбор темы.

Выбор темы для сайта.
Требования
  1. Тема обязана быть красивой :)
  2. Большой или "растягивающийся" столбец для постов. Узкий столбец удобен для чтения и заставляет даже самый плюгавый пост выглядеть самостоятельной статьей, однако для наполнения информацией годится слабо.
  3. Ссылки на другие страницы сайта должны быть четко выделены и находиться в заголовке (а не висеть рядышком, написанные стандартным шрифтом). Нельзя допускать, чтобы у пользователя возникли проблемы с поиском кнопки Buy Now :) (которая скоро появится)

Список кандидатов
  • SpotLight 1.3 Имеет дополнительные настройки - можно блокировать отображение выбранных страниц и устанавливать порядок сортировки страниц по заголовку, дате, порядковому номеру страницы
  • Blueprint 1.0
  • Stardust v1.0 Не отличает странички от постов (на страницах оставлены date, tags, comments), но выглядит очень ярко и красиво. Не умеет хватать favicon :(
  • Colorful 1.0
  • Fluid Blue 1.0.1 слишком минималистично для сайта (для блога, однако, нормально)
  • Mimetastic 1.0 мдя... что-то не то
  • Sade 1.1 слишком много информации к каждому посту.
  • Classy 1.0 Не поддерживает стандартного редактирования виджетов, однако смотрится симпатично
  • Andreas04 2.0 В целом неплохо
Общие выводы.
пару слов о http://themes.wordpress.net/
В основном, все сделано удобно для выбора пользователя - категории, предпросмотр, достаточное количество результатов поиска на страничке. Недостаток один - совершенно непонятно, как отсортировать темы по популярности.
Тем много (на оф. сайте заявлено больше 1600, при общем кол-ве закачек более 7'000'000), немало по-настоящему хороших. В первую очередь стоит смотреть темы пережившие первую версию ;)

В результате выбирал между SpotLight и Stardust. Пока остановился на Spotlight из-за большего набора шаблонов (конкретно - различия между постом и страничкой). Однако страничка SpotLight кажется узковатой. Практика покажет.

Нашел еще http://www.wpthemesfree.com/, но сил на поиск тем еще там, не осталось :).

WordPress

Решил попробовать поднять wordpress на htmlayoutlab.com. Конечная цель - использовать wordpress как простую CMS+блог. Опыта в использовании CMS никакого, в веб-девелопменте минимальный. Впечатления.
Что понравилось:
  • Доступный (+3!) хелп.
  • Легкий контент-менеджмент. Дополнительные секции (например, links, screenshots и т.д.) настраиваются простым перетаскиванием секции в нужный столбец Presentation->Widgets. Конструктор для детей :)
  • Куча готовых к использованию тем (для использования требуется просто распаковать архив и скопировать содержимое в каталог на сайте)
  • Естественно, качественный, готовый к употреблению блог
  • Поддержка permalinks (чтобы вместо ссылки domen.com/year/month/day/post-name можно было в браузере набрать просто domen.com/about/). Строго говоря, этим занимается не wordpress, а апач, однако wordpress позволяет выполнять такие манипуляции весьма легко.
Бонус
  • Оказалось, wordpress есть на godaddy (моего хостера) в составе готовых для использования тулов
При этом
  • Хрен поймешь без бутылки как поставить (оказалось, надо кликнуть по иконке Metropolis - это не очередная отвлекающая картинка, а вполне функциональная штука с маркетинговым именем)
  • Версия более ранняя, чем последняя, доступная на оф. сайте

Уже наткнулся на первый скелет
  • По умолчанию, блог закрыт для посещений поисковиками. Исправляется в Options->Privacy
Вопросы открытые для изучения:
  • Как навесить статистику (предположительно банальным редактированием нужного шаблона в Presentation->Theme Editor->Footer)
  • backup
  • на будущее: пустить несколько rss-каналов (основной, только Spy и т.д.)
Еще один открытый вопрос - установка форума (предположительно, http://bbpress.org/)

WordPress

Решил попробовать поднять wordpress на htmlayoutlab.com. Конечная цель - использовать wordpress как простую CMS+блог
  • Легкий контент-менеджмент. Дополнительные секции (например, links, screenshots и т.д.) настраиваются простым перетаскиванием
  • Куча готовых к использованию тем (для использования требуется просто распаковать архив и скопировать содержимое в каталог на сайте)
  • Естественно, качественный, готовый к употреблению блог
Бонус
  • Оказалось, wordpress есть на godaddy (моего хостера) в составе готовых для использования тулов
При этом
  • Хрен поймешь без бутылки как поставить (оказалось, надо кликнуть по иконке Metropolis - это не очередная отвлекающая картинка, а вполне функциональная штука с маркетинговым именем)
  • Версия на 0.1 меньше, чем последняя, доступная на оф. сайте

Уже наткнулся на первый скелет
  • По умолчанию, блог закрыт для посещений поисковиками. Исправляется в Options->Privacy
Вопросы открытые для изучения:
  • Как навесить статистику

2007-09-27

Археология исходников

В прошлой Компьютерре, Зверек Харьковский решивший подписаться серьезным наследственным ником Виктор Шепелев, опубликовал три любопытных (спасибо!) статьи на тему своего любимого конька - истории IT. После прочтения одной из них - "Археология исходников", появилось желание сказать несколько слов в догонку, для более полного раскрытия темы.
Сама статья посвящена исходникам, изучение/переработку которых можно смело относить к разряду археологических работ. Основной пойнт статьи, что лучший способ знакомства с кодом - это его "деятельное чтение" (чтение, в самом широком смысле) / отладка / использование / переписывание (практически в любом виде). Ближе к концу статьи делается оговорка, что это не всегда возможно по ряду причин (отсутствует нужная ОС/версия языка/библиотека и т.д. ) и конечно, не написано, что на самом деле наступает полный ёк - что делать с таким кодом не очень-то и понятно.
Как раз для последнего случая (и несколько в пику теории об "деятельном чтении") есть замечательный пример из жизни (не моей :) ). Автор рассказа, Лупин Сергей Андреевич - зам декана факультета Микроприборов и Технической Кибернетики МИЭТ (все что ниже приводится с его слов, по памяти).

Здесь потребуется сделать небольшое отступление - сказать пару слов о предмете археологических раскопок - ЦВМ (цифровая вычислительная машина) очистных сооружений на зеленоградском водоканале. Сами очистные сооружения, очевидно, были построены в первые года-десятилетия после основания города и выгодно отличаются качеством от массы других очистных сооружений в xUSSR. Город активно рос в 90-е и постепенно водоканал начал сталкиваться с прогибами производительности системы - ЦВМ слишком долго обрабатывала данные одного из техпроцессов. Я нарочно пишу ЦВМ, потому как в те лохматые годы еще не существовало рынка микропроцессоров, таким как мы его знаем сегодня и проектирование каждой вычислительной машины было своей отдельной задачей. Линус Торвальдс считающий, что настоящие мужчины сами пишут драйвера - наивный чукотский юноша, потому как настоящие мужчины собирают комп самостоятельно и знают его работу целиком, вплоть до функции отдельно взятого триггера :)
Собственно, с машиной собранной настоящими мужчинами и пришлось столкнуться Лупину. Отдельной строкой требуется сказать о документации для этого хозяйства. Общий объем документов описывающий архитектуру, приемы работы, сопряжение с периферией интерфейсы и т.д. составлял ... мм... 100 страниц? 300? 1000? несколько шкафов? - одну замусоленную страничку с системой команд и количеством пожираемых каждой командой тактов. Естественно, ни о каких refactoring tool, IDE, да даже о языках программирования речь идти не может - чистые машинные коды :) (если конечно на папке с бумагой не прилепить надпись IDE, а на ручке refactoring tool - Recoder :) )
"Настоящие мужчины", конечно же, много лет назад вышли на пенсию из давно разорившегося НИИ и даже найти их, а тем более узнать детали реализации проекта - задача совершенно непосильная (да и по-хорошему, ненужная). Собственно апгрейдом такой штуки и предложили заняться нашему зам декана (наверное именно так у человека за день может поседеть шевелюра :) ).
Все что удалось выудить дополнительно (кроме волшебного листочка) - дамп работающей программы.
(О разработке новой системы, понятное дело, даже не заикались - очень дорого)

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

Не буду долго мучать - Лупину повезло (и всем зеленоградцам вместе с ним :) ) - в емком цикле приложения обнаружилось, что для увеличения переменной в два раза почему-то используется дорогая операция умножения, вместо сдвига. Одной такой минимальной замены операций оказалось достаточно, поэтому изменения удалось внести сравнительно быстро и они практически ничего не стоили.

Не знаю, получил ли Лупин за археологические изыскания премию, но чистая вода льется у нас из-под крана до сих пор :)

2007-09-17

Скелеты в шкафу Visual C++ 2005 Express

После чтения статей по деплойменту C++ приложений, в т.ч. How to: Deploy using XCopy складывается впечатление, что при динамической линковке с Runtime libraries, перед инсталляцией клиенту необходимо руками устанавливать Microsoft Visual C++ 2005 Redistributable Package (x86) (рилизные версии c/c++ библиотек). Неприятно. Завтра буду искать пути обхода проблемы.