R2D2_Blog

Самые глупые деньги в вашей жизни! Криптохуйня!

Сегодня я вот такие нажил.
Мне было интересно что такое майнинг.
Я немножко помайнил. И нажил на этом кое-какие копеечки.
Я не знаю зачем это, куда это. Но оказалось что это работает.
Я чувствую себя идиотом! Самым дебильным человеком в мире. Тут заплатил — там получил.

Подмайнил я тут:

HashFlare

 

На самом деле я немного припиздел!
В новогодние праздники у меня появилсоь чуть-чуть свободного времекни , и я очень плотно задался вопросом изучения всей этой криптохуйни, не могу  сказать, что у меня есть окончательно мнение про все это, но определенное понимание появилось.

Так что возможно в ближайшее время я запущу новый проект, посвященный криптохуйне!

Хуйнаныр(0)Очко(0)

Анонсы статей — для самого себя чтобы не забыть

1 — spl_autoload в версиях 2х и тормоза. По моему я на грани обнаружения суперархитекутрной ошибки.

2 — методология поиска косяков по методу Брюса Ивановича Ли, там где никто не смог.

3 — Наверное первый раз я сам про себя напишу отзыв, или как у меня получился проект, который на холодную без всяких кешей при 100 000 товаров отзывается за 100 мс, и чего мне это стоило.

А вы пока расскажите, как там у вас дела к новому году продвигаются, телочкам брюлики-айфончики приготовили? Телочки, вас мало но вы есть, я знаю, уже знаете какой формы снежинку на лобке выбреете для вашего пупсика под бой курантов. Вот я так и вижу. Каталина себе выстрижет нежное July на фоне сердечка. А луис — какое нить слово Prana стилизованное индийской вязью. А жена шопутилса 12strun, по моему пизду ваще не бреет, потому что она мужик.  И шопутилса на новый год ждет новый свеженький СТРАПОН!.

ЧЕ как ваще? Путин заебал? Порошенко заебал? Работа гавно? Собчак- лошадь? Навальный — гей? Извиниться ли на всякий случай перед горным народом за то что дрочил с 12 лет?

Хуйнаныр(13)Очко(0)

Если звезды зажигают, значит это кому то надо….

Но вот хер пойми кому.

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

Самая паскудная категория — это администраторы linux-серверов и «я не владелец магазина, я не приинимаю решения».

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

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

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

В продолжение темы.
Перед новым годом происходит какое то обострение в головах.
Был такой себе парень DEEMAN, был он беден и никому не известен, сделал клиенту магазин, клиент попросил одностраничное оформление, наш герой кряхтя сделал модуль и пошло. Наверное процедура оформления важна. Я не спорю. Наверное наши люди не такие тупые как американцы, которые почему то могут спокойно заполнить сегментированную форму, а наши нет. Но в банкомате блядь деньги даже бабушки с альцгеймером с карточки научились и ничего. Но суть не в этом. Раньше диман вроде был вмнеямым перцем.  А тут как напродавал модулей началась ебала. То там косяк то тут, нахуевертил вместо простого понятного модуля конструктор, в котором черт ногу сломит, и пользуясь отсутствием конкуренции сидит не свистит в хуй.
Приходит ко мне старый клиент и говорит мол так и так. Везде оформляется в хроме не оформляется. Бля буду. Диману пишут — тот на хуй — обновляйте, у вас косяки хуесяки. Обновлять нихера нельзя, так как диз запилен под конкретную версию. Разбираться парню в лом. Тексты ну ахуеть — я блять вам буду раз в сутки отвечать. Да посмотри ж ты ебана рот косяк там и там из-за того и из-за того. Модуль закодирован. Лазить  с бубном ну в рот ебалось если ты знаешь свой код как пять копеек. О чем говорить глянул -увидел проблему да забыли. Нет же…
ЕСЛИ ВЫ БУДЕТЕ МЕНЯ В ТОМ ЖЕ ДУХЕ ЗАЕБЫВАТЬ — ОТВЕЧАТЬ БУДУ РАЗ В СУТКИ. Это называется Борзый петух. При чем вот с хуяли. Зарабатывал ты 5 лет назад три копейки, бегал бы за каждой просьбой. А теперь взлетел и зазнался. Пока что не зашкварился только Usergio c его парсером и всегда оказывает посильный саппорт и реагирует на багфиксы.

Вторая ситуация. Опять же старый знакомый пишет — переехал на 2.x версию у меня два программера работают через GIT, через гит блять на опенкарте. А Ocmod, чем вам не гит. Ебать молотить. Сука сука. Ну да ладно еще у него одноклассник сисадмин. Рут не дам, то не дам это не дам, этот пакет ставить не буду, тут не то, там не это. Ебаный ту сука конченный сисадминский олень, поймать бы тебя в подворотне, да начистить ебальник. Ебет тебя буду не буду, надо  не надо, ты специалист  в opencart — нет, ты несешь финансовую ответственность за магазин нет. Ты сука ебанная тупая обезьяна, замены тебе на фрилансе — ЛЕГИОН! Сиди блядь тихо и делай то что от тебя требует. Ты за это получаешь деньги.  Обычно я такие проблемы шлю лесом. Не дадите — ебитесь сами. Но тут позитивный тип, отказать в помощи как то невдобно. Поэтому я думаю что все будет хорошо. Пока не могу раскрывать тайну про развитие ситуации.

Третья ситуация. Очень большой магазин. 100к+ товаров. Постоянные обновления. Выделенный сервер. Специально нанятый штатный программист и штатный сисадмин. Та же хуйня. Фтп блять полдня рожали. Полный доступ в админ с 20го раза, и то после пожелания, чтобы они всю жизнь геморрой лечили по фотографии.
Предыстория, сначала приходит программист — мол так и так. Магаз тормозит. Не смог он найти со мной общий язык. Ушел. Слава богу отдал контакт владельцу, с которым мы нашли понимание моментально. В общем сука чате с владельцем и двумя парнями из ларца одинаковыми с лица мне пришлось вынимать раскаленными клещами доступы.
А оказалось почему? Да потому что  последние три месяца они дули в уши хозяину что с проектом все в порядке. Сервер заебись, с кодом все заебись с базой заебись — и это просто черная магия виновата в том, что уже три недели нет возможности добавить новый товар. У владельца падает трафик, падает выдача в поисковиках, новый год  на носу, надо нарубить бабла на год вперед. А наши парни «все в порядке» пиздят как дышат. Получив доступ к проекту. Оказалось что с базой пиздец. По коду работать и работать. Сфинкс стоит — но не работает. И сервант — какой то древний на древних HDD, и filesseek операционной системы для поиска сверки дат изменений изображений занимает полсекунды. А еще полсекунды поиск-чтение кеша сео про. Вобщем делать там было особо не хуй. Приговор — сначала менять сервер, а потом все остальное.
В ответ:

[13 декабря 2017 г. 11:41] 500 мс. на сканирование картинок — это какая-то архитектурная глупость — зачем их сканировать каждый раз?
Ну а так — нормальный результат жля такого кол.-ва файлов в папке. ССД да, помогут для таких вещей.  Думаю процентов на 10.
[13 декабря 2017 г. 11:42] а вы «другой сервак» нагрузили нужным количеством запросов?
[13 декабря 2017 г. 11:42] на пустую он и на телефоне быстро бегать будет
Центос сам по себе ничего против не имею. кроме неудобства, но то мои проблемы.
МарияДБ для ИнноДБ на МОИХ тестах проигрывает Перконе, при чем порядочно.

