Задать вопрос
  • Можно ли закешировать результат загрузки gguf модели в Forge?

    @SWA512
    Gamedev
    Forge использует какие то конвертации весов во другой формат, для лучшей совместимости с разными LOR-а. Для квантованных моделей этот процесс еще дольше. Скажу больше, так же forge любит делать конвертации прямо перед просчетом, иногда по минуте на мощной машине (r7950/3090)
    Для прямой загрузки модели, без конвертации, лучше использовать ComfyUI/GGUF Loader ноду.
    Вот готовая схема для Comfy, распаковать, перетащить на канвас.
    Ответ написан
    Комментировать
  • Возможно ли сделать браузер как на старый сотовых телефонах на esp32?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Есть же Lynx - он на си, вполне возможно попробовать выпилить системные API и всё остальное отсутствующее в esp. Если написать свой простенький HTML парсер - то абсолютное большинство современных сайтов будут всё равно недоступны, т.к. сейчас куча всяких реактов, вью и прочих фреймворков с генерацией интерфейса на клиенте. Но в целом задаче вполне реализуемая, а кроме того на esp вполне можно запустить JS - так что реализация простенького браузера тоже вполне возможна. Полноценную же поддержку современных веб-технологий просто физически не вместить на esp - браузерные движки нынче очень тяжёлые. Так что в реальности остаётся либо превращать вашу esp в тонкого клиента с ренедрингом/парсингом на своём сервере либо взять что-то более производительное и поставить туда полноценный линукс.
    Ответ написан
    2 комментария
  • Планшет на Windows как второй экран к Linux?

    Fragster
    @Fragster
    помогло? отметь решением!
    вот это позволяет линуксу подключаться к устройствам с поддержкой miracast https://github.com/albfan/miraclecast

    далее разрешить использовать комп на виндовс как беспроводной дисплей: настройка - система - проецирование на этот компьютер

    наверное, сработает )

    устройства должны быть в одной локальной сети.
    Ответ написан
    Комментировать
  • Порекомендуйте плагин для интеграции ИИ в MSVC?

    TrueBers
    @TrueBers
    Гуглю за еду
    Вдруг завтра уже наступило, а я не заметил
    наступило уж хз когда. Просто есть 2 вида пользователей LLM'ок:
    Кто задаёт странный one-shot вопрос с неподходящим контекстом, а то и без него и пытается получить из него ответ. Туда-сюда копи-пастит, получает кучу галлюцинаций, кривого нерабочего кода, бомбит, что нейросети ваши только котиков рисовать и сидит злой, смотрит, как другие за день месячные задачи закрывают.

    А есть второй вид, который берёт нормальный инструмент (Cursor, Refact, Windsurf, RooCode, Cline), изучает его и пользуется. Да, надо потратить время на изучение! Изучить prompt engineering, обмазаться инструкциями к проекту, системными промптами, подкинуть документацию, context7, подключить MCP, RAG, разобраться, как пользоваться агентом, воткнуть кастомный режим типа memory bank, поставить улучшайзер промптов типа supercode.sh, мультиагента типа Roo Commander. И кодинг одной кнопкой левой пяткой станет реальностью.

    Но есть проблема. Всё это нужно изучать. LLM'ки развиваются такими темпами сейчас, что пока ты ищешь какой плагин поставить, выходят ещё несколько. Громадное количество времени нужно тратить на это всё. 1-2 часа в день приходится уделять, чтобы быть в курсе всех сумасшедших темпов развития и изменений.

    В идеале, чтобы ИИ понимал, что такое структура проекта
    Это не в идеале, это чуть ли не единственный рабочий вариант. LLM это языковая модель, token predictor. Она ничего больше не умеет, кроме как предсказывать следующий токен(букву, слово, строку, и т. п.). Без контекста проекта ему нечего предсказывать, грубо говоря. Это рулетка рандомная получится, если не давать ей контекст.

    Я знаю, что я слишком многого хочу
    То, что ты хочешь, LLMки уже умели года 3 назад. Главное написать правильный prompt.

    однозначно твоя задача красиво не решается, а еще она очень специфическая, онозначно нужно разрабатывать ИИ агентов под это дело
    уже давно всё разработано, надо просто изучить, как это работает. Ничего специфического в задаче нет. Люди успешно портируют LLMками софт с языков, которые никогда в публичном доступе не были и использовались для 1-2 проектов в дремучих 70-х годах, а вы говорите, что задача описать, как работает код на современном языке, специфическая? Более чем тривиальная.
    LLMки при грамотном использовании могут сейчас буквально всё, что можно придумать: пишут код, тесты, прогоняют эти тесты, смотрят на линтеры, исправляют ворнинги, отлаживают сами код, закрывают задачи на трекерах, делают запросы в базу, решают теоремы используя солверы и всякие Wolfram'ы, даже реверс-инженерят бинарники без исходников! Объяснить, как работает функция — это не запрос, это ничто.

    а потом ещё расписыет, что и зачем он сделал
    Для этого системные промпты придумали. Там можно попросить не расписывать, и он перестанет это делать. Можно попросить любой формат и стиль кода, комментов, архитектуры. Но надо же изучать, время тратить, да?

    Для чег ои хочу приемлемый плагин сразу поставиь, чтобы тратить время только на полезное
    Так не работает. Для крутого результата надо 8-10 инструментов поставить, изучить их, связать для работы вместе. Это тупо конструктор, один плагин не даст никакого результата.

    Постоянно — ассоциация с людьми, которые говорят, что ЛЛМки не работают:
    когда купил себе рабочую станцию под 10к баксов, а всё, что на ней делаешь, это почту проверяешь, погоду, рецепты ищешь, в одноклассниках сидишь. Написать в чат без контекста и ждать, что он ответит как нужно это из пушки по воробьям, а не нормальное использование громадных возможностей.
    Или другая аналогия: установил блокнот и пытаешься там код скомпилировать, автодополнение получить, тип переменной узнать. Так это же блокнот, он просто чтобы текст писать и читать, для остального нужно поставить компилятор, настроить, узнать какие флаги передать. Отдельно настроить автодополнение, понимать, что есть разные его типы: можно по токенам показывать, можно семантически полностью разбирать. Зависит от настроек и от того, как читалась документация (и читалась ли вообще).
    Нет пока что варианта "установить одной кнопкой и всё завайбкодится". Нужно очень много приложить усилий, но они окупятся.

    Локальная LLMка не нужна, если у тебя не супер-секретные данные, которые ни в коем случае нельзя светить, иначе смерть. Железка, которая потянет это всё на уровне сервиса за 20 баксов, будет стоить под десятку зелени. Если у тебя не госразработка, ядерные исследования и прочие чувствительные данные, нет никакого смысла ставить локальную молотилку за громадные деньги, заплати 20 баксов за Курсор и ещё 20 за ChatGPT/Claude для research-режимов и это покроет 90% задач.

    Повторюсь: возьми нормальный проверенный топовый инструмент, а не говно-плагины неизвестные. Изучи этот инструмент хотя бы наполовину. Изучи какие есть ещё вспомогательные для него. Изучи так же, поставь, чтобы один помогал другому. И так со временем обмазывайся ими. И продуктивность возрастёт в десятки раз!
    Ответ написан
  • Точь в точь ли маппятся поля json-сущности на поля в таблицах базы данных?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Я просто оставлю это здесь: отображение объектов на реляционную БД - это Вьетнамская война компьютерной науки
    Ответ написан
    2 комментария
  • Как стоит проапгрейдиться?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Маршрута апгрейда у вас два:
    1. Апгрейдить видеокарту. Если хотите больше ФПС - то апгрейдить следует именно ее. Вплоть до старшей типа rtx5090
    2. Апгрейдить процессор, но тут вам придётся менять платформу (мать+проц+озу). Менять i5 на i7 или даже i9 смысла особого нет (мы про игры все ещё).
    Ответ написан
    Комментировать
  • Каковы изоляционные свойства пластиковой бутылки?

    «электрическая прочность ПЭТФ при 20 гр. ц. не менее 140 кВ/мм», но тот ли это материал, из которого делают тару для напитков?

    ПЭТФ, PET, PETE - да, из них делают бутылки для напитков.
    Из HDPE делают бутылки для всякой бытовой химии, шампуней.

    Кроме того, по непонятной мне причине в числе недостатков ПЭТФ иногда отмечают «средние диэлектрические свойства».

    По сравнению со стеклом или керамикой - действительно не очень впечатляющие числа.
    Спрашивайте у автора текста, почему он записал это в минусы и с чем он сравнивал.
    Вообще не понятно, откуда там "не менее 140 кв/мм".
    Вот тут вот написано, что вообще всего 20кв/мм
    selectelement.ru/directory-electronics/materials/e...

    А вот какие свойства конкретно у пластиковой бутылки - фиг знает, ибо бутылки делают для того чтобы в них жидкости наливать, а не для того чтобы их использовать как изолятор.
    Никакой производитель напитков тебе не даст гарантию, что от партии к партии у бутылок будут одинаковые диэлектрические свойства, тем более с определёнными числами "не менее"
    Ответ написан
    8 комментариев
  • Какой wifi роутер выбрать с поддержкой 10Gbe lan?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Практичнее будет взять отдельно любой популярный 10 гигабитный маршрутизатор чисто для проводной сети, а для вай-фая взять обычный роутер с парой 2.5 или 10 гигабитных портов. А вот с десяткой для локалки роутеры для дома не делают. Если квартира большая или дом - то имеет смысл использовать меш. Например серия Deco от TP-Link вполне себе нормальная.

    Cамый оптимальный же вариант на мой взгляд - это использовать домашний сервер под сеть. Если на нём достаточно производительный проц и есть запас, то можно в него воткнуть 10G карту или две с пачкой портов (например что-то типа Intel X710-T4, можно даже б/у), поднять машину с pfSense и пробросить в него эту карту целиком. pfSense как роутер - очень даже отличное и практичное решение с кучей разных фич. Ну а для вай-фая - любой роутер по бюджету и хотелкам.

    Для IoT умного дома - USB ZigBee донгл в сервер, например SONOFF Zigbee Dongle Plus-E плюс машина с Home Assistant. Если сервер в металлическом шкафу или в месте, где плохой вайфай - то можно взять WiFi ZigBee шлюз и воткнуть его в любую розетку, а с HA он без проблем по вифи будет работать (соноф норм, но там надо немного секаса с перепрошивкой - вроде во второй версии он из коробки с нормальной прошивкой, точно не помню - надо гуглить).
    Ответ написан
    19 комментариев
  • Почему так отображается объем оперативной памяти?

    @alexalexes
    Посмотрите в настройках Региона -> Дополнительные параметры, что там с разделителями чисел.
    6859383c3892d773347244.png
    Не поставили ли случайно букву "б" вместо запятой.
    Ответ написан
    10 комментариев
  • Как работают переводы на другие языки в играх?

    @Mercury13
    Программист на «си с крестами» и не только
    А теперь расскажу как человек, который давно и плотно интересуется локализацией, но в глаза Unity не видел.
    Локализация ДОЛЖНА храниться в простенькой базе «ключ-значение», это может быть INI, CSV, XML или что-то ещё. А то часто бывают половинчатые решения, когда общие строки локализуются, а прописанные где-то в скриптах — через зад (StarCraft первый). Или одна и та же строка служит и ключом чего-то, и выводимой локализованной строкой (Atreides/Ordos/Harkonnen в Dune II).

    Существуют два основных подхода к локализации.

    1. Есть так называемый «основной» язык, прописанный ПРЯМО в EXE-файле, ПРЯМО в скриптах игры и так далее. Локализация имеет вид
    «Open»,cmd → «Открыть»
    «The door is locked.»,level1 → «Дверь закрыта.»

    Как вы видите, ключ состоит из двух частей: строки-оригинала и уточнения. Если ключ совпадает, а уточнение — нет, берём строку без уточнения, а если и таковой нет — то что угодно. А если и ключ не совпадает — берём непереведённую.

    Адепты этого подхода — Gettext и Qt.

    2. Даже первый язык наравне с остальными.
    Cmd.Open → «Открыть»
    Level1.Locked → «Дверь закрыта.»

    Вариант 2.1: первый язык (обычно английский) используется как резервный, если локализации не нашлось.

    Сам я в пользу второго подхода, но он сложнее.

    САМАЯ простая база ключ-значение, чаще всего использовавшаяся на Java ME, где с памятью швах,— это простой линейный массив.
    [0] Открыть
    [1] Дверь закрыта.
    Всё преобразование из человекочитаемых идентификаторов S_CMD_OPEN в номера происходит на машине разработчика, генерацией файла
    constexpr unsigned S_CMD_OPEN = 0;

    Какой из методов брать?
    1. Насколько много локализации?
    2. Есть ли скрипты, GUI-формы и прочие ресурсы, способные содержать строки локализации?
    3. Насколько много больших текстов?
    4. Если программа параллельно разрабатывается и переводится: насколько тексты стабильны? Первый подход совершенно не выдерживает ситуации, когда исходные тексты меняются.
    5. Возможны ли неофициальные локализации? Метод 2 без уточнения 2.1, если программа «живая», исключает их.
    6. Что поддерживается вашим движком из коробки?
    7. Локализация встроена изначально, или приходится переводить неготовую к этому прогу?
    8. Насколько много интерфейса? У интерфейса есть противная фишка: нужно расщеплять строки, то есть давать одинаковым строкам разный ID (Open=«Открыть», «Открыто» и т.д.), и первый поход по умолчанию объединяет, второй по умолчанию расщепляет.

    И ма-ахонький апдейт. Есть ещё такое понятие, как сегмент — кусок МЕНЬШЕ локализуемого текста. То есть сегменты есть только на уровне комплекта локализации, в экспортированных текстах они склеиваются в единый текст. Обычно предложение или абзац. Сегментация используется в переводе больших текстов, особенно в интерфейсах, с такими целями.
    • Существуют тексты-«козы», которые могут найтись в памяти переводов. Например: «Серп и молот символизирует крестьян и рабочих. Осторожно, в вашем законодательстве эта символика может быть запрещена.»
    • Из-за недостатков интерфейса проги перевода можно пропустить целое предложение. Да, бывает!
    • В «живых» программах — можно помечать плохо переведённым кусок меньший, чем целый текст.
    (Живой я называю программу, которая параллельно разрабатывается и переводится. Благо методика «аджайл» предполагает частые небольшие выпуски.)
    Ответ написан
    Комментировать
  • Как выделить раздел FAT32 из основного диска Arch Linux?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот так: Не будет ли конфликтов между виндой и линуксом, если линукс поставить второй системой? - подробно и со всеми нюансами, особенностями и подводными камнями.
    Ответ написан
    Комментировать
  • Возможны ли санкции поисковых систем, если в интернет-магазине на странице товара писать просьбу оставить отзыв за вознаграждение?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможны ли санкции поисковых систем, если в интернет-магазине на странице товара писать просьбу оставить отзыв за вознаграждение?

    Возможны, например, по причине жалоб пользователей (втч. конкурентов). Десятки жалоб на малом промежутке времени ни к чему не приведут, а вот сотни жалоб на протяжении месяцев - реально могут пессимизировать сайт в органике, особенно отчетливо это заметно в гугле, но яша не сильно отстает.
    Ответ написан
    3 комментария
  • Конноспортивный комплекс. видеокамеры в конюшнях. Как защитить от мух?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Попробуйте рядом с камерами слева и справа повесить липкие ленты-ловушки.

    ЕМНИП (давно видел в последний раз), они с запахом. Если муха прилетит к камере, это повысит вероятность, что она сядет не на объектив, а на ленту. Там и останется.

    Из весёлых вариантов, станьте модным нынче хоббихор... в смысле, спайдерхорсером. Наловите пауков и выпускайте их прямо на камеру - пусть обживаются, паутины поблизости плетут и мух изничтожают :)
    Ответ написан
    1 комментарий
  • Как в софтверных компаниях относятся к использованию ИИ?

    @Everything_is_bad
    Но имея базовые понятия, да с помощью ИИ я же могу junior'ом то уже работать
    но вот только джины не сильно и нужны, а тем более такие.

    И я полученный код уже использую, еще немного напильничком обработать и можнои на github и на pypi выкладывать.
    и кому он нужен будет? ИИ сейчас выдает код для решения мелких задач, этот код плохо поддерживается и плохо масштабируется.

    Короче, ИИ способен убирать кучу рутины квалифицированного программиста, но не заменить его. Так же ИИ решает мелкие частные задачи "обычных" людей.
    Ответ написан
    4 комментария
  • Что выбрать для хостинга сайта: 2 ядра до 5 ГГц или 6 ядер до 3.2 ГГц?

    Steel_Balls
    @Steel_Balls
    Всё зависит от задач.
    Я бы под свои задачи взял 6 ядер пусть и немного с меньшей частотой. В наше время частота не имеет никакой роли.
    около 3000 уникальных пользователей в день.

    Это вообще ни о чём. Это 100 юзеров час? два в минуту? Серьёзно?
    С такой "нагрузкой" даже офисный калькулятор справится.

    Масштабируемость и надёжность зависят не от железа, а от архитектуры разработки сервиса.
    Я на нескольких слабых машинах легко могу масштабировать сервис и держать примерно 10-20 тысяч запросов в секунду. Пока мне этого хватает. Будет нужно - куплю ещё десяток машин по 5 долларов за штуку.
    Ответ написан
    2 комментария
  • Как объединить запросы в транзакцию?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Поскольку быстрым поиском готовый ответ на Тостере не находится, стоит написать канонический.

    Сначала общая информация:

    Транзакция служит для обеспечения принципа "всё или ничего", гарантируя, что либо все запросы выполнились без ошибок, либо, если в каком-то из запросов произошла ошибка, то все предыдущие будут отменены, как будто их и не было вовсе. Из чего можно сделать следующие выводы:
    • транзакция не нужна для любого количества запросов на выборку данных, поскольку там нечего откатывать
    • транзакция не нужна для одного запроса на изменение данных (вставка, обновление, удаление) - такой запрос представляет из себя мини-транзакцию, которая сама автоматом откатывается при ошибке
    • не следует путать транзакции с блокировками. Хотя при определённых параметрах транзакции могут выполнять и блокировку, в общем случае это два разных механизма, которые могут выполняться как вместе, так и по отдельности. По умолчанию транзакция НЕ обеспечивает блокировку таблиц, участвующих в запросе


    Самым простым вариантом будет заключить запросы между вызовами beginTransaction() и commit(), как показано например в документации к последнему.
    $db->beginTransaction();
    $db->prepare("UPDATE `tab1` SET `col` = ?")->execute($data1);
    $db->prepare("UPDATE `tab2` SET  `col` = ?")->execute($data2);
    $db->prepare("UPDATE `tab3` SET  `col` = ?")->execute($data3);
    $db->commit();

    Для современных версий РНР этого должно быть достаточно: начиная с РНР 8.0 ошибочный запрос по умолчанию выбрасывает исключение. Не пойманное исключение прерывает выполнение РНР скрипта. При прерывании выполнения скрипта РНР закрывает соединение с Mysql, а при закрытии соединения Mysql откатывает все открытые в нём транзакции.

    Соответственно, при ошибке в любом из запросов транзакция автоматически откатится. А при успешном выполнении всех запросов транзакция, соответственно, закоммитится.

    В редких случаях, когда после отката транзакции предполагается дальнейшее выполнение кода, можно заключить код транзакции в try-catch и откатить её вручную.

    Важно помнить некоторые особенности.
    • в mysql не все движки таблиц поддерживают транзакции. впрочем ,учитывая что innodb является движком по умолчанию уже лет 20, это вряд ли будет проблемой
    • запросы на изменение страктуры таблиц автоматически коммитят стартовавшую транзакцию, то есть их следует избегать. Кажется, в новых версиях какие-то уже не коммитят, но я предпочитаю избегать всё равно.


    Также желательно помнить, что в любом более-менее сложном коде очень быстро появляются вложенные транзакции, а PDO при попытке стартовать транзакцию при уже открытой, выбросит исключение, что, соответственно, приведёт к откату родительской (и это гораздо лучше поведения MySQL по умолчанию, которая автоматически коммитит старую). И имеет смысл накидать простой кодик, который считает вложенные транзакции, и не стартует, если уже был старт, а при коммите вычитает вложенность, а реально коммитит только если вложенности не осталось. Что-то вроде кода из комментариев к beginTransaction(), подравняв его напильником
    class \MyPDO extends \PDO
    {
        protected $transactionCounter = 0;
    
        public function beginTransaction()
        {
            if($this->transactionCounter++ === 0) {
                return parent::beginTransaction();
            }
        }
        public function commit()
        {
            $this->transactionCounter--;
            if($this->transactionCounter === 0) {
                return parent::commit();
            }
        }
        public function rollback()
        {
            $this->transactionCounter = 0;
            return parent::rollback();
        }
    }

    разместив его либо прямо в PDO, либо в своем враппере.
    Ответ написан
    3 комментария
  • Как автоматически создавать большие отчёты из множества docx файлов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В общем задача типичная, у компании за год из разных отделов прилетает по 100+ отчётов с разным содержанием, в конце года необходимо создать один большой отчёт о всей проделанной работе на 300+ страниц, делали это вручную, но сейчас решили автоматизировать процесс, возник вопрос - как это реализовать?

    Для нейронных сетей не свойственен "детерминизм". Тоесть дважды поставленная одна
    и та-же задача для НС будет иметь 2 разных результата. Это свойство НС очень важно
    например если вы их путаете с Lisp/Prolog и прочими экспертными системами которые
    внутри себя действительно содержали if-else логику а НС так не работает.
    Она - "шумит".
    Она завист от random генератора и этот генератор является ее базовым свойством.
    Его принципиально нельзя отключить даже при 0 температуре алгоритмов НС.

    Но если у вас есть программисты которые в состоянии написать парсер 100+ документов
    с использованием НС и протестировав его доказать что результат правильный - то это
    будет более верная стратегия. Подумайте в эту сторону.
    Ответ написан
    Комментировать
  • Как правильно хранить SMS-коды?

    Fragster
    @Fragster
    помогло? отметь решением!
    ИМХО можно удалять только по протуханию, а то возможна ситуация, когда пользователь нажал за напрос кода, он не пришел, нажал на повторный запрос - приходит первая СМС, он вводит - неправильно.
    Естественно, надо ограничивать количество запросов смс на номер например раз в минуту, но не больше чем 5 раз в час. ну и с одного ip - тоже, не более, допустим, 10 запросов в час
    Ответ написан
    5 комментариев
  • Редактор PDF и AstraLinux, какой использовать?

    @Semmes951
    Ваши потребности(перечисленные) с головой покрывает Stirling-PDF. Можно развернуть на своём сервере и работать через браузер
    Ответ написан
    Комментировать
  • Как перевести программу на С++ в бот Телеграм?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Написать демона, взяв например такую либу
    https://github.com/reo7sp/tgbot-cpp или поискать еще на гите

    На хабре
    https://habr.com/ru/articles/844628/
    Ответ написан
    Комментировать