Пофигизм людей к себе не излечим.

Съездили с семьей отдохнуть в санаторий. Там отдыхают со всего СНГ — встретили людей из России, Белоруссии,  Литвы, Израиля, южные страны (Кавказ, Таджикистан и т.д.), какие-то «блатные» ходили, — сборная солянка, все русскоговорящие.

Под конец отдыха, в санатории за один день (мы в том числе) слегло процентов 60-70 от острой кишечной инфекции (официально 100-150 человек, не официально еще столько же сидят в номерах и тихонько блюют в унитаз). Я не буду разбирать тут причины, кто виноват и  кто прав, но для меня лично очевидно, что если весь санаторий ни чихает, ни кашляет и т.д. и т.п. в таком массовом распространение виновата кухня или качество воды.

  • Думаете его прикрыли на время разбирательства?
  • Думаете были какие-то экстренные меры, помощь и т.д. и т.п.?
  • Думаете пострадавшие люди получили какое-то снисхождение или компенсацию?
  • Думаете в СМИ просочилась эта информация?

ХРЕН ВАМ…

А ЗНАЕТЕ ПОЧЕМУ?

Да потому что людям, которые платят по $50-$150 в день за прибывание там — пофиг на это все. Ну подумаешь поблюют 1-2 дня, не буду ходить на процедуры, не буду питаться шведским столом, проваляются тупо в номере (как раз погода наладилась). Ну бывает же. Ведь это все «included». Они за это заплатили.

А ЗНАЕТЕ ЧТО МЕНЯ ПОРАЗИЛО ЕЩЕ БОЛЬШЕ?

Подходишь ты к человеку и говоришь, — «Я вижу что Вы то же пострадали, можете дать свои данные (фио/телефон), если будет судебное разбирательство, помочь друг другу, с целью давления на администрацию санатория, доказательная база… Может Вы с нами поучаствуете? Ведь это не дело и отношение, это ужас…»

Из 10 человек, согласился только 1-ин. И то не хотя, и то только потому что визуально знал нас (где-то пересекались одномоментно). Причины отказа — не хочу участвовать в суде (насмотрятся «форс мажоров»), мне это не нужно, ай, я из другой страны, я не хочу с ними ругаться, !!! меня тут все устраивает!!! и т.д. и т.п. Причем многие уже покидали санаторий (день выезда).

ИТОГ

В начале мне администрация сказала, что они ничего не могут сделать, ведь причина еще не установлена (вдруг кто-то всех заразил, а это форс мажор), нужно подождать 1-2-3-4-5… дней пока санэпидемстанция установит виновных, Вы наверное уже поняли чем это бы закончилось при таком раскладе…

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

Они день думали, ну  а потом вернули часть денег не без торга (причем нашли вполне  законный способ, которым могли бы воспользоваться ВСЕ ОТДЫХАЮЩИЕ, кто хотя бы раз обратился в медпункт или пожаловался на недомогание), предложили остаться у них бесплатно еще на пару дней (были посланы сами знаете куда),  не выгнали с номера ровно в полдень (сколько нужно времени столько и собирайтесь) причем тех кто не пошел на конфликт — выставили всех до 12:15 (с малыми детьми, старичков и т.д.), воды дали бутылированной в дорогу сколько нужно, сухариков (хотите покормим Вас еще раз за свой счет) и конечно же смекты, да же «сцаную» справку выписали что я у них болел (правда написали там расстройство, ведь острое-кишечное это сразу GG будет санаторию),  пожелали счастливого пути, приезжайте к нам еще… Люблю и целую… Мир, дружба, жвачка.

ЭПИЛОГ

  1. Получил бесценный опыт!
  2. Людям не нужен спаситель, людей не нужно спасать, их и так все устраивает. И я не думаю что сейчас время такое-особенное, я думаю что так было всегда и будет. Еще один миф рухнул. Правы буддисты — нефиг вмешиваться в процесс, пока тебя не попросят.
  3. Нужно стать еще жестче, чтобы в таких ситуациях решать вопросы быстрее и с лучшим исходом для семьи/себя. Еще не  много «прокачаться» в юридическом плане.
  4. Хочешь получить 10, проси 15, а лучше 20, но с железной аргументацией. Это я и так знал, просто «проверил» на практике.
  5. Не верь теткам которые сидят на ресепшне, не верь уборщицам которые убирают номера, а главное не верь всем вышестоящим начальникам. Если возникают малейшие сомнения (бывает такое иногда,  кажется что-то не так) — сразу же включать мозг на 100%, да же если устал, хочешь спать, срать и т.д. В 75% случаях это значит, что тебя хотят как-то нае..ть
  6. Что-то не нравится — сразу жаловаться, кричать, угрожать (в рамках закона) , не могут исправить — гоните назад деньги да еще сверху досыпьте… Все левые компенсации или не равноценные обмен — нах. Судиться никто не хочет, если есть малейший повод проиграть.
  7. Если не дай бог попаду еще раз в такую ситуацию, пройти суд и отжать «мудаков» по полной программе, да же с риском проиграть (хоть это еще тот геморрой, особенно когда иск нужно подавать в чужом городе, платить адвокату, собирать «улики», тратить свои нервы и время).
  8. Но в целом санаторий не плохой — может еще раз вернемся туда, но наученные и «злые» ;-)

 