Слушайте господа. Ну если бы я был зеленым студентом, я бы расстроился. А тут походу чувак получает ахуеть откат с хостинговой компании за проданный сервант и боиться потерять свою тыщу долларов в год.
По факту — ебет тебя глупость или умность, есть рабочий проект. Который надо не переписывать архитектурно, а создавать ему нормально окружение.
Тестовую площадку мы развернули на сервере, где живет 20 штук живых магазинов, общее количество товаров превышает миллион. И просмотров страниц в день от ботов и людей 250-300000, так что был нагружен по самое не хочу. И знаете что. Разница была 1300мс и 180мс. 7.5раз — только за счет изменения окружения. А дальше вишенка на торте. Percona у него 10% на тестах выигрывает для innodb. Ну ахуеть же теперь. Там innodb таблиц до меня и рядом не было), пришлось их сделать, так как товары постоянно обновляются-добавляются и innodb позволяет это делать без лока всей таблицы.  И 10% общей мизерной разницы, при общей проблеме сука в секунду плюс. Да я бы сука такого лоха на хуй уволил с запретом доступа к серверам клиентов пожизненно. Ну и я уже молчу о том, что новая более мощная площадка, которую мы подобрали владельцу, ему обойдется в $70 в месяц а не в $180. И за год он увидит бонус на красную икру в размере (180-70) * 12 = $1320.
А теперь внимание вопрос знатокам, точнее два. Как вы думаете сколько бы еще владельцу магаза лили в уши сказки про «все в порядке» и как долго он верил в эти сказки не свяжись со мной? Ну и по итогу надо отдать должное штатному программисту. Он сделал все что былов его силах на этом проекте, просто про остальные косяки ему негде было взять понимание. А вот сисадмин по классике ведет себя как гнойная жаба.

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

Но реально я от сисадминов устал. Чем больше я с ними сталкиваюсь, тем больше мне хочется чтобы они все прошли через подвал Зеда, как Марселас Волас!

zed

 

 

 

Хуйнаныр(9)Очко(1)

Убить их всех на хуй!!! (обновлено)

Как я и предполагал. Зловред сука оказался зловредным.

И вместо того чтобы перевезти товарищей на adminvps и забыть про проблемы, я решил чпокаться дальше на гавнохостинге.

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

Также напоминаю, что проект у нас живет на гавно-спейс-вебе, на самом дешман хостинге и никакие ip-tables и нативные nginx-файрволы нам недоступны.

Поэтому за неимением дворника ебем горнишную.

Делаем вот такой типа firewall в догонку ко всему предыдущему коду и подключаем его в index перед $registry->set(‘db’, $db);

Честно говоря, я очень этим не доволен. Это сделано на коленке. По хорошему надо переделать сделать отдельное подключение к mysql а не после инициализации половины движка. А еще лучше использовать memcache.  А еще написать стучалку администратору магазина о блокировке айпишника — чтобы случайно ничего левого не залочить. А еще неплохо было бы сделать подсчет хитов за день и блокировку по рейтам за несколько периодов. А не только за последний час.

Это быстрое промежуточное ленивое решение по принципу за неимением дворника — ебем горнишную.

 

Upd — не сдержался я, дописал немного лАвушЬку.
Сделал отлов за короткий период — типа более 10 запросов с одного айпи за последние 20 секунд. Добавил в robots сrawl-delay: 3, чтобы не схлопнуть че лишнего, хотя ботов мы пропускаем. (для ботов кстати есть очень кошерные методы проверки — читаем гугл доки).

А также сделал проверку на ajax, чтобы юзвери не понакручивали сами себе блокировок.

Отключив фильтр по странам, за 10 минут поймалась вот такая рыба:

117.78.42.55
121.31.103.73
213.37.198.221
217.21.36.113
35.198.129.156
35.198.136.218
35.198.66.59
35.198.97.121
46.188.58.197
46.242.73.182
52.24.10.243

Все айпи гуглятся — и на первых страницах, либо в списках фри-прокси, либо в спам-базах.

Upd2 — прошли почти сутки.
Моя лавушька отлично схлопывает мудацкие айпи на ура. С рейтами и таймингами мы угадали.

Вот такой вот результат:

stats

 

stat2

 

И это нагрузка на минуточку с учетом того что до восьми утра трафик полноценно валил с рф-прокси.

А еще мы с господином savage4pro придумали целую методологию по обучению этой системы, расстановки баллов и статусов айпишнигам, изменения рейтов и таймингов в зависимости от этих параметров.
А еще можно на каждый заблокированный айпи чекать первую страницу выдачи гугла и обнаруживая там текст free proxy или abuse удалять его в перманент.
Вобщем ебанутым нет покоя, но как сказал недавно Андрей Аксенов (автор сфинкса) , к сожалению приходит время, когда приходится платить по ипотеке и opensource становиться commercial. Вот и тут: можно раздуть проект и нафаршировать его кучей логики, визуальной частью, добавить монтироринг парсинга, подключене по api к массе ipblaclist и так далее. Но в итоге эта реализация будет востребована может быть раз в год каким-то беднягой.

Намного бабловее взять сделать еще один обратный звонок или быстрый заказ, назвать его СУПЕРМЕГАУПРВАВЛЕНИЕТОРГОВЛЕЙ и платить ту самую абстрактную ипотеку.

Хуйнаныр(9)Очко(0)

Убей убей их всех!

В продолжение истории борьбы с непонятным трафиком.

Блокировки азиатских стран хватило на сутки.
Зловреды поменял пул проксей и сегодня прилетеле еще более дикий траф с Европы и Америки.

fuckin_fuck

Пока я спал, владельцы самостоятельно заблокировали все страны кроме РФ по айпи — но это несколько неправильно. Так как список постоянно обновляется и все таки лучше рассчитывать на MaxMind а не на непонятные подсказки с Toster.ru, во вторых боты могут стучаться откуда угодно и их надо пропускать.

Пришлось переделать конструкцию:

Дальше, если придет опять нагрузка — ее надо уже будет мониторить вручную, и блочить айпи руками, если пойдет нагрузка из рф. Зловред может подделать заголовки USER-AGENT и притвориться ботом. за этим тоже надо следить, но тут одного маленького стука в гугл хватит для прикрытия лавочки.  Ну и реально мудачье в space-web могли бы почесать хоть немного жопу и написать маломальские анализаторы ддоса.

И еще, если вы соберетесь проворачивать подобные ситуации на своих магазинах. Обязательно проверяйте результат через host-tracker и смотрите ответы через «посмотреть как гугл-бот, посмотреть как яндекс-бот», потому что можно одним взмахом пера закрыть полностью индексацию.

UPD.

Тут господин Soor навел меня на мысли вопросом откуда они берутся. Мы  же не одни такие, людей страдает много, поэтому гуглим зловред-айпишники, с которых больше всего запросов…
Находим их в спам базе https://stopforumspam.com/ и блокируем как то так:

 

UPD2. Рано или поздно зловреды отьебуться. И тогда надо будет снимать всю эту трахомундию и приглядывать за нагрузкой. Снимать надо — потому что opensource max-mind база данных — не полная и можно залочить случайно приличный кусок трафика. А полная и актуальная стоит денег.

Хуйнаныр(6)Очко(2)

Убей, убей, убей. Убей КИТАЙЦА И ИНДУСА!

Пост не о разжигании межрассовых войн ни в коем случае, а как ни странно, про спасение нагрузки на магазин.

Обратились на днях владельцы магазина с проблемой: трафика 100 человек в сутки, а нагрузка запредельная. Хостинг как обычно, вместо того чтобы разбираться, собирается все заблокировать, бизнес в опасности, нагрузка на базу дикая, турбокеш не спасает.  Магазин тупит. Вобщем беда.

