Там особых проблем не вижу. Уносите файлы webp из проекта на другой рут, эти файлы не попадают в бекап. При первом обращении скриптом создаете из оригинала и пишете в рут для вебп. Второе обращение - статичный файл.
server_name ~^(.*?)\.?(?<d_name>[^\.]+)\.lcl$; set $sub_name $1; root /var/www/$d_name/public; .... location @nowebp { include uwsgi_params; uwsgi_pass unix:///run/uwsgi/semantic.sock; } location ~\/(.*)\.webp$ { root /var/www/webp; try_files $uri @nowebp; }
В вышеприведенном питон обработает. У меня Фласк предсказуемо сказал Not Found для этого роута. Но никто не мешает строк несколько дописать и что то сделать, сказав в результате другое и любой контент/контент-тайп отгрузить. А чтобы переконвертить в вебп не так то много строк надо (подставить вместо пхп, то что удобнее).
Потенциальные риски: атака, когда кто то 100500 рандомных вебп попросит. Но, тут тоже варианты есть, их надо предусмотреть.
danforth, это же реализовано?
Я принимал решение по вебп так:
- штук, точно не помню, но 3-значное картинок из загрузок, сгруженного с телефона сжал в одну папку, конвертировал в вебп в другую. Сравнил размеры. Вебп победил. Но, не очень то и существенно.
- попытался открыть (на центосе сижу) , хрен ни один из вьюверов поставленных не справился. Гимп? И тот не але.
Посчитал, что пока рано. Но, это было давно. Может сейчас по другому 🍿
Для сравнения в зипе webp и сжатый пнг. Принципиальной разницы в размере не видно. В качестве вроде тоже не особо.
~ $ pngquant --strip --nofs --quality=55-85 --ext .min.png --force 256 image.png.2 ~ $ ls -l | grep ".png.2" -rw-rw-r-- 1 webmaster webmaster 178695 фев 26 13:38 image.png.2 -rw-rw-r-- 1 webmaster webmaster 43710 фев 26 17:34 image.png.2.min.png
В плане расширения, не пойму смысл спора. Я так понимаю, такой метод (расширение .пнг, а миме-тип/контент файла в зависимости от акцепт) был выбран только для демонстрации. В реальной жизни будет тегом picture/srcset. А там расширения будут соответствовать типу файла.
--------
Справедливости ради не 30 раз 🍿
Там в зависимости от акцепт видимо, если будет примерно так
Accept: image/webp,image/apng,image/*,*/*;q=0.8
то отдается файл вебп, иначе пнг. Судя по таймингам, ТТФБ более 100мс...
Так то я пошутил:D
А логика треда и вела к этому. ТС, задал вопрос. Может он как раз и есть кто то из
[['100500', 'бизнес'], ['бизнес', 'аналитик'], ['аналитик', 'солюшен'], ['солюшен', 'архитектор']]
ТС вроде не спросил, какая дистанция от сео-функционала до продаж🍿
Напомню:
Никто не сказал, что кмс22 фуфло, кроме тайтлов и дескипшенов в едином шаблоне ничего не умеет, а чтобы на разные категории, разные шаблоны мета сделать нужно . А кмс222 это умеет и еще 304, грамотно, в зависимости от времени изменения компонент отдаст и все остальное на уровне.
Ну и остальные пункты ТЗ ТС.
----------------------------
балдею от python нормализация слов из строки и получение списка биграмм в 5 строках кода
В этом случае, таким вопросам
не место на этом форуме😂
Я? Вроде тут только спрашивал о статистике стоимости поддержки кмс/самопис на каком то сроке и некоторые соображение по эффективности кмс/самопис с уклоном в защиту 2-го. И не припомню чтобы что то про фронт, кроме того, это сейчас все умеют.
Ой ёй. Ну да, SQLite есть. База с 3 таблицами, в которых карта разделов, сквозняки типа кода метрики и статичные меню для вставки в шаблоны. Туда может писать только рут-админ, сами можете прикинуть насколько человеку под силу заблокировать базу. Давным давно (Вал журнала еще не было в той версии), что то скриптом писал, я часто скулайт пользую для всяких экспериментов. Так вот он намертво блокировал, примерно на 6000 тысяче последовательных записей, которые несколько в секунду. Сейчас (wal журнал), эта цифра наверное больше, но все равно скулайт только там где запись в ручном режиме и единственным пользователем сайта.
Я эта.. Трассировку картинкой положил где
End mongoDb request Query zap Count items (limit:100) by filter: 88 Каждый из которых, после выборки товаров с меткой хит, примерно так: $ooo = Core::dbmo() -> resultCallback( function($doc, $filter=null){ ........ } ) -> find('zap', [ '$text'=>['$search'=>'фтор* перед* коленвал* сальник*'] ], [ 'limit'=>100, 'projection'=>[ 'score' => ['$meta' => 'textScore'], 'naimenovanie'=>1, 'price.cenazaedinicu'=>1, 'kartinka'=>1 ], 'sort' => [ 'score' => ['$meta' => 'textScore'] ] ] )->rows(); Результат выборки, привет симпл/морф серч на сайте без эластиков и т.д. Aisamiery:А тут про самописы загоняют, чего нет то. Все началось с того, что как вариант предложили хватает 3х файлов, потом все ушло в сфероконическую область melkozaur:Я так понимаю, 10 страниц снова спорят про движки, фреймворки и методы. Классика.
$ooo = Core::dbmo() -> resultCallback( function($doc, $filter=null){ ........ } ) -> find('zap', [ '$text'=>['$search'=>'фтор* перед* коленвал* сальник*'] ], [ 'limit'=>100, 'projection'=>[ 'score' => ['$meta' => 'textScore'], 'naimenovanie'=>1, 'price.cenazaedinicu'=>1, 'kartinka'=>1 ], 'sort' => [ 'score' => ['$meta' => 'textScore'] ] ] )->rows();
Это вообще 55 вопрос. Все умеют сделать фронт каким угодно. Вменяемые аргументы есть на многослов про?
(а это сильно помогает)
и далее по тексту.
и про
Далее не к вам.
Большинство перечисленного у danforth, поможет сильно
Но, там еще 100500, начиная с того что
while ($row = $res->fetchArray( SQLITE3_ASSOC )) { if(is_callable($this->selCallBack)){ call_user_func_array($this->selCallBack, [ &$this->res, $row ]);
--------------
Тест на беременность (кто то выше пошутил😂 )
5000 запросов, по возможности 100 за раз ( ab -n 5000 -c 100 )
Профайлер (без нагрузки)
40 категорий, 11620 товаров, доставлено 200 хитов (лимит200), 4 подборки выборок товаров
Поначалу так и было, что то типа prmid|itemid|catid|strval|numval, потом своя таблица на категорию (набор параметров, например для самосвала, автобуса и автомобиля с кму сильно разный, как по кол-ву, так и по типам). Ну а потом, монга, которая решила все проблемы со структурой данных.
Вы транслируете частное ("давно забили"), может быть и массовое по факту, на генеральную совокупность. В моем случае - любые мои косяки устраняются даже через годы. Пару раз за почти 20 лет было такое. Доработки, да бывают, в основном за те же символические деньги. Но, следует признать, нет конвейера и клиентов не так то много, и все сайты по детальному ТЗ сразу включающему все что нужно.
Вероятно, люди работающие примерно так же существуют.