PS. Еще пару дней и вернусь к работе, видимо все таки буду мутить товарный сервис «для людей». Два мини сервиса пока ни как.

Мой «говно код» -2… Двойной бан от Яндекса.

Продолжаю писать про свой «мега-код»…

Значится запустил я обновления, дня 3/4 шуршали VDS-ки, если в начале были не обновлены  500-600 файлов, то к концу осталось лишь 60-70 — «проблемных».

Что это значит «проблемных»?

Оферы часто отключаются/ставятся на паузу (не все оферы вовремя  платят admitad) — соответственно их на какое время останавливают. После этого фиды XML данного офера становятся не доступны (пока его опять не запустят). Отключить могут на совсем, или на месяц-два три… Чтобы автоматическая система обновления фидов не падала, при невозможности загрузки или другой внештатной ситуации, фиду/сайту присваивается +1 ошибка. 5 ошибок — обновление блокируется. Это позволяло избегать зацикливания, когда скрипт по крону пытается обновить одни и те же файлы, которые обновить не получается, в результате ничего не обновляется.

Накидал за часик кнопку, скинуть все ошибки по всем проектам, чтобы обновить остатки 60-70 штук (туда просто попали Pleer, Вольт Марк и т.д. — года 1.5 назад очень хорошо зашли они).

Потом полез в Яндекс Вебмастер, нашел кучу красных треугольничков, проблема с доступностью сервера (сайт не отвечает 3 сек или больше), или VDS не справляется или мой говно код.

Впрочем, верно сказать что и то и другое. Глянул что может тормозить — оказывается что:

  1. поиск по сайту;
  2. подбор похожих товаров.
  3. нет индекса по discount

по №1.

Нельзя писать вот такие запросы, когда у Вас в базе 300-1000К товаров уже:

SELECT offer_id FROM offer  left join img on img_offers_id=offer_id WHERE (offer_model like ‘%».$zapros.»%’)or(offer_name like ‘%».$zapros.»%’) group by offer_id

Нужно хотя бы так:

SELECT offer_id FROM offer  WHERE (offer_model like ‘%».$zapros.»%’)or(offer_name like ‘%».$zapros.»%’) limit 40

Пользователь, хорошо если вобьет что-нибудь такое «13123123», и запрос спокойно отработает за 2-3 сек (что на самом деле много). А если он введет, ну скажем «ra»… Количество таких товаров — много (60-70К)… Результата можно и не дождаться.

Второй вариант с лимитом, отрабатывает в худшем случае за 2 секунды, в лучшем за 0.05-0.1. Профит. Уменьшили нагрузку на сервер в разы (у меня есть куча страниц с результатами поиска, который высчитывается). Да и убираем дубли страниц, если результат поиска больше 40 записей. Думаю что яндекс полез на эти страницы, собственно вот и проблема с VDS.

по №2.

Система то же делалась «хитро», в одном из случаев смотрит похожие по вендору (похожие товары). Но проблема в том, что это поле не  индекс… Упсс…. Результат — mysql-ем сильно грузим сервер. А этот запрос нужен вообще? Думаю что нет… нафиг.

по №3.

Используется только на главной. Запрос может сильно тормозить систему, если  условия заданные требуют перебрать все записи, или отсутствует лимит. Добавлю индекс +1 поле  и забыть…

PS. Вывод.. ХЗ как это все работало 1-2-3 года… Не понимаю, не представляю… Но сам факт есть… Гавно не тонет! :-)

Двойной бан от яндекса.

Есть одна витрина, добавленная в яндекс Вемастер. Для нее стоят две фатальные ошибки: Ваш сайт дорвей… (бла-бла-бла). Ваш сайт может угрожать безопасности пользователя… (бла-бла-бла).

Кроме этого висит 1-ин крит, долгий ответ сервера…