Покопавшись в потрохах проекта, каких то аномалий я не нашел. По мелочи: тупил сайтмап, большие картинки, пару длинных запросов, кое-что поправить в роботс. Но сохранялась дикая интрига: трафика нет. А нагрузка есть. Лезем в логи и видим, вагон и маленькую тележку запросов на /admin. Становиться теплее. Смотрим в AWSTAT статистику посещений и…. БИНГО.

country_shit

Это явный какой то мелкопаксотный ddos-брутфорс. Что это было и зачем — я так и не понял. Не то владельцы кому то насолили, не то попали в базу бот-нета, который крякает магазины, не то хостер всех таким образом заставляет пакеты подороже покупать. Все равно мы этого никогда не узнаем.

Пишем 5 строк кода, добавляем в index.php в самое начало и убиваем всю эту шокирующую Азию.

Закрываем админку в htaccess с доступом только для айпи владельцев.

И все… Враг повержен.

daybyday

 

Всего навсего немного включенных мозгов и немного многолетнего опыта в борьбе с инопланетными захватчиками и проект спасен, владельцы магазина спят спокойно.

Хуйнаныр(15)Очко(0)

php fpm + nginx vs apache + nginx

Сколько раз  я уже писал, что лучшее враг хорошего.
Есть у меня для вас вот такая картинка:

phpfpm

Слева — виртуалхост работает через nginx + php fpm, справа: nginx + apache.

35 миллисекунд разница. От 500 мс общей загрузки — это 7%.
А если у вас секунда ttfb — то это  3%, что будет в рамках статистическое погрешности.

Да — это стабильней. Да меньшее потребление памяти.
Но, в подавляющей массе серверов, которые я вижу, едва ли используется 10% процессорной мощности и 20% памяти.

За что бороться? За то что бы для любого редиректа звать волосатого админа?

Я понимаю, где можно повоевать. Бывают ситуации, когда время отклика 200 мс, и 35 мс — это уже не 5% а 17,5 — и это существенно.

Но в массе, даже не пытайтесь. Это экономия на спичках.

И еще вы спросите — почему 500 мс, почему не очень быстро?
— Да потому что проект в работе и все тюнячки еще ему не прикрутили.
А еще там php 5.3 + xCache, гавносервер от ukraine.com.ua на железе, подобранном на европейской свалке, древняя убунта и ноль желания обновлять серверное окружение.

 

Хуйнаныр(5)Очко(0)

Размышления о человеческой жадности и глупости

densy

Как известно — деньги не пахнут. Но не для всех.

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

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

И вот казалось бы… Компенсации за ворованный код составляют очень внушительные суммы. Репутация несколько раз висела на волоске. Все они друг про друга все знают. Но их ничего не останавливает.

По большому счету мне глубого фиолетового на всех этих «талантливых вьюношей», которые любым моральным принципам вопреки, пытаются себе заработать на средство от постпубертатных прыщей.

Меня в целом волнуют другие вещи. А именно:

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

2 — Общее негативное впечатление, которое создается у людей про Opencart после использования такого род гавноподелок.

И да… пальцем я ни на кого показывать не буду. Я думаю все итак все поймут.

Частично, я наверное знаю ответ на первую ситуацию. Как я вижу себе это все. Есть некий мальчик Иннокентий из  Усть-Пиздюйска. Прыщавый, толстый, закомплексованный, бедный. От безысходности попал он на форум и начал бегать  в лички предлагать свои услуги за пять копеек всем в личку. Потом, сделал пару кривых, ели работающих дополнений. Потом поймал жирного заказчика, долго и нудно корпел над проектом, получил кем-то нарисованный макет в PSD, отверстал его. Ели ели сдал работу, и решил. А почему бы не продать эту срань как шаблон. Собрал, вывалил в продажу. И бля не покупают. Потому что, таких же шаблонов уже 10 штук. Написал Акция, поднял цену в три раза и поделил на три. Ок. начали покупать. Но у конкурентов покупают лучше. И что они делают. Берут разбирают какой-нибудь буржуйский шаблон с темфореста, воруют в наглую код, фаршируют и делают 1000 в одном.

tetris

 

Помните… Вот у них в детстве вместо нормальных компьютеров. Был только такой тетрис. И по другому они не умеют. Но.. за этот тетрис они хотят 2-3-4000 рублей.
Все смотрят на Journal и оправдываются — вот у них же десятки тысяч продаж. При всей моей нелюбви к Journal. Он сделан круто. Там есть четкий баланс между изменениями исходного кода Opencart и собственными свистелками. Все внедрения сделаны максимально аккуратно. Их много. Совместимость так или иначе падает. Но они не критичны.

А что же делают наши герои. Да им плевать на всех. Конфликт с Simple — возьму раннюю версию simple, переименую классы, назову суперфастренастоформление. Конфликт с фильтром, украду раннюю версию фильтра у Ведьмы. Будет мойсупергавнофильтр.
Я уже молчу, про то что на десяток шаблонов у всех удар в удар стили меню, украденные с XDS, который в свою очередь украл их у ULMART.

Наверное внешне — это выглядит хорошо, пользователь получает сразу такую няшную хератень, которая полностью готова для старта. Бери и торгуй…..

Но сука.. они же тупые кожанные ублюдки. Они все делают в одиночку. У них нет команды тестировщиков. У них нет опытных оптимизаторов, дизайнеров, все эти недоконструкторы глючат. И демоны хуярят новые версии и апдейты каждый божий день. Приходит клиент купить готовое решение — а оно жидкое как понос. И вроде заплатил бабла. Но плати и плати кому-то за обновления. Мало того, зачастую обновления подразумевают практически полную пересборку магазина с нуля, а многие шаблоны настолько перекраивают стандартный набор кода движка, что задача по интеграции других дополнений, превращается в квест, который по времязатратам такой же, как написать тот же функционал с 0.

А еще вся эта гиперебала в большинстве случае страшно тупит. XDS — какой бы мудак он ни был, вовремя остановился на изменении базовой структуры шаблонов. И у него из всех улмартоподобных высеров, получился самый беспроблемный. Все остальное — это полная блядская дичь.

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

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

Хотите больше заработать. Пишите качественные дополнения и продавайте их отдельно. Модули блять — это модули. Они должны быть в разделе модули в админке. А  не где то на 32ой слева вверхку вложеной вкладке в настройках хуй пойми какого шаблона.

Реально как вы заебали, пиздить, писать дерьмовый код, запросы, которые на 1000 товаров выполняются по 30 секунд, делать дырявые формы, через которые фтп и база угоняются в два клика.

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

Завязывайте блять с этими бесконечными апдейтами. Не ебите вола — нанимайте тестеров. И делайте плановые релизы, а не затычки в каждый менстряк.

Завязывайте пиздить — все равно все вылезет.

Завязывайте лепить гавносамолеты. У вас не получается.

Переставайте быть чертями — делайте бизнес с человеческим лицом.

Из-за того что вы сегодня паритесь только о том, как бы побольше продать, чтобы вкуснее поржать. Завтра вам продавать будет некому, потому что люди уйдут из-за вас с платформы, потому что из-за вас блять Opencart становиться дерьмом.

И это не Opencart дерьмо. В данном случае Дерьмо — это вы! Потому что всеми этими вшивыми мелочными действиями, вы рубите сук на котором сидите.

 

Хуйнаныр(24)Очко(7)

Magic Filter подводим итоги

В продолжение поста про sphinx фильтр.

Итак. Простите за задержку. Цифры у нас вот такие:

timing

 

