some image

Месяц езжу с Webasto

Обо всем

В начале декабря поставил webasto. Месяц эксплуатирую, доволен как слон.

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

Но рассказать и поделиться все равно есть чем.

Сразу после установки выезжаю — тачка еле греется, вообще фиг прогреешь до рабочих оборотов, ну думаю ладно, за бортом -35, лишние 2 литра антифриза в системе — привыкну. Потом понимаю что даже когда прогрелась — из печки дует холодом. Ну т.е. не просто там чуть похуже стало а вообще зябко. После установки webasto печка не греет. Ну, думаю, приплыли. Заезжаю на горку, газую, что-то булькает, эффекта нет. А машина позарез нужна была, в морозы пешком двигаться по делам удовольствие то еще. Вообщем ездил я пару дней с затянутыми окнами и холодом из печки.

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

Той же ночью поехал в академ, и совершилось. Штатная помпа на скорости под сотню + вебастовская разогнали антифриз в системе и, как и ожидалось, в машине начался дикий ташкент. Пробка вышла. В машине ташкент и без помпы, как и раньше, а с бонусной халявной кнопкой и вообще в пробке жарит как на скорости 40 км/ч.

Вывод: причин плохой работы печки после установки webasto две и только две: перегибы шлангов и воздушные пробки. Все рассказы установщиков про ухудшившуюся циркуляцию и «так и должно быть» — бред и нежелание работать, не больше.

Отдельно хочется сказать о том, куда ставить webasto.

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

Теперь о приятном, т.е. об ощущениях после установки. Само собой, мне теперь строго без разницы на температуру за бортом. В морозы webasto завожу за 40 минут до выхода с брелка. Далее за 10 минут до выхода завожу движок чтоб в салоне стало тепло. Садишься в машину — красота. На улке -30 а тут уже теплынь, шапку снять можно, руль холодом не обжигает. Ну и выключаю отопитель только когда машина полностью прогреется уже с работающей на полную печкой, а это очень быстро. Через 10 минут езды климат, настроенный на -25, уже прикрывает печку, что как-бы говорит о быстроте прогрева.

Цена вопроса: 40т.р. Оно того стоит:)

Не писал две недели :)

Работа

Все это время упорно работал с http://arshaw.com/fullcalendar/

Интегрирую в проект наших клиентов http://usovolunteer.org, немного грустно, что помогаю армии США если честно. Вот музеям, библиотекам и национальным паркам — это всегда пожалуйста. А армейцам чужой страны… не по себе как-то. Ну что поделать, задачи не выбирают, делаю старательно, как своим:)

Если в кратце про fullCalendar, то это самый зрелый и полнофункциональный на сегодняшний день jQuery календарь. Drag and drop эвентов, аякс загрузка-подгрузка всгео чего только можно, поддержка всяких кастомных фишек ( у меня все управление календарем настраиваемое и рендерится через контролы Smarty ), экспорт в гугл календарь, наконец просто огромное количество решенных проблем в гугле по всем возможным запросам. Просто маст хэв всем проектам с каким-либо сложным расписанием, сложно представить сколько бы я писал все что мне понадобилось с нуля.

Вообщем доволен, работать приятно с ним, следующая стадия разработки продлится до конца января по плану.

Параллельно читаю ‘PHP: Objects, Patterns, and Practice‘, книжки по проектированию не читал курса со второго если честно, все как-то больше статейками урывал. А здесь еще и последнее издание с описанием фишек последних в PHP. Честно не знал про позднее статическое связывание, а как раз пришлось в классе-родителе создать экземпляр класса-наследника при реализации server-side календаря. Очень кстати было.

Как дочитаю — будет ревью.

SQL optimization. Join против In и Exists. Что использовать?

Метки: , Работа

«Раньше было проще» — Подумал я, садясь за оптимизацию очередного запроса в SQL management studio. Когда я писал под MySQL, реально все было проще — или работает, или нет. Или тормозит или нет. Explain решал все мои проблемы, больше ничего не требовалось. Сейчас у меня есть мощная среда разработки, отладки и оптимизации запросов и процедур/функций, и все это нагромождение создает по-моему только больше проблем. А все почему? Потому что встроенный оптимизатор запросов — зло. Read More

Умная адаптация под разрешение экрана на fileboard.ru

Метки: , , Работа

Многие знают про мой проект — fileboard.ru. Рассказывать про него не буду. Просто перейдите, зарегистрируйтесь, попробуйте.

Так вот, существовала проблема, до которой долго не доходили руки. Когда пользователь группирует файлы в одном разрешении, а потом открывает, например, на телефоне, в намного меньшем разрешении — все слепляется в кучу. Появляется эта проблема из-за того, что координаты файлов на экране не привязаны к разрешению, а имеют относительные координаты по осям от 0 до 1. Масштабировать текст и превьюшки — плохая идея, т.к. не хочется ограничивать пользователей 24″ мониторов огромными значками в угоду сохранения читаемости на мобильных.

Пример (1366×768):

Read More

Про современных Бондов и Борнов

Обо всем

