Обновить
0

Пользователь

1
Подписчики
Отправить сообщение

Это гугл в ИИ-сводке выдаёт. С самого начала у меня и не было сомнения, что, GG - инициалы, GGML же, вроде и так ясно. А потом вот это GPT-Generated увидел, аж засмеялся: только что generated что ли?

Не все упомянутые вещи стоит называть "антипаттерн". К примеру, я использую два cte с доступом к одной таблице по разным условиям (используя разные индексы) и это делается само собой преднамеренно. У меня никогда не было даже мысли о том, что оптимизатор каким-то магическим образом поймёт, что можно было бы прочитать таблицу один раз. Ведь всегда следует ставить себя на место движка и спрашивать, а как бы ты сам делал, как бы догадался до этой оптимизации и как бы потом эти считанные данные "распределял" по разным ветвям запроса. Это чтобы не было магии. И сразу становится ясно, к примеру, почему limit блокирует инлайнинг (иногда тоже преднамеренно).

А вот совет следить за повторным использованием cte по мне так очень полезный. И не делать джоин там, где мы по сути суммируем в рамках одного разреза, потому что чаще всего вижу желание наджоинивать все подряд. Правда Postgres по неизвестным мне причинам очень любит все сортировать даже при большом work_mem, и вместо объединения бакетов от воркеров "как есть" он зачем-то чаще всего делает sort merge, но это уже другой разговор. По опыту Oracle, да и во многих MPP не постгресовых, сортировка после хэша отсутствует, пока явно не попросили.

Итого: всегда надо смотреть план и пытаться понимать, что конкретно и почему делает СУБД в том или ином случае (какой у неё есть контекст в данном шаге, чтобы делать что-то другое).

Для игр важнее всего сюжет и игровая механика

Последний пункт отлично иллюстрирует исходное замечание: в каком-нибудь double (в Oracle - binary_double, в pg - double precision) NaN - тоже "не число" с точки зрения математики, однако это не делает его равным или не равным NULL. В операторе сравнения тип обоих операндов определяется до выполнения самого сравнения (явно или неявным приведением), и в рамках этого типа значения NULL, 0, NaN являются просто разными как элементы множества значений типа.

При чем тут Kimi? Цена за MoE Qwen - 1000 рублей, на 3090 он запустится либо целиком, либо с частичной выгрузкой на ЦПУ в зависимости от контекста. Даже во втором случае это даст приемлемую скорость (меня очень даже устраивало), а ВК стоит 70-80к на вторичке.

Все зависит от задачи. Я для эксперимента, когда LLM стали выдавать хорошие результаты, решил взять 5060ti на 16 Гб. Для задач кодирования в итоге более-менее внятные результаты удалось получить только на MoE моделях с частичной выгрузкой на CPU, потому что контекст 100к+ - рядовой случай, а это около 5 Гб только под кэш. Таким образом все же пришёл к "стандартному" варианту с 3090

За два месяца можно на свой личный GPU накопить.

Тема маркетинга в статье как-то совсем не раскрыта. То, что ИИ придумал название где/бензин/радар кажется, вообще не заслуга ИИ, а как будто бы очевидное и достаточно простяцкое название, которое заодно создаёт ощущение наколеночности. В чем состоит участие ИИ в продвижении? В чем вообще суть этого продвижения, кроме сарафанного радио, чтобы его можно было назвать термином "маркетинговая кампания"? А есть ли примеры подобных сервисов, которые НЕ достигли успеха как раз потому что назывались иначе или были построены иначе? Сейчас выводы выглядят как "очереди и отсутствие топлива породили потребность в отслеживании ситуации", что понятно любому без каких-либо социологий.

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

А к вопросу о синтаксическом сахаре: да, есть изящный FILTER, но в том же Oracle или T-SQL давно существует не менее изящный PIVOT, где агрегатное выражение задается один раз, а "случаи" перечисляются через запятую. Но старый добрый CASE остаётся надёжным решением для любой СУБД.

Исходя из текста статьи (да и остальных разборов отечественного Spyware), можно сделать только один вывод: имея вагон вариантов организации изоляции и реальных песочниц, начиная от нативных неймспейсов, заканчивая предоставлением системных API с жёстко за данными полномочиями, система сама светит дырами направо и налево и отвечает на ненужные вопросы каким-то левым приложениям, которым никакие разрешения не выданы. Вопросы больше к ядру ОС, нежели к тому, что софт вовсю эксплоитит эти дыры.

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

Да, для реализации подобной инициативы непременно надо выбрать компанию, которая все сделает через одно место, чтобы работало чеез раз и с дырами, напихает туда рекламы и выдаст как "убийцу <подставить>"

Ещё Python удобен для того, чтобы навайбкодить себе MCP для решения локальной задачи, под которую нет инструмента, и руками докрутить, где необходимо. Можно, конечно, пойти в FizzBuzz Enterprise Edition на Go, но для быстрого решения Python весьма хорош.

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

Последние пару недель гоняю прикладные кодинговые задачи на ней из-под Roo Code (оркестратор, кодер, архитектор) с квантом ud_q4_k_xl, никаких зацикливаний не возникало. А у 3.5 при тех же квантах и параметрах запуска производительность ниже и контекст даёт меньше.

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

... и если гугл не скажет в один прекрасный момент, что вы - человек второго сорта, у вас осталось 2 дня, чтобы скопировать ваши коды, а потом мы их удалим. Лучше все же иметь как минимум два устройства со вторым фактором. 

После того, как мой коллега принёс из офиса Сбера (!) распечатку какой-то фигни на чужом расчёте по ипотеке, я перестал удивляться вообще. Правда, было лет 10 назвд. А с учётом того, сколько различных договоров с шарашкиными конторами приходится подписывать, сохранить свои ПДН в ограниченном доступе все сложнее и сложнее. Проще паспорт раз в 3 года менять.

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

В конце должен быть иной вывод: не надо пытаться заткнуть дырку в процессе тряпкой AI-кода, стоит задуматься о выстраивании процесса.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

BI-разработчик
Ведущий
SQL
Oracle
ETL
DWH
SAP BI