Я же говорил, многие про меня плохо думают ну какие 2 секунды, разводил бы я этот огород ради 2 секунд? Получились действительно нереальные цифры (НА ХОЛОДНУЮ. КЕШИ НЕ ИСПОЛЬЗУЮТСЯ ОТ СЛОВА СОВСЕМ). Данный показатель можно еще уменьшить, если поместить набор значений без выбранных параметров в кеш. При чем в кеш необходимо будет помещать только такие базовые наборы на каждую категорию — но про это позже.

А теперь давайте с результатами розыгрыша сборки.
Я собрал в кучу результаты комментаторов и вот что получилось:

res

Byba, Kabantejay и ВасяХуйкин оказались ближе всех, и им отваливается по лицензии сборки opencart.pro. Для получения — обращайтесь к нам на форум к Admin.

А теперь несколько слов про то как эта магия работает:

Все данные с атрибутами определенным хитрым образом преобразованы и загружены в индекс Sphinx. Вся выборка группировка значений происходит при помощи SphinxQl. В целом это почти mysql-запросы, но с некоторыми ограничениями, из-за которых я себе месяц ломал голову, покуривая мануал, в попытках их обойти — и таки получилось.

Часть данных в виде базовых справочников, определяющих типизацию наборов, забирается напрямую из Mysql, а потом под набор параметров из сфинкса выгребаются сгруппированные значения.

Значительного прироста скорости удалось добиться за счет, отказа от сортировки наборов на уровне хранилищ данных, вся сортировка ушла в php.

В силу ограничений на структуру запросов в индекс, для подсчета значений с выбранными параметрами, пришлось сформировать дополнительный хеш-индекс, благодаря которому, при выбранных параметрах, подсчет оставшихся значений набора осуществляется за 5-10-15 сотых секунды.

В теории, при помощи подобного механизма, можно реализовать достаточно быстрый фильтр  исключительно с использованием MySql, а с нововведениями в 5.7 — очень очень быстро. Но пока не доходят руки поэкспериментировать. Необходимо доработать существующий прототип до «коробочной версии».

Пока я не решил пойдет ли данная поделка в виде «коробки» с услугой установки. Либо же останется реализацией для «ближнего круга». Если Динокс и 19ый мне прогарантируют эксклюзив и соблюдение авторских прав на торговых площадках, пойдет в коробку, но шансов мало, так как мне очень не нравиться тенденция попустительства к ворам, которые слизывают удар в удар идею, переписывают название переменных и с пеной у рта кричат — это мы все сами. Пока такая практика будет присутствовать, подобные наработки будут реализовываться только в формате из рук в руки.

Также еще предстоит доделать интеграцию фильтра в производители, акции и поиск. Сделать ему какую-то внятную админку и дописать логику для обработки опций и производителей. Создать набор статичных параметров  с ценами в виде дискретных наборов с шагом от .. до. Опционально ползунок цен.

Скорее всего будет коробка, которая будет работать сугубо на mysql. Она будет быстрая — но таких показателей как я привел выше, достичь не удастся и рядом. Но на 5-10к товаров в категории будет самолет даже на слабых серверах. Ну и до Нового Года вестей по этой теме больше не будет,- уйду  в запил. Есть еще вариант договориться с маэстро SOOR, забрать у него весь негрокод, и просто подменить структуру источника данных. Но, я даже не пытался с ним этот вопрос обсуждать, так как к его фильтру у меня очень много вопросов.

upd. Поддержку MegaFitler сделать не удастся, так как он наглухо кодированный. И если базовые данные ему скормить — не проблема, то вот с логикой выборки-подсчета будут проблемы.

 

 

 

Хуйнаныр(15)Очко(0)

Миграция блога на AdminVps

Если вы заметили, то последнее время бложик крепко вываливался в 503 ошибку.
Он у меня висел в помойке на очень жовтоблакытном хостинге, там у меня древнейший шаред-аккаунт за 30 долларов в год, на котором у меня живут всякие непришейкобылехвост проекты.
То ли это проделки гомосексуалистов-хейтеров, то ли магнитные бури, то ли парни на ukraine.com.ua в край зажрались, но что-то явно было не так.
При чем тут по принципу сапожник без сапог. И серверов, куда можно съехать как грязи, и делать это не долго, но лень матушка — она такая. Вобщем терпел я до последнего, пока не нарисовалась вот такая вот картинка:

time

Что это такое? Откуда? Кто виноват — у меня не было ни времени ни желания разбираться. Собрался я с мыслями — и переехал на AdminVps. Тут у нас такая картинка:

time2

Да да. Я в курсе что что-то жрет память, я даже в курсе что. Руки не доходят пофиксить.

Но у нас теперь https + http2 и 503 как в страшном сне.

И еще. Я не делал плавного переноса на https, ничего не редактировал в вебмастерах. Я просто тупо сделал редирект  и все. Так как в блоге основная аудитория — это постоянные читатели, париться мне за какой то поисковый трафик не с руки. Ну и интересно же сделать эксперимент просядет или не просядет. Есть у меня большое подозрение, что яша и гоша пофиксили алгоритмы миграции и при такой «ударной» технике переноса нихрена не просаживается.

Чуть позже доложу о результатах.

Хуйнаныр(11)Очко(1)

Magic Filter: 100 000 товаров в категории, 400 000 значений атрибутов, взлетит на Opencart?

Mjolnir_-_the_Dark_World

Скоро Новый Год — время волшебства и у меня есть его немножко для вас.

Написал тут мне давний товарищ, так мол и так. Магазин разросся, товаров 100 тысяч в одной категории, фильтр тупит, сервер как у Пентагона не спасат — и правда не спасает. Я запускал у себя. Ни индексы, ни сервер, ни кеширование. Фильтр не спасает ничего. Так как 100к товаров 10 атрибутов и пару тысяч уникальных значений.

И все настолько плохо, что владельцы магазина собрались ехать на Битрикс (Хиросима привет, ты не один такой потерпевший). Я прекрасно понимаю, что даже не все программисты понимают, что на mysql в существующей структуре данных Opencart сделать быстрый фильтр, работающий быстро «на холодную» по такому набору данных практически нереально.

Читать далее

Хуйнаныр(12)Очко(2)

Быстрый магазин и общие настройки как сварить? (чеклист)

warim

Возьмем среднестатистический проект на 5-10к товаров, который вроде как-то работает, и может даже в котором «специалисты уже что-то делали», или сервер оптимизировали согласно рекомендации хостинга.
Я еще не видел магазина, в котором мне нечего было бы покрутить.
Всегда народ что-либо упускает.
Давайте разебермся по пунктам что вам надо крутить, чтобы не болела голова за потерянные заказы и уходы клиентов.
Зачастую ведь кажется что у вас все хорошо, но даже повышение конверсии на 5-10% за год превращается в приличные деньги, поэтому любой оптимайз — это чистая прибыль.

Магазин у нас состоит из трех основных собственных компонентов (сервер, база данных и php-скрипт) и сторонних сервисов (аналитика, онлайн-чаты, различные api перевозчиков, доноры данных и так далее…)

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

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

Давайте начнем с сервера и того, что можно с ним сделать:

1 — У нас есть наш айпи. Его нужно проверить по спам базам, настроить ему PTR и проверить доступность магазина из мира через host-tracker.

2 — Сразу настраиваем бекапы. Неважно какая у вас панель, операционная система — настраиваем бекапы и проверяем, как они работают. Люди деляться на три категории: тех, кто не делает бекапы никогда, тех, кто делает бекапы, и тех, кто проверяет поднимаются ли из этих бекапов данные.

3 — Настраиваем почту. Как это сделать  я уже не раз писал.

4 — Закрываем на хрен, все что можем закрыть порты ssh, убиваем ftp, убиваем phpmyadmin, отключаем лог ошибок php.