И ничего… В выдаче страницы висят. Сколько-то там показов пользователям идет, по ряду ключей…  То есть сам факт того, что Яндекс считает сайт опасным и дором — не выкидывает его из индекса «навсегда» и не отнимает 100% трафа… :-)

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

Кстати мало кто про это пишет, все пишут про бадан-бадан, и остальное… Наверное в такую Ж… мало кто попадал) А зря… Там то же есть свет!

Мой «говно код»…

Закончил бету 2-го мини сервиса, выкинул в Интернет, сказал гугл/яндексу что он есть и забыл про него на 1-3 месяца. Посмотрим что даст… Или не даст…

Но пост не об этом. Есть у меня своя система под витрины. Я когда-то писал давно про нее.

В первой версии в ручном режиме приходилось брать XML-ки с admitad, заливать их на витрину. Обновлений потом никаких не было: цен, наличия, новых позиций и т.д. Понятно, что витрина «стреляла», а через месяца 3-6-12 сходила на нет. Так как да же не смотря на сотни тысяч страниц товаров, они теряли свою актуальность. Траф сползал, но все рано народ шел. Где-то через 1 год, половина залитых оферов были уже «мертвы» (магазины то же закрываются). Но проблема была в другом, многие начали требовать актуальной информации (цена, наличие), чтобы не вводить пользователей в заблуждение. Если ты не можешь этого — «досвидос».  Меня эта тенденция тогда испугала…

Сейчас это еще не так актуально, но до поры до времени — это я Вангую, потом гайки закрутят.

И понятно что масштабировать такое было нельзя.

Тогда появилась вторая версия, где была возможность:

а) в ручном режиме добавлять новые выгрузки в текущий проект, нажатием 2-х кнопок;

б) в ручном режиме обновлять уже загруженные XML выгрузки — нажал кнопку, подождал… Нажал другую — подождал…

Это упростило жизнь, и позволило делать актуальные витрины 10-ми.

Когда их стало больше 30, тыкать кнопки для их обновления раз в месяц мне надоело и появилась 3-ия, текущая версия, которая по крону, сама загружает XML-ки актуальные, и обновляет их на текущих витринах.

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

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

Система относительна стабильна, ну то есть год я ее не трогал. Смотрел там логи обновления иногда, что-то подкручивал совсем по мелочи…

Чтобы Вы представляли, за неделю загружается что-то около 250 XML файлов размером от 200кб и до 250 мб, которые  в дальнейшем обновляются, в среднем каждый 10-12 раз (на разных витринах, отдельные БД).

Но рано или поздно, наступает время «Хэ»,когда все перестает работать как нужно  (не может обновить 1-ин файл скажем 10-12 запусков крона, накапливается очередь, сервер начал дико тормозить, я его перегрузил, он не поднялся… короче, первый звоночек, что нужно что-то сделать).

Пришлось залезть в свой «гавно код»…

Ну а дальше как всегда… Для 1-ой таблицы, 1-го поля  не было индекса… Но это замедляло процесс обновления, но не являлось для него фатальным.

Фатальным, оказалась процедура расчета текущего количества товаров в категориях при обновлениях, если у офера было скажем 3-20К категорий. Не знаю зачем я это делал года  2 назад, но я считал что на странице, категории, допустим «Ноутбук (150)», круче чем просто «Ноутбук» (150 это кол-во товаров там).

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

В результате, убрал 50% кода (он вообще там был не нужен, то есть по факту ничего не делал), добавил в обход дерева категорий обратный индекс родителей (до этого был цикл «Карл»…, ну то есть от 1 до N, а есть ли у этой категории ребенок, если нет, значит это низ дерева, и можно зафиксировать результат, плюс добавить «папе» тек. кол-во и исключить под-категорию из дальнейшего расчета).

Вместо цикла, а я напоминаю, что при 10К категорий, цикл бежит в среднем до 5К, чтобы проверить 1-ну категорию, стало одно условие, один жалкий if.

Результат, это кусок делался локально за 300 сек, сейчас тот же кусок делается 5 сек на тех же данных, с тем же результатом. Добавил чистку пустых категорий.

Короче, нужно навести в своем сарае не много порядка и наверное расширится еще на ~50 доменов в этом направлении. Тем более за последних 0.5 года, добавилось очень много оферов. Думаю по многим пока еще нет конкуренции и можно что-то отжать.

PS. Взять и переписать всю систему заново, чтобы все было хорошо, с учетом полученного опыта и прочее? А зачем, если она и так работает? Был бы супер доход -нужно было бы и можно было бы сделать…А так…

Так что плодимся дальше. А следующий сервис, все таки будет по товарке я думаю. Есть 2-3 идеи.