Pull to refresh
54
371

Пишу обзоры на библиотеки и инструменты

Send message

Спасибо за замечание! Вы правы, слэши потерялись в примере. Сейчас исправлю.

Спасибо за комментарий! Вы правы, SIMILAR TO — тоже регулярка. Добавлю про него в статью к вечеру. Спасибо, что подсказали!

Для небольших моделей подойдет обычный ноутбук i5, 8ГБ ОЗУ. Для больших данных — лучше использовать GPU.

Модели строят прогнозы на основе исторических данных. Паттерны теханализа можно заложить через features

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

В Медине я стоял на одной из узких улочек. Все вокруг носились, как будто завтра апокалипсис. Проходя мимо лавок, я заметил странную вывеску. На арабском всё было понятно — набор красивых завитушек, а вот на английском... «Toilet for tea only». Я завис. Ну типа, что? Я, конечно, читал про некоторые культурные различия, но не настолько же. Я спросил местного паренька: «Is this really only for tea?» Он посмотрел на меня, как на идиота, и пошёл дальше. Такие штуки там встречались на каждом углу, и лучше не ломать голову над их смыслом — просто улыбаться и двигаться дальше.

Я продолжал идти и вдруг увидел кота. Но не просто кота — настоящего марокканского котяру, жирного, ленивого и абсолютно не взволнованного всей этой суетой вокруг. У него на морде прям было написано, что ему безразлична вся суета. Я подумал, что сфоткаю его, но он как будто чувствовал — сразу убежал. Ладно, котик котиком, а у меня впереди ещё был целый рынок.

Я шёл по рынку, как вдруг услышал топот, обернулся — а там осёл. Он шагал неспешно, словно весь этот мир создан только для него. На спине у него были мешки с какими-то специями или прочей экзотикой, которую я не мог узнать даже по запаху. Вокруг люди суетились, кто-то кричал, кто-то пытался его обогнуть, а ему было плевать на всё, как и котику. Он остановился на миг, как будто думал: «Может, мне немного постоять и понаблюдать за этими странными людьми?» Но нет, он двинулся дальше, с той же невозмутимостью. В этот момент мне захотелось быть таким же спокойным, как этот осёл — идти вперёд, не замечая чужой спешки и беспокойства.

Вернемся к языку. Я понял, что в Медине нужно выучить как минимум десять способов сказать «нет» — иначе тебя просто завалят предложениями купить что угодно, от ковров до настоящих «волшебных» ламп. Я не пытался их понять — их логика была словно из другого мира. Я говорил «нет», и они отвечали предложением, будто я только что сказал «да». А потом ещё и спрашивали: «Ну, как, нравится?» И я уже сам начинал сомневаться, что, может, действительно мне нужен этот кувшин, который они называли «секретом Востока». Я улыбался, кивал и шёл дальше.

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

#хабралето

Скрытый текст

Наверное, интересно отвечать в комментариях ответами chatgpt? :)

Добрый день! Небольшая опечатка. Исправили
.

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

напоминает структуру ACL, но с более конкретной ориентацией на объектно-ориентированные модели и возможно с большей гибкостью в определении типов доступа

также возможно подойдет Row-Level Security

конкретно в aiogram это нереализовано, но можно это реализовать с помощью Docker Compose

об этом и других способах писал здесь https://habr.com/ru/companies/otus/articles/760890/

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: my-envoy-filter
spec:
  workloadSelector:
    labels:
      app: your-app-label
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_OUTBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.http_connection_manager"
              subFilter:
                name: "envoy.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: my-filter
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
            inlineCode: |
              function envoy_on_response(response_handle)
                local body = response_handle:body()
                body:setBytes(0, "Modified response body")
              end

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

istioctl manifest apply --set values.telemetry.enabled=true

Далее создаем конф. маршрута для бэкенда,нужно настроить маршруты Istio, чтобы передавать заголовки traceparent и tracestate. для этого вы можете использовать манифест VirtualService:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: my-backend
spec:
  hosts:
  - my-backend-service
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: my-backend-service
        headers:
          request:
            set:
              traceparent: request.headers["traceparent"]
              tracestate: request.headers["tracestate"]

далее

istioctl manifest apply

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

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

Information

Rating
2-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Specialist
Middle
From 1 ₽
SQL
Python
Database
English
PostgreSQL
Git