Только сейчас посмотрел Эволюцию Борна. Фильм классный, но. Но. По совокупности со Скайфолом накипело.

Ну посмотрите, вот это Джеймс Бонд:

И вот это Джеймс Бонд:

А вот это алкоголик, забежавший на съемочную площадку и случайно попавший в кадр:

Нет ну серьезно, у меня у одного при просмотре возникало ощущение, что Крейгу волею Господа дано играть бомжей и наркоманов с оттопыренными ушами, а его для прикола засунули в Бондиану? Черные очки (привет Гриша Лепс) конечно спасают, но все равно не то:

Та же фигня с Борном.

Вот это Джейсон Борн, чувак который не слезал с курса качественной фармы всю жизнь и крушит все на своем пути:

А это какой-то хоббит, который вылез из своей норки и пытается всем доказать что он тоже крут:

И прошу заметить, я не подбирал фотки, это первое что есть в поисковой выдаче картинок.

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

Прогресс

Обо всем

На домашнем компьютере тормозит FIFA а на телефоне летает GTA, мир перевернулся с ног на голову:)

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

IIS течет? Утечка памяти в модуле sqlsrv 2.0

Работа

То, о чем пойдет речь в данном посте, не что иное как огромная, наглая, ужасная подстава от Microsoft. Выпустить драйвер который безвозвратно забирает n байт памяти при каждом SQL запросе — это надо умудриться.

Итак, обо всем по-порядку.

Довольно таки продолжительное время продакшн сервер грешил непонятными скачками памяти. Сразу было понятно что это w3wp.exe ( рабочий процесс IIS для application пула ).

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

Read More

Все о meta теге управления режимами в Internet Explorer

Работа

Еще не встречал статьи на русском, где все бы было понятно разложено про X-UA-Compatible тег применительно к самому замечательному в мире браузеру.

Cуществует мета тег X-UA-Compatible, который в зависимости от переданного значения content заставляет различные версии IE отображать документ в том или ином режиме.

Это крутейшая фича для IE, поскольку иногда бывает так, что все вылизано до блеска в IE7, работает в IE9 а в восьмерке распадается. И тогда мы можем не тратить время на восьмерку, подсунув ей мета тег, и все будут счастливы.

Итак, встречаем:

<meta http-equiv="X-UA-Compatible" content="IE=5">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta http-equiv="X-UA-Compatible" content="IE=7">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
<meta http-equiv="X-UA-Compatible" content="IE=8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">
<meta http-equiv="X-UA-Compatible" content="IE=10">
<meta http-equiv="X-UA-Compatible" content="IE=edge">

Значение IE=5 принудительно переводит браузер в Quirks Mode.

Значения IE=7, IE=8, IE=9, IE10 принудительно переводят браузер в режим стандартов соответствующей версии независимо от DOCTYPE документа.

Значения IE=EmulateIE7, «IE=EmulateIE8″, «IE=EmulateIE9″, «IE=EmulateIE10″ заставляют браузер работать как соответствующая версия браузера. Т.е. если мы используем «IE=EmulateIE8″ в IE9, он будет решать какой режим использовать — quirks, ie7 или ie8 самостоятельно в зависимости от DOCTYPE, и только от него.

Значение IE=edge заставляет браузер переходить в последний доступный стандарт независимо от DOCTYPE.

Пример:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
</head>
</html>

- будет использован режим IE7 во всех версиях начиная от IE7, но

<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
</head>
</html>

- будет использован Quirks Mode во всех версиях IE

Internet Explorer 10

В IE10 стало 2 Quirks Mode: ie5 qurks и обычный. Первый включается тегом
<meta http-equiv=»X-UA-Compatible» content=»IE=5″>, а второй — отсутствием DOCTYPE.
Вот и все хитрости.

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

Про типы DOCTYPE можно почитать здесь: http://htmlbook.ru/html/!doctype

Нюансы работы PHP session.gc_maxlifetime

Работа

… или почему на некоторых хостингах сессии долго не живут.

Использование ini_set(‘session.gc_maxlifetime’, value); в коде приложения отнюдь не гарантирует сессиям долгую жизнь. Устанавливая эту директиву, вы лишь обеспечиваете, что garbage collector, запущенный из вашего приложения будет  удалять во временной папке сессии, ориентируясь на это время.

Если же garbage был запущен из другого скрипта со своими или дефолтными настройками, он будет удалять файлы, естественно, не оглядываясь на параметр из первого абзаца.

Пример. Вы установили в своем main приложении время жизни сессии 7 дней. Garbage, инициированный вашим приложением, заходит и удаляет все файл старше семи дней.

Но тут вы запускаете на этом же сервере скрипт rebuildDatabase.php, у которого этих настроек нет и берутся дефолтные из php.ini: 1 день. И срабатывает GC. В лучшем случае он удалит все сессии, которые должны были жить несколько дней. В худшем — повесит весь сервер если файлов на удаление оказалось очень много.

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

Мораль: используя в своем проекте ini_set(‘session.gc_maxlifetime’, value), всегда меняйте дефолтную папку вызовом ini_set(‘session.save_path’, value). Ну и про глюки garbage collector php не забываем.