Узелки на память...

17.09.2008

Jason vs. Freddy

1.. 2.. 3..
Ножницы! Ножницы! Ножницы!
Ножницы! Ножницы! Камень! Правда? Нет, ножницы!
 via  Blame It On The Voices
17.09.2008

Месяц

Через месяц стану старше на год. Никаких мыслей по этому поводу не посещает. Почему-то....

С понедельника снова становлюсь студентом - после работы ещё 3 часа (+ целый день в субботу) буду сидеть на парах в экономе. А это значит, что под вопросом (наверное, уже даже под восклицательным знаком) оказываются мои и без того не частые тренировки, теннис с преподами по субботам, баня, домашние дела и ремонт... Сижу вот и думаю, а стоит ли оно того?.. 

13.09.2008

За последнее время в жизни произошло:

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

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

- Натаха наша всех вынесла на олимпиаде, не взирая на заслуженность и регалии. Провели 2 сеанса связи "с космосом", не уставая констатировать факт, что "прогресс шагнул далеко вперёд". Скайп рулит ) Натаха - молодец.

- Приезжала Kimi. Сегодня 2 часа рубились на теннисном корте против неё с Танькой вдвоём - были разбиты на голову. Были одарены авторским плакатом с защиты докторской по химии (что-то про выращивание кристаллов), смысл которого не поймём никогда (но красивый) и бутылкой какого-то безумного бельгийского эля, настолько редкого, что даже и не знаю, поднимется ли рука открывать ))) Вообще, здорово провели время, хоть его было и не очень много.

- После поездки на рыбалку под "Тарлыковку" поехал на СТО чистить и регулировать карбюратор. По приезду обнаружил, что течёт радиатор... Купил на месте, заменил сам за 15 минут. Зайцемобиль летает как птица! )

- 3 версия чата пишется несколько медленнее, чем 2 недели назад - на работе опять появились таски, да и настроение ещё не адаптировалось к осени - хочется ещё поваляться на пляже... Но прогресс всё равно есть.

- С приходом "холодов" всё чаще возникает желание продолжать ремонт, что не может не радовать ))

10.09.2008

Last-Modified

Задача: на сайте используется набор 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".

29.08.2008

at revision 100

Безумное 3 вчера отмечал 100 ревижн. Всего сотый, потому, что на работе в репозиторий сливать нет возможности (он на домашнем компе), и поэтому наработки с офисного компа раз в 2-3 дня сливаются на домашний, мержатся и закидываются в свн.

На сегодняшний день готово примерно 55% от запланированного объёма.

В принципе, это уже довольно работоспособный продукт, но запускать его ещё рано.