5 — Проверяем включен ли Opcache для PHP и если не включен — включаем.

6 — Версия PHP. Не гонитесь за седьмыми восьмыми айфонами. 5.6 — стабильная работает, в ней в коробоке есть opcache и по скорости для Opencart она не отличается от 7.x, но вы избегаете массы конфликтов.

7 — Ставим библиотеки для оптимизации картинок imagick, optipng, jpegoptim.

8 — Ставим memcache или redis.

9 — Включаем Nginx, настраиваем кеширование-сжатие статики, проверяем в гуглпейджспиде.

10 — Включаем http2, если у вас старый nginx, обновляем, проверяем наличие openssl 1.0.2 (из консоли nginx -V)  и проверяем работу http2 этим сервисом.

11 — Если совсем извратиться ставим Mariadb 10 (она поддерживает full-text индексы для inno-db таблиц, нужны для некоторых модулей поиска и для megafilter pro plus). И вносим в конфиг сервера mysql, минимальные тюнинг-правки (поддержку больших пакетов, увеличиваем размер буфферов для ключей  ну и по мелочи таймауты уменьшаем типа, чтобы вдруг чего база не ушла в глубокие думы). Очень полезная статья на хабре.

12 — Если совсем шибко хочется извратиться, вкручиваем php-fpm и вырубаем apache и оставляем связку nginx+php-fpm. Мероприятие само по себе без навыков стремное. Но если вы хотите быстрее быстрого и стабильно — не помешает. В итоге экономия на спичках в 50-60 миллисекунд на ответе сервера. Но кому то бывает надо. Вот тут, нормальный рабочий конфиг, правда ему там надо еще дописать www на без www и исключение дублирующихся слешей. И еще. Проверьте, чтобы виртуалхост работал через сокет а не чере tcp-порт. Через сокет получается быстрее.

13 — Смотрим  в логи ошибок вируталхоста, видим кучу ворнингов про upstream, которому маленький размер буфера. Идем в конфиг NGINX и добавляем ему размер буферов. Также не забываем про количество workerов, которые делаем равными количеству ядер.

14 — Ставим сфинкс. Сфинкс желательно ставить, не тот который  в ваших репах. А последний с официального сайта. Я на свой страх и риск в последнее время пользуюсь 2.3 Beta. Пока полет нормальный, но мне нужны кое-какие фичи именно из этого релиза.

15 — Если еще раз, ооооочень сильно хочется извратиться, подвешиваем сесии в memcache. Польза будет на большом трафике от 2-3к посетителей в день, и польза незначительная. фанаты рухайлоад ,могут почитать подробнее на рухайлоаде.

Теперь перейдем к базе.

1 — Индексы. В последнее время, все стали умные, начитались про индексы, а еще более умные наделалил недоделанных калек с бесплатных модулей, которые типа сейчас оптимизируют переоптимизируют все и вся. Должен вас расстроить — не соптимизируют. Есть несколько сложных запросов, которым крайне мало индекса на все id, а для их быстрой работы необходимы составные покрывающие индексы на десяток таблиц, о которых ни один модулепейсатель и оптимизатор даже не подозревает, и это только для голого движка. А там где дело касается фильтров, большого количества отзывов в модуле Маркимарка к примеру (он в курсе), и большого количества заказов, там могут быть любые сюрпризы и для оптимизации работы этих задач, необходим первичный мониторинг этих запросов — а потом эксперименты, эксперименты и еще раз эксперименты, как с индексами так и с самими запросами.
Вобщем индексы надо расставить, но расставить с умом, а не как тупая обезьяна с гранатой.

2 — Innodb. Недавно я столкнулся с магазином, в котором после переноса покрашились таблицы, и я очень долго восстанавливал его работоспособность. При использовании innodb, такого не происходит. Поэтому если вы параноик — стоит перебить все таблицы в этот тип. Но. Будет потеря производительности на 5-15%, именно в результатах запросов, и проблема с full-text индексами. Но она решается — я уже писал выше как. А чтобы не сильно тупило сделайте параметр innodb_flush_log_at_trx_commit = 1 что это и зачем — читайте в мануале. Так что для использовании innodb — есть только один аргумент — это сохранность данных. Тут — хозяин барин.

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

4 — По возможности проверьте весь хлам и удалите ненужные данные о товарах, атрибутах и всякую подобную лабудень. Часто бывает, когда у людей висит 2-3-4 набора таблиц в одной базе. Типа test new и так далее. Не стоит так делать. Проект в продакшне — это проект в продакшне в нем не должно быть ничего лишнего.

Теперь перейдем к скрипту магазина.

0 — проверяем права на папки. Были у меня пару раз истории, когда все тупило, ошибки выключены, магазин тупит, а просто надо было на папку кеша дать доступ.

1 — Даже если у вас нет медленных запросов, у вас может быть из общее количество в пару тысяч, и даже если каждый запрос выполняется 1 миллисекунду, то их обработка — это уже 2 секунды на выходе. Поэтому стараемся уменьшить общее количество запросов. Кешируем все что можно. Меню, модули категорий, модули хитов продаж и так далее. Первая задача оптимизации скриптов — это уменьшить общее количества запросов по максимум. Понятное дело что есть кодированные модули — но все куда дотянуться руки — кешируем, либо переписываем запросы.  Либо переписываем запросы и кешируем.

2 — Парсинг запускаем только по крону и только при помощи cli-php, никаких wget http://наш-магазин. Гоните таких писателей в шею. А еще желательно все кроны запускать ночью, если есть такая возможность.

3 — Все сторонние API, типа инстаграма — должны работать через AJAX, чтобы если инста лежит вместе с ним не лег у вас магазин, так как если вы из php стучитесь на сторонний ресурс и он лежит, то пхп ложиться вместе с ним.

4 — при желании забираем оптимизированные скрипты из гугл пейджспида, сливаем с CDN к себе локально шрифты, jqeury библиотеки, меняем все на .min, и все скрипты и стили, принудительно вписанные в  header.tpl объединяем в один файл (в два файла, один со скриптами, второй со стилями).

5 — Включаем кеши, там где можно включить, в модуле Марка. В мегафильтре, везде…

6 — Включаем поддержку Imagick и оптимизацию на лету картинок через jpegoptim и optipng. Как это сделать, я уже писал. Не забываем удалить кеш картинок и системный кеш, а потом их заново пересоздать, Xenus вам в помощь.

7 — Если хочется совсем быстро, подключаем redis или memcache, redis — предпочтительней, так как он без проблем работает с большими объемами данных и не сбрасывает их при перезагрузке, за счет использования дискового буфера.

8 — Если вы переезжали на https и использовали http-фикс, и уже переехали, желательно его выключить. Лишние str_replace  — это не хорошо.

9 — Фильтры все меняем на megaFilter  — он таки самый быстрый.

10 — Забываем про сео-фильтры, которые генерируют мусорные страницы без контента. По ним только боты шаряться и запредельно нагружают систему. В индекс такие страницы не смогут попасть, а тем более в топ выдачи. А вот санкции получить можно — как пить дать.

11 — Проверяем роботс и смотрим, чтобы у нас не было лишних открытых роутов. Идеальный роботс — это роботс в котором закрыты все get-параметры, через который роботы не смогут достучаться на любые сопли. Проверяем закрыт ли поиск, тэги, и комментарии. Я видел магазин в котором было 20 000 страниц исключенных яндексом — все это были комментарии. Поисковики очень не любят дурной контент.

12 — Проверяем доступность фидов  (сайтмап, yml) и по возможности используем только генерируемые по крону.

13 — Смотрим на размеры файлов кеша. Бывает модули генерят файлы по 20-30мб. Избавляемся от такого, так как парсинг туда-сюда.

