| Январь, 2010 | ||||||
|---|---|---|---|---|---|---|
| Пн. | Вт. | Ср. | Чт. | Пт. | Сб. | Вс. |
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| декабрь | февраль | ||||||
Исходники можно взять здесь: http://github.com/frague/bezumnoe3
Снова заработала френдлента к журналам. Ссылку на неё в шаблоне журнала можно получить по тегу ##FRIENDSLINК##. Например, адрес френдленты моего журнала таков: /journal/5002202653/friends/. Также снова подняты RSS-каналы к френдлентам. Пока отображаются только публичные сообщения.
Простой график, говорящий сам за себя. При переезде мы потеряли в посетителях, в ТИЦ, в PageRank...

Если бы все работы провести планово, с поэтапным переездом на новый хостинг, этого удалось бы избежать.
Восстановил RSS-каналы для сообщений всех журналов чата и для отдельного журнала. Канал для френдленты появится с появлением самой френдленты...
Совсем недавно в журнале появилась новая фича - теги (известные так же как метки). Я надеялся, что новшество окажется востребованным, т.к. на собственном опыте убедился в его удобстве. Удобным оно будет в первую очередь для тех, у кого в журнале много сообщений.
Итак, в этом посте я расскажу, что такое теги и для чего они нужны.
Теги - ключевые слова, которыми можно охарактеризовать то или иное сообщение. Обычно это 1-2 слова, реже - некое высказывание. Что это нам даёт? Мы привязываем к своим сообщениям определённые ключевые слова, таким образом, разбивая все сообщения по категориям. Пример: я расставил теги в сообщениях своего журнала за последние 2-3 года. Теперь я могу посмотреть все сообщения в своём журнале относящиеся, например, к Василисе или к моим путешествиям.

Теги можно задать в открывающемся спойлере при добавлении или редактировании сообщения.
В шаблонах журнала указание на теги добавляется в виде ключевого слова ##TАGS## в разметку отдельного сообщения. Отображаться они будут в виде ссылок:

По мере накопления тегов в сообщении журнала формируется "облако тегов". Т.е. все теги журнала выводятся в единое "облако", причём наиболее весомые (чаще встречающиеся) будут выделяться более крупным шрифтом, а наименее - более мелким. Облако тегов добавляется в основную разметку ключевым словом ##TАGSCLOUD##.
P.S. Не копируйте ключевые слова из этого сообщения! В них буквы "А" заменены на русские, чтобы система их не парсила :)
Сделал в чате нотификации о новых сообщениях в журналах и форумах.
Upd.: Только работают они как-то через раз...
Возможны осадки в виде тегов...
В журналах повились новые спецкоманды: ##TАGS## в разметке сообщения отобразит список тегов к нему (если они заданы); ##TАGSCLOUD## в основной разметке выведет облако тегов журнала с учётом "веса" каждого из них.
Переехал-таки на новый хостинг (скоропостижно). Стартовал новую версию чата прям в состоянии альфы. Ну что ж, будем тестировать всем миром...
ДР прошёл тихо, с малым количеством спиртного, большим количеством вкусной еды, хороших людей и поздравлений по СМС.
Теперь у меня есть новая ракета - про неё напишу позже. Ну и так вообще, есть, про что написать, но что-то уже нет сил и хочется спать... :)
Задача: на сайте используется набор javascript-библиотек, которые сливаются php-скриптом в один файл с названием вида 78472581267468236825748923.js (где цифры - имплод номеров версий каждой отдельной библиотеки), а контент оптимизирован и (может быть) как-то упакован. Планируется, что сий файл будет сидеть в кеше (а по размеру он довольно большой) и когда версия хоть одной из библиотек изменится - изменится имя файла и он будет заново запрошен с сервера. Все счастливы, траффик сэкономлен, дети смеются, Санта Клаус раздаёт подарки, мир во всём мире.
Как же дело обстоит на самом деле? В один прекрасный момент вы замечаете, что траффик у вас совсем не убавился и посмотрев статистику обнаруживаете, что ваш файлик с красивым именем 78472581267468236825748923.js таскается с сервера при каждом запросе и ну никак не хочет залезать в кеш браузера.
Начинаем копать глубже и при сравнении хедеров нашего файла и обычного статичного js обнаруживаем, что у последнего в хедере присутствует параметр "Last-Modified: Wed, 10 Sep 2008 07:01:14 GMT", определяющий дату обновления файла. В нашем же файле параметр сий отсутствует и сервер каждый раз шлёт ответ клиенту "200 ОК" с полным контентом.
Гуглим. Пишем принудительную отправку этого параметра в хедере. Не шлётся и всё - хоть убейся.
На различных форумах в сети есть много логичных объяснений. Например, "хренли слать дату обновления скрипта, если контент динамический?" (действительно, возразить сложно).
Грешил сначала на апач (думал, он отправляемые мной хедеры парсит и пропускает только то, что ему угодно).
Попробовал активировать для моего файла xBitHack. Появились первые подвижки - в хедере возник "Last-Modified", однако, ссылался он на текущую дату/время и изменениям не поддавался.
Потом думал, что пхп не хочет мои хедеры отдавать. 10 раз проверил все возможные варианты синтаксиса, генерацию даты, генерацию хеш-ключа ETag - ноль реакции.
В конечном итоге была найдена информация, что апач будет отдавать Last-Modified только если у файла есть разрешение на execute для группы. Для chmod пришлось тоже писать скриптик, т.к. ходим к хостеру самбой.
И, о чудо, вдруг всё заработало! )))
Механизм определения обновления через хеш ETag описывать не буду - он будет в первой 10 выдачи в гугле по запросу "etag".
Безумное 3 вчера отмечал 100 ревижн. Всего сотый, потому, что на работе в репозиторий сливать нет возможности (он на домашнем компе), и поэтому наработки с офисного компа раз в 2-3 дня сливаются на домашний, мержатся и закидываются в свн.
На сегодняшний день готово примерно 55% от запланированного объёма.
В принципе, это уже довольно работоспособный продукт, но запускать его ещё рано.
Теги: git, безумное3