• Как перенести большую базу на другой сервер без простоев?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    С минимальным простоем - да, репликация. Выключаете на старом месте, включаете на новом. Блокировать ничего не нужно.
    Ответ написан
    3 комментария
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    @rPman
    Ищи плагины к chatgpt, не удивлюсь если кто то такой сделал и для табличных процессоров. Напоминаю что chatgpt это не просто gpt, это сложный продукт и пользоваться им не просто.

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

    p.s. я пользовался сторонними площадками типа coze, там и плагины и gpt4... ничего красивого и хорошего с теми же графиками там не получилось
    Ответ написан
    Комментировать
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    Первая мысль: а зачем вообще здесь нужен ИИ?
    Можно ведь построить графики средствами самого Google Sheets. Ну или экспортировать в CSV и оттуда в какую-то СУБД, чтобы сделать запрос.

    А, вообще, вроде бы, при помощи Amazon Bedrock можно создавать запросы к СУБД, на основе которых уже можно строить любые графики.
    AWS Bedrock Gen AI - Generate SQL Code

    Дополнение
    Но мне интересно проверить, может ли "AI" упростить это.

    насколько я понимаю, речь идёт о составлении запросов на основе набора данных в Google Sheets. Используя питоновский пакет LangChain, можно подключить к СУБД и составлять запросы от ИИ человеческим языком. Получив ответ на запрос, нужно программно вставить данные ответа и график.
    В https://developers.google.com/sheets/api/samples/charts описано как программно создавать графики.
    Ответ написан
    5 комментариев
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    Maksim_64
    @Maksim_64
    Data Analyst
    На сколькой я знаю с gpt, ты не можешь взаимодействовать с google sheets, только вопросы задавать как сделать то или иное. А вот с Gemini ты можешь взаимодействовать, с google workspace и как следствие с google sheets. На сколько это все качественно там не знаю, но начиная от официальной поддержки, ютуб мануалов, да и сам Gemini может подсказать, как с этим делом взаимодействовать.

    Не думаю что google даст api для выполнения скриптов от LLM для своих сервисов. Так что предполагаю что только gemini.
    Ответ написан
    3 комментария
  • Можно ли заставить LLama2 выполнять действия?

    @rPman
    И нет и, может быть, да. Помимо llama существует лучше модели, например mistral и основанные на нем типа openchat35 или лучше mixtral (он неожиданно умный и скорости как 7b) или или еще лучше от databrix (по скорости как llama30b).

    У разработчиков языковых моделей например есть chat версии, есть instruct, а есть base. Общий смысл каждой определяется тем, на какое именно использование их заточили. Например instruct позволяет описывать инструкции на естественном языке и главное получать ответ тоже на естественном языке, со всеми вытекающими от сюда неудобствами (api предполагает стандартизацию форматов вывода). chat ожидает что с ним будут общаться в формате user: xxx, ну а base модели изначально работают только как completion, и их обычно дообучают до своих форматов и наборов знаний.

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

    Так как llm это посимвольная (по токенам точнее) генерация ответа, на каждом из них, в момент когда происходит выбор следующего токена, можно вставить свой алгоритм, ограничивающий доступный список своими, по своему правилу. Например можно описать регулярное выражение, которое будет применяться к сгенерированному тексту плюс выбираемый токен и если оно не подходит, отказывать в выборе этого токена. Например какая то реализация этого есть в llama.cpp ищи grammar, это ключ у api вызова к server.

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

    Есть общепринятые лайфхаки, повышающие качество ответа. Это добавление примеров (вопрос+ответ+вопрос+ответ+вопрос+...) т.е. one-shot/multi-shot, именно так слабые модели могут встать по бенчмаркам с zero-shot у сильных моделей, без примеров. Или попросить в запросе модель поразмышлять (think step by step), надавить на эмоции (найти ответ очень важно для меня, от этого зависит моя жизнь), ценой места в окне контекста. Еще есть подход, делать один и тот же запрос (или кстати слегка менять prompt) много раз, и сделать какой то механизм валидации ответа (например большая часть одних и тех же ответов считать верной) - как защита от галлюцинаций (был пример когда модель заставили миллион раз генерировать программу, запускать ее и проверять результат - так сделали реальное научное открытие)

    НО! Просто не будет.
    Ответ написан
    Комментировать
  • Почему сервер MySQL закрывает соединение?

    karabanov
    @karabanov
    Системный администратор
    Посмотри есть ли, что нибудь в error.log и проверь, что процесс сервера не перезапускается.

    PS
    И не надо публиковать текст картинкой - текст с картинки не скопирова, не найти поиском, а порой и вовсе сложно разглядеть, как из-за того, что картина "зашакалена" и её не увеличить, так и из-за того что на фоне какие-то картинка.
    Ответ написан
    3 комментария
  • Как лучше загрузить сайт на React на GitHub для доказательства, что он действительно на React?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    этот вопрос у меня относится к удобству чтения кода и просмотра сайта другими пользователями, чтобы они удостоверились в разработке на React.

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

    Либо, чтобы из репы можно было скопировать лишь dist/ и сразу опубликовать это как приложение в любом месте, без дополнительных команд.
    От такого способа не будет видно, что применялся Реакт?

    Слепой не увидит ничего, в остальном - все чекается на раз-два.

    Рекомендую изучить крупные репы и обратить внимание на то, что там в рамках одной репы имеются исходники (src), сборки разных видов (dist/build), опубликованы все необходимые команды так, чтобы даже не зрячая обезьянка могла скопировать и выполнить эту команду, чтобы получить желаемый результат.
    Ответ написан
    1 комментарий
  • Что такое кластерный индекс в mysql?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Кластерный индекс... это на самом деле понятие крайне виртуальное.

    Что такое обычный некластерный индекс? берём выражение индекса, считаем его значение для каждой записи, сортируем и пишем на диск. Получаем отдельную структуру, в которой выражение индекса сортировано. Когда потребуется искать заданное значение этого выражения, мы вместо просмотра от записи к записи сразу половинным делением быстренько найдём нужное значение, возьмём из него уникальный идентификатор записи, и обратимся за записью. Если в таблице 1000 записей, то для поиска заданного значения без индекса нам в среднем пришлось бы просмотреть 500 записей, а с индексом - всего 10.

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

    В MySQL (точнее, в используемом по умолчанию движке InnoDB) первичный индекс, во-первых, существует ВСЕГДА, во-вторых, определяется так (в статье, на которую дали ссылку, имеются неточности в пункте 2):
    1. Если первичный ключ задан явно, то его выражение является также и выражением кластерного индекса. Или иначе - первичный ключ и есть кластерный индекс.
    2. Если первичный ключ явно не задан, но в таблице имеется индекс, отвечающий всем следующим требованиям:
      • является уникальным
      • не является функциональным, в т.ч. не использует в выражении вычисляемые поля
      • не использует в выражении поля, которые определены как допускающие значение NULL

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


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

    Фактически - именно так.

    Создаётся ли отдельная таблица или просто упорядочивается хранение существующих данных?

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

    Если данные упорядочиваются этим индексом, допустим по ID, то почему при select без сортировки данные могут возвращаться в произвольном порядке, а не отсортированные по ID по-умолчанию?

    Если не задан явно ORDER BY, сервер имеет право вернуть записи в любом порядке, как ему удобнее. В большинстве случаев, но не всегда, он будет возвращать записи в порядке чтения с диска...

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

    ===

    PS. Кстати, правило выбора индекса, который будет использоваться в качестве кластерного, имеет неприятный побочный эффект. Если у некоторых полей, входящих в какие-то индексы, изменяется свойство NULLability, то это может привести к изменению того, какой из имеющихся индексов станет использоваться в качестве первичного по пункту 2. В результате мы получим невозможность использования INSTANT / INPLACE методов, и будет использован длинный COPY. Впрочем, ситуация такая крайне редка.
    Ответ написан
    2 комментария
  • Как настроить ssh для возможности контроля действий?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Инструменты платные потому что имеют что то уникальное: набор функционала или удобство в использование.
    Все ваши хотелки можно реализовать при помощи разных инструментов, требуется просто поэкспериментировать и много времени провести в гугле.

    1. Возможно в этих статьях найдешь ответ 1 статья и 2 статья
    2. Ни как.
    3. Ссылка
    4. Можно использовать Tmate

    P.S Если вы предоставляете данные разным людям, то для безопасности я бы все же потратился на покупку удобного ПО для контроля их действий.
    Ответ написан
    1 комментарий
  • Запуск компьютера с удаленным доступом и некоторыми службами. Как это провернуть максимально правильно?

    @pfg21
    ex-турист
    ага, для автозапуска необходим вход пользователя.
    используй вместо автозапуска службы виндоус, они конечно кривоваты для использования, но зато запускаются вне зависимости от пользователя.
    крививоватость использования исправляю через Non-Sucking Service Manager есть еще какието поделки.
    очередность можно сделать через зависимости, но виндовые зависмости сервисов не ковырял.

    обязательно изучай линукс. в серверных делах без него никак.
    со смартфона можно подключаться через кучу полноценных ssh-клиентов.
    минус - смартфон не очень удобен для commad line. блютус клавиатура или планшет уже проще.
    еще есть вариант прикрутить веб-интерфейсы, но тут готовых заготовок нет.
    Ответ написан
    2 комментария
  • Есть ли сервис, который составит план разработки сайта со всеми нюансами?

    @Drno
    Любой сайт фриланса. Там за денюшку Вам составят подробный план и проект)
    Насчет технических моментов - это не Ваша проблема, а реализатора
    Ответ написан
    Комментировать
  • Python в запущенный в контейнере работает медленнее натива?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Разница в бинарях - Python на хостовой машине собран без отладочной информации, а тот, который в образе python:3.10.4 собран с нею.

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

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

    PS
    Никогда не используй образы Alpine - там вместо glibc суррогат под названием musl. В прочем для статически слинкованных бинарей на Go использовать можно, но тогда уж выгоднее использовать scratch
    Ответ написан
    5 комментариев
  • Какой самый выгодный способ получения удаленного Kubernetes кластера?

    Griboks
    @Griboks
    Устроиться на работу программистом и как бы ненавязчиво продвигать CI/CD.
    Ответ написан
    7 комментариев
  • Что это такое и как защититься?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    По двору прошелся жулик и попытался хакнуть эксплойтом для "майбаха" (условно) все тачки в вашем дворе. Майбахов не нашлось, этот жулик пошел дальше и забыл уже про ваш дворик.

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

    Вообще, если ваш сетап на виртуальных машинах в повторяемой среде и с декларативной конфигурацией вроде кубера или докера, то вы легче сможете пережить всякие такие факапы.
    Схема такая.
    Есть признаки взлома - бэкап логов, снапшот базы, бэкап стораджа, остановка сервисов (если позволяет продакшн), анализ атаки и последствий. Устраняем уязвимость по вектору атаки (гугление по логам и курение тредов), правим конфиги развёртывания и запускаем прод. Потом долго и тщательно разбираемся по логам, снапшотам и бэкапам что затронуто. Делаем тестовый чистый сетап по старой конфигурации и сравниваем пофайлово с атакованной системой, выясняем в какие места вмешались злодеи. Дифаем базу и смотрим на подозрительные различия. Делаем выводы, объявляем об утекших данных, если есть такие признаки (чтобы не подставлять пользователей), принимаем превентивные меры против похожих векторов атак.

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

    Это взгляд дилетанта по безопасности, если чего пропустил -- поправьте. Если где не прав -- расскажите.
    Ответ написан
    3 комментария
  • Как проверить нагрузку индексов на сайт?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первое что нужно сделать - смотреть слоулог, или хотя бы завести его, если еще нету. Можно поставить мониторинг и анализ запросов в какой-нибудь Percona или что-то типа, посмотреть что вообще происходит. Потом уже можно говорить что что-то лишнее или не хватает.
    Ответ написан
    2 комментария
  • Как намекнуть начальству, что agile не избавляет от тз?

    vabka
    @vabka
    Токсичный шарпист
    1. Agile - это про то что люди должны договариваться. По тому надо не намёки делать, а говорить прямо и предметно.

    2. Вот вы говорите, что вам нужно ТЗ. А зачем вам оно нужно?
    Вам не понятна та постановка, которая описывается в карточках?
    Есть неоднозначность?
    Уже есть примеры, когда от этой неоднозначности пострадал продукт (например из-за необходимости переделывать)?

    Или вам нужно не ТЗ, а виденье того, чем в итоге должен стать продукт?
    Не понятно, для чего вообще все эти карточки перекладываются?
    Если так, то, вероятно, вам нужно не ТЗ, а какие-то OKR-ы, чтобы можно было от них отталкиваться при составлении задач.

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

    @AndryG
    Я за семь минут сформулировал три разных ответа. Это ж надо так умудриться задать вопрос, что хрен поможешь.

    (я использую MAMP) без него, вместо желаемого результата на странице появляется весь код PHP,
    Ну. конечно будет появляться исходный код, ибо интерпретатора нет и никто исходники не обрабатывает.

    когда подключается PHP код выходит ошибка (не находит страницу)

    Ошибки - это нормально! Нужно найти причину и устранить ее.

    Правильно заданый вопрос - 50% ответа. Тренируйтесь излагать мысли - полезно для кодинга
    Ответ написан
    Комментировать
  • Как правильно делать коммит в монорепе?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Можно указывать в названии PR:
    feature/front/books-added-author-field
    feature/back/books-added-author-field

    Нужно/не нужно - скорее организационный вопрос. Если проект большой и народу много, то тогда вообще репозиторий следует делить на более маленькие для разных команд разработчиков, а не держать все в одной куче. Если же один-два - то вообще не принципиально.
    Ответ написан
    Комментировать
  • Как автоматически задеплоить бота Telegram?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для начала, следует научиться запускать бота где-то на сервере руками.
    Потом описать инструкцию что для этого делается (новая папка, редактирование конфига, запуск бота).
    Затем реализовать эти команды в скрипте, который вызывается нажатой в веб-интерфейсе кнопкой.

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

    @Everything_is_bad
    с чего нужно начинать?
    с гугла, всё давно кучу раз рассказано
    Ответ написан
    Комментировать