14 — Ставим Сфинкс для поиска.

15 (отдельно по версии 1.5) Обновляем vqmod, хотя бы до версии 1.5  — дает +100-200 мс. Для магазинов на версии <1.5.6 обновляем класс работы с базой данных и драйверы mysql, mysqli, таки чуть быстрее и на 5.6 php не заведется без mysqli. Есть какая то мудацкая практика с драйвером mysqliz — но он тормознутый. Также в 1.5 — глобальная проблема с очисткой мусора в кеше. Он забивается и его надо чистить. Сделать это можно либо допиской garbage — коллектора в сам класс. Либо bash-скриптом по крону.

Наверное, я что-то упустил и местами не до конца раскрыл темы. Но вот такая вот «волшебная таблетка» выходит, которую надо съесть для качественной работы системы.  И просто «поставить модуль» отделаться не получается. Поэтому специалисты тут и так разберутся, а для неспециалистов теперь есть что предъявить оптимизаторам.

Хуйнаныр(29)Очко(0)

Дайджест

latest-news

1 — Наконец, мы сделали seo_pro для 3.0  с поддержкой мультиязычности. В течении ближайших дней на форумах будет анонс бета-релиза нормальной русскоязычной сборки.
Очень мне хотелось бы нафаршировать базовый сео-функционал ништяками. Но меня смущают два момента. Во первых, всякие обсосы типа Otvet чвякают полную пургу про костыли. Сам Ответ и ему подобные только хуй из жопы научился вынимать недавно, а гонору что пиздец. И вот что хорошее не сделай таким пидарам — все равно будут вонять как тухлое дерьмо.
Второй фактор — это то, что мы ушли на паузу и очень долго думали как сделать с минимальными потерями совместимости хорошую реализацию. В узком кругу, я поднимал вопрос не единожды. Ни одна падла, имеющая отношение к разработке сборки, даже не чихнула помочь (кроме Маркимарка) и то. Для него у меня есть небольшой квест, посмотрим как он справится. Инициатива должна быть наказуема — подробности позже.

2 — чем больше мне в руки попадает магазинов в оптимизацию, тем больше я понимаю, что у меня появилось много последователей. Там-сям я вижу отголоски моих наработок, почерпнутых из блога. Понятное дело, что объять необъятное — сложно, и всех нюансов специфики настройки быстрых магазинов, еще никто не освоил. По крайней мере, я не видел магазин, к которому бы  я не мог доебаться. Но. Как-то меня жаба гложет. И есть у меня идея монетизировать особо полезняковый контент. Вот думаю я сделать раздел со статьями с платной подпиской. Левую пургу  я и дальше буду гнать как и гнал. А вот полезняк всякий, хочется продать за копеечку. Что скажете — я жадный гандон? Или может стоит мне отсыпать немного деньжат за труды? И сколько может стоить годовой абонемент на доступ в платный раздел по вашему?

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

4. Смотрю я на происходящее у Динокса на форуме, и у меня душа радуется. Не мне судить, как так получилось, но очень надеюсь, что и моя заслуга в этом есть. Но таки получилось в коммьюнити порядок. Все кто пиздили модули — получили по заслугам. Демоны с тупыми злобными постами типа pasha и компания, завалалили хавала и сидят тихо, занимаются делом. Чукча и его гав-гав-гав-свита  умерили свой никчемный лай. И произошло чудо блять. Куча народа задает внятные простые вопросы про магазины. Нет ебучих медведевых, которые в каждой коммерческой теме срали про Magento. Не слышно дебила-паши, который всех без разбора крыл нищебродами. Не видно даже обсосов софорпов-неохуео, которые дебильно спамили абсолютно весь коммерческий раздел. Нет хуй пойми каких людей в OcTeam, которые в собственных коммерческих интересах, или по пьяни банили конкурентов и неугодных. Уменьшилось количество возвратов (да здравствует нормальная политика покупок дополнений). Выплаты стали своевременны и все довольны. Форум стал похож на форум.

ВОТ ТАКИМ БЛЯТЬ И ДОЛЖНО БЫТЬ РУССКОЕ СООБЩЕСТВО Opencart.

Нормальным живым и позитивным.
Динокс — великий человек. Он смог! Учитесь у него манере ведения бизнеса.

 

UPD — и еще мне вот подумалось про Динокса. Если он когда нить будет нуждаться в деньгах — он может написать бестселлер по кризисному менеджемнту с названием «Как я чуть все не проебал и вовремя взял себя за жопу».  А еще — из него теперь получиться отличный мер Конотопа!

konotop

Хуйнаныр(16)Очко(0)

Нам пишут: РОЗЕТКА-ПИДАРАСЫ!

почти с самого начала существования этого сайта почитываю дерзкие статьи Yoda и мне нравится, насколько они соответствуют реальности.
захотелось поделиться тем смертельным говном, которое настигнет большинство интернет-продавцов в Украине самые ближайшие месяцы.

О себе: владелец небольшого интернет-магазина, в Киеве, игрушки, более 7 лет магазину, 30+ поставщиков.

Всё идет к тому, что если Вы не импортер — то Вы будете сосать лапу уже самое ближайшее время.

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

либо местные производители стали продавать сами через пром уа — практически по моим оптовым ценам.

мы потеряли лидерство уже в нескольких категориях — потому что на розетке товар продается почти по моей закупочной цене. Либо сетевые будинок играшок, Антошка — к выходным постоянно делают рассылки со скидками минус 20% и выше.

Еще случай — когда контора, называет себя оптовиком, при этом имеет 4 своих сайта — и через них сбрасывает свой товар со скромной наценкой и постоянными акциями — типа второй товар в чеке — минус 10% и тп.

Владелец одной из контор так и говорит — зачем мне другие продавцы — если розетка продает, как 70 моих клиентов. и пох, что там цена ниже рекомендованной, импортер всё равно в плюсе.

общее впечатление — что все бросились скидывать товар, а не продавать.

Поставщики стали отгружать товар каким-то мнимым продавцам на доску олкс, где отпускная цена торговцев из квартир не контролируется, потому что «я же не знаю, кто это». а проверять никто не собирается — «мне же всё равно продажи нужны»

У меня было несколько случаев — когда товары бренда LEGO — возвращали, чтобы купить их на розетке по моей закупочной цене, и еще и с посланием — что вы нас обманываете. По итогу, из Лего мы банально вышли.

Всяческие разбирательства с импортерами с предоставлением скринов с розетки о низкой цене не помогают — они пожимают плечами — «там акция» (которая уже длится 4 месяца?).

Или же цена после разбирательств исправляется — но после 19-00 и на выходных — Розетка кладет ее в пол.

Розетка на данный момент собирает 50% коммерческого трафика в Украине. и дальше будет больше.
начинает забивать сео-выдачу своими страницами — и всё чаще — когда на одной странице — несколько ссылок на этот магазин.

Розетка на данный момент запускает свой грузовой роботизированный терминал под Броварами и тогда начнется жесть — доставка день в день по Киеву.
В миллионниках же — розетка кооперируется с новой почтой, что на ее терминалах будут склады розетки — для доставки день в день в крупных городах.

У меня нет задачи сказать — что вот, розетка козлы и капиталисты, давайте устроим голодовку против них.

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

Такой же тренд и в США — 75% памперсов, 90% батареек и тд — продается через амазон, в структурах которого уже работает 550 тыс человек. Но там, хотя бы богатая страна, где разница в 5-20 долларов на чеке не отпугивает от покупки, а у нас покупатель часто может изменять решение из-за разницы в 50 грн.

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

Хуйнаныр(26)Очко(1)

The Fast and the Furious (1)

Кароч, пришел к нам человек: «мол так и так почта ебется на магазине, в Яндекс ходит через раз».
Ну настроили почту первый раз через smtp яндекса, как-то она вяло через раз пошла.
Саппорт АдминВпс мычит, саппорт Яши мычит. Все мычат. Че делать?

Настроили ее через сервант. И все стало Ок.

mail-tester-sir

Было у меня немного свободного времени и решил я посмотреть на магазин.

Имеем:
ocstore 2.1 + july шаблон + turbo + php 5.6 + тухлый одноядерный сервант на AdminVps, минимальное количество товаров и время загрузки порядка 400-500мc на холодную. Как по мне — это в рамках, но владелец магазина — задрот, и хочет быстрее быстрого.

Ставим nginx+php-fpm c тем же 5.6, оптимизируем базу, делаем magick cache Катиному шаблону, ставим Redis, включаем OpCache.

И получаем 127 мс «на холодную» без глобального кеша Турбо:

sir_dom_cool

и 36 мс

sir_dom_turbo

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

Ну еще мы сделали нормальную обработку редиректов, убрали повторяющиеся слеши и еще много вкусного по конфигу nginx.

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

Так что, пока, 89 попугаев  Page Speed и 40-100мс TTFB — наше все.

sir-dom-page-speed

 

А теперь загадка.
Что можно сделать еще с этим магазином?

redis_image_cache, redis_session, php7, http2.

Хуйнаныр(10)Очко(0)

redis vs memcache в Opencart

redis

Меня часто торпедируют вопросами типа: » а если я установлю Memcache», мой магазин станет быстрее. И я всегда говорю нет.
Так как в 99% случаев у вопрошающих микромагазин, который хостится на ukraine.com.ua. А они еще те упыри и решили всем продать услугу memcache, которая типа может быть использована.

Так вот на микромагазине от мемкеша толку — нету!!!! НЕТУ!!!
И быть не может.

Чтобы вам было понятно, что это такое и зачем он используется. Что мемекеш, что файловая система, что редис — это хранилища данных по принципу (ключ)->значение.

В файловой системе ключ — это название файла — значение — это его содержимое. То же самое и в мемкеше и в редиске, просто название файла заменяется какой нить аброказяброй, которая зачастую является проивзодной функции MD5 с аргументами в виде описания признаков входящих данных, которые мы пытаемся сохранить.
Т.е. чтобы было понятно домохозяйке, кеши, которые сыпятся в подобные хранилища — это какие-то очень часто используемые данные. Если приводить простой пример таблица умножения у нас в голове — это такой же кеш. Это какие то данные, которые мы запомнили и они всегда у нас в быстром доступе. И чтобы узнать сколько будет 2+2 нам не надо долго думать, мы всегда знаем что это 4.

Вот так же и в опенкарте, вместо того чтобы искать стопицот раз в таблице с урлами значения ЧПУ, есть готовый файл уже со всем набором алиасов, и нам достаточно загрузить его в в виде массива в php, и дергать эти данные из очень быстрого внутреннего набора, а не обращаться в базу.

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

Однако. Эта технология имеет право на жизнь в ситуациях, когда кроме скорости доступа, у нас еще есть такие факторы, как время передачи данных (у нас ведь могут быть большие данные в кеше 10-20-30 мегабайт), а также количество этих наборов данных. Если у нас их больше нескольких тысяч, то доступ в памяти к такому количеству данных, в десятки раз быстрее чем в файлах.

И вот бывают магазины, у которых файл кеша с сеоурлами, весит к примеру 25+ мегабайт, или магазины с модулями, в которых какой-нибудь тупой ебливый пидар закешировал все атомарные наборы данных и запиздячил овердохуя коротких данных в кеш. И там же может быть фильтр от Soor, который своих кешей еще наработал мегабайт 60. И при каждой загрузке нам эти данные надо дернуть с диска и преобразовать из файла в php-объект. В рамках загрузки одной страницы — это много долго, и ресурсоемко. Поэтому тут нам на помощь и приходят быстрые хранилища.

У всех на слуху Memcache. Но он морально устарел — это раз. Два — при установке «из коробки» он требует недюжего конфигурирования чтобы и дыры закрыть и заставить его работать с большими данными. Но у нас есть отличная альтернатива, которая лишена этих болезней — это Redis. Мало того что у него нет проблем с размером данных, так он быстрее и обладает кучей ништяков.

Вот вы ща спросите. Ой. а у нас же у всех 2.x, а Redis поддержка только в 3.x.
На что я вам скажу, что пока вы не прочитали эти строки вы даже не знали что Даниэль сделал поддержку редиске в третьей ветке, это раз, а два. Те кто будут пытаться применять на практике мою наводку, я думаю без труда скопируют драйвер из 3.x и пихнут нужную дописку в конфиг.

За сим откланиваюсь и напоминаю, что SOFORP — жирный пидар!

Хуйнаныр(13)Очко(1)

Как идинахуй продлевает жизнь?

med_1446257083_image

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

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

В двух словах. Все время у людей для меня делиться на два промежутка — работать и жить.
Чем старше ты становишься, тем дороже становиться время жить.
У меня нет ни малейшего желания вписываться в «потенциальные бабловые проекты», играть на длинные дистанции и развивать кому то бизнес за процент.
Поэтому время которое ты тратишь на переговоры пусть с заказчиком но потенциальным, я пытаюсь всегда сводить к минимуму.
Мало того, по  первым двум строкам запроса на какую то задачу я уже сразу вижу человек мозгоеб или адекват.
К примеру — если вам пишут доброго времени суток, потом 100500 тысяч слов с подробным разъяснением восторженно-припезденными фразами какого то тз, а потом приписка ваще я не программист. А потом еще подпись типа. Иванов Подсос Иванович, главный на подсосе в гипесуперкопрокорпорации «вялая тень столетнего хуя», меня сразу начинает тошнить.

Хуй пойми. Вот к примеру, один мой друг, уже давно не фрилансер с фл.ру Не СОФОРПЫ, мечущиеся в каждую залупу «НАМ НЕЧЕГО ЕСТЬ, ДАВАЙТЕ МЫ СДЕЛАЕМ, НАМ ОЧЕНЬ НУЖНЫ ВАШИ ДЕНЬГИ, А ТО МЫ С ГОЛОДУ ПОДОХНЕМ».
Он забыл когда были времена, чтобы у него очередь на работы не стояла на два-три месяца перед.Он забыл когда ему последний раз говорили «а можно подешевле».
Вобщем определенным образом он достиг дзена и работает не тогда когда нужны деньги, а тогда когда есть настроение и хорошие заказчики.

И вот пишут моему другу какие-то клиенты с запросами о работах на одном форуме в личку, потом на другом. И такая вялая ебала. Да ебать у нас тут вот так.. А нам надо сделать вот так. Да еще и по тимьюверу. Ну и чуть ли не вчера. В запросе не хватает разве что текста «да мы тебя закопаем щас». Мой товарищ внятно описывает условия сотрудничества с ремаркой или так как я говорю и как надо, или никак, простите, извините. Дальше начинается ебала. Как нас великих богатых заказчиков так бортуют. Вы че.. У нас же тут ваще единственные в мире три копейки и за них ты ща ваще должен нагнуться отжаться чувак.
И начинается. Да вы что. Да нам надо вот именно так, да с нами все так работают. Да у нас тут, то это, пятое…

Мой товарищ опять пишет. Господа.. Ну вот хотите не хотите, все описано в первом сообщение, и или работаем или не заебуйте.

Эти не унимаются — мол хуй, ты че.. Ты нас ща тут разводишь, да мы сами с усами ваще грамотные. Что ты понимаешь.

Третье сообщение — товарищи.. Яс вами не работаю дальше в принципе, просто потому что не работаю.
И опять возня…

Вобщем раза с пятого дошло. Но суть в чем..

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

А тут какие-то копропротивные изверги с секретной базой противолодочных катеров отняли 10-15 минут жизни моего товарища.

Суть собсна в чем. Поменьше вам упырских заказчиков. И если вам пишут «доброго времени суток», сразу заканчивайте диалог.
Ну и да пребудет с вами хуйнаныр.

И маленкий анонс. В связи с тем, что теперь вора нельзя назвать на публике вором. Для воров и аферистов настали хуйовые времена. Ну вы вобщем поняли, голубцы мои… Так что в бложике будет дохуя интересного.

Хуйнаныр(24)Очко(0)

И на хуй сесть и рыбку съесть — РЫЛИ ?

a chto

Нихрена не рыли!

Весной я отошел от своих правил. Я сделал магазин с 0… Я очень давно не делаю магазины с 0 — это дикий гемор. Меня бесят тупые утки, которые по каждой комариной залупе звонят в три часа ночи с тупыми вопросами, как добавить атрибут, почему у меня кривая ссылки, или не появился SSL замочек в браузере. Реально, друзья мои, я могу много такого крутого, что вам и не снилось, и я считаю что я лучше буду работать себе в небольшой минус, но в кайф. Поэтому мне в тыщу раз интересней скрестить мегафильтр про и свинкс, чем обучать неграмотных неоинтернетторговцев грамоте.
Но тут нашла коса на камень и мой старый друх меня приболтал запиздячить задорого ему магазин.
Я не сделал ничего военного.  Я просто вкрутил сборку opencart.pro, поставил шаблон, simple и все….
Ну не все. Еще неделю я проваландался в офисе с его тупыми сотрудниками, которые конспектировали правила наполнения-заполнения товаров-категорий.

Реально, в силу того что мой товарищ ранее сталкивался с интернет-продвижением, настроить рекламку ему не составило труда. И О ЧУДО. Мой очень нескромный гонорар он отбил за неделю и остался очень доволен, и сейчас у него проблема где взять 5 новых  сотрудников на производство и в офис к существующим 10. Да так бывает. Взлетело. Я сам не верил. Но взлетело как по нотам, по моим рекомендациям. На хуй сео! На хуй дизайн! Ебашь тексты, хуяр адвордс. Сделай внятные описания и у тебя повалит трафло. За 4 месяца без единой купленной ссылки и иной другой сеодрочобы, кроме нормального контента, магаз влетел в ТОП 10 укр гугла.

И тут мне попадается другой клаент, который всадил в свой магаз пол-однушки  в пределах садового кольца, но правда тоже взлетел, и там у него проблемы были с откликом магазина и стабильностью на 1200 посетителей в день. Мы все решили и у нас состоялся вот такой вот диалог:

[01.09.2017 10:02:28] Yoda: но реально
[01.09.2017 10:02:31] Yoda: вот за год
[01.09.2017 10:02:34] Yoda: через нас прошло
[01.09.2017 10:02:38] Yoda: 150+ магазинов
[01.09.2017 10:02:41] Yoda: у всех проблемы
[01.09.2017 10:02:43] Yoda: с тормозами
[01.09.2017 10:02:45] Yoda: но при этом
[01.09.2017 10:02:48] Yoda: одинаковых нету
[01.09.2017 10:02:53] Yoda: общий анамнез он
[01.09.2017 10:02:56] Yoda: то общий
[01.09.2017 10:03:02] Yoda: но везде какие то катяхи от «супергавноразаботчиков»
[01.09.2017 10:09:28] Молодой Падаван: Ну конечно, опенкарт это ж конструктор
[01.09.2017 10:09:49] Молодой Падаван: Из коробки идёт недомагазин
[01.09.2017 10:10:16] Молодой Падаван: Поэтому приходится допиливать допиливать допиливать
[01.09.2017 10:10:56] Молодой Падаван: И лезут всякие подельщики
[01.09.2017 10:11:20] Молодой Падаван: Ведь НИКТО не предлагает комплексное решение
[01.09.2017 10:12:09] Молодой Падаван: Магазин со всеми нужными модулями с вариантами шаблонов с настройкой под ключ и сопровождением
[01.09.2017 10:12:45] Yoda: да не в этом дело
[01.09.2017 10:12:46] Yoda: есть
[01.09.2017 10:12:49] Yoda: стадо дебилов
[01.09.2017 10:12:52] Yoda: которое исполняет такое
[01.09.2017 10:12:55] Yoda: что на голову не натянешь
[01.09.2017 10:14:04] Молодой Падаван: а стадо почему существует?
[01.09.2017 10:14:17] Yoda: потому что люди бедные
[01.09.2017 10:14:22] Yoda: и ищут дешевле
[01.09.2017 10:14:27] Yoda: дебильная совковая привычка экономить и ездить на жигулях
[01.09.2017 10:14:29] Молодой Падаван: Потому что нет решения адекватного по деньгам
[01.09.2017 10:14:33] Yoda: на здоровье
[01.09.2017 10:14:34] Yoda: на
[01.09.2017 10:14:39] Yoda: качестве обслуживания авто
[01.09.2017 10:14:44] Yoda: потому лупяться в столбы
[01.09.2017 10:14:48] Yoda: и умирают от туберкулеза
[01.09.2017 10:15:14] Молодой Падаван: У нас как…или охуенно но пиздец дорого или гавно но зато дешево
[01.09.2017 10:15:40] Yoda: да хрен там
[01.09.2017 10:15:41] Молодой Падаван: То что оно говно выясняется в процессе..когда деньги уже отданы
[01.09.2017 10:15:42] Yoda: вот логика простая
[01.09.2017 10:15:48] Yoda: народ открывает магазин
[01.09.2017 10:15:49] Yoda: хочет получить
[01.09.2017 10:15:52] Yoda: 500 долларов в месяц
[01.09.2017 10:15:56] Yoda: хотя бы
[01.09.2017 10:16:01] Yoda: ну в среднем все дрочат
[01.09.2017 10:16:03] Yoda: на цифру
[01.09.2017 10:16:06] Yoda: ща я заработаю косарт
[01.09.2017 10:16:08] Yoda: косарь
[01.09.2017 10:16:17] Yoda: да чтобы в обычной палатке с шаурмой косарь заработать
[01.09.2017 10:16:18] Yoda: надо вложить
[01.09.2017 10:16:25] Yoda: тыщ 300 рублей минимум
[01.09.2017 10:16:34] Yoda: и то не факт что заработаешь
[01.09.2017 10:16:42] Yoda: а тут лезут в тему в которой не понимают и з атри копейки
[01.09.2017 10:16:48] Yoda: ну так же не бывает
[01.09.2017 10:17:05] Молодой Падаван: Не бывает
[01.09.2017 10:17:17] Молодой Падаван: Но соблазн-то присутствует
[01.09.2017 10:17:26] Молодой Падаван: :D

 

Вот кароче я нахрен не согласен!

Допиливать надо — потом. Сначала сделали любое гавно. Запустили, купили контекст и торгуйте! Если вы не наживете на контекстном трафике, на Seo-продвижение у вас не хватит ни бабла ни мозгов!

И в целом Opencart — не конструктор уже давно, а очень мощный инструмент для мультиканальных продаж, который не то что не уступает Enterprise-аналогам, но и в каких то местах даже превосходит.

Так что будьте на нашей волне, зарабатывайте бабки, насладжайтесь жизнью!

Хуйнаныр(22)Очко(0)