Задать вопрос
  • Какую видеокарту выбрать для машинного обучения, майнинга, гейминга и 3д-моделирования?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    656e4ba8471be903012641.jpeg
    Не этого я ожидал в час ночи, не этого...
    Какую угодно берите, ваш комп не потянет высокополигональные модели в 3D Max (например траву).

    Для начала надо было оперативки в 4 раза больше (а лучше в 8). Поэтому она на "высокополигональных" делах будет моментально кончаться и система станет жутко свопить. Но своп файл будет еле ворочаться - на пути быстрой работы вы поставили "диагональный" SSD со скоростью в 10 раз меньше, чем надо (но прекрасной, года так для 2012-го).

    Дальше в подобных программах вывозит процессор. Но свой вы взяли без "К", с бюджетным тепловым пакетом, это будет его душить сразу и на взлете. Зато материнская плата хорошая, на чипсете "Z", правда применить свои умения она на процессоре без "К" не сможет. Было бы лучше даже взять проц с "K" но материнку подешевле...
    А еще я знаю, какой у вас ИБП, но понятия не имею, какой кулер на процессоре, видимо ИБП влияет больше...

    Половину вашего SSD займет система с программами, еще 60-180 гигов файл подкачки. Под игры вам останется - примерно на половину одной современной игры. А куда вы будете качать текстуры и модельки из библиотек (а там нужны терабайты) - я так вообще не представляю.
    Ответ написан
    1 комментарий
  • Есть ли готовое решение для создания пользовательской панели на базе MySQL для управления заданиями клиентов?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Звучит как ларавель + рбак + что-то типа вояджера. По описанию в 10 строчек звучит как распространенная задача, на деле ВСЕГДА всплывает миллион нюансов и "мы думали это само собой разумеется", по этому 99,9% что подходящего готового решения "искаропки" под ваши хотелки нет.
    Ответ написан
    Комментировать
  • Как импортировать данные из .docx файла в JavaScript логику?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Вручную перенести все, будет быстрее чем писать скрипт.
    Ответ написан
    Комментировать
  • Что за непонятные html-файлы?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    При выводе названий файлов (команды типа state, ls-files, diff и т. п.) символы с кодом больше 0x80 Git заменяет восьмеричными кодами (например, \320\272 для символа «к»).

    Начиная с версии 1.5.3 это поведение можно изменить с помощью конфигурационного параметра core.quotepath (принимает значения true/false или on/off).

    Для отключения такого поведения выполните:
    git config --global core.quotepath false

    Источник
    Ответ написан
    Комментировать
  • Ошибка при использовании grep на сервере?

    Adamos
    @Adamos
    grep -R "Вечность" /dev/urandom
    grep, начиная с корня системы

    Не начинайте с корня, начинайте с тех мест, где реально надо искать. В корне куча виртуальных папок, примонтированные шары, блочные устройства... не надо в нем запускать команды с -R. Вообще не надо.
    Ответ написан
    5 комментариев
  • Не грузится модуль aplesmc на debian 12, есть кто сталкивался?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Бааалдеж...

    Купить мак.
    Поставить винду (обычный ноут никак нельзя было купить, да? Маки берут из-за макоси)
    Потом снести вииду и пытаться на мак вкорячить линух!

    Мак берут только за макось, потому что яббловские продукты - они не програмные, а программно-аппаратные, то есть мак заточен под макось, так же как кошка заточена под поедание мышки :) Брать мак и корячить на него что-то другое - это примерно как купить ламборджини и корячить туда движок от жучки :)
    Ответ написан
    2 комментария
  • Как обновить блок после удаления и добавления и получить данные для редактирования?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Первое что надо сделать - нормальные запросы с подготовленными выражениями, а не дырявые инъекции...

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

    Далее, по результату выполнения операции на бэкенде, исходя из данных полученных обратно аяксом уже решаем что делать, если ошибка - ничего не трогаем, если ошибки нет - добавляем/удаляем строки в таблице. Удаление - банально что-то типа del_button.closest('tr').delete() (емнип). С добавлением сложнее, но в целом ничего особенного, можно засовывать в конец списка, так как не вижу там у вас никакой сортировки при выборке. Строку формируете либо в колбэке, либо можно возвращать готовую в дополнительном поле возвращаемого жсона, и уже оттуда только добавить готовую новую ноду внутрь таблицы.

    Так же, учитывая что новые элементы не будут работать при добавлении, так как на них не навешены слушатели, либо каждый раз перезапускать навешивание листенеров, либо нормально сделать делегирование для кнопки удаления.
    Ответ написан
    Комментировать
  • Как решать проблему дублирования вопросов между отделами?

    nava2002
    @nava2002
    Инженер
    Передать отделу "1" все функции отдела "2" по которым возникают вопросы.
    Отдел "2" занимается не специфичными задачами, потому и вопросы.
    Ответ написан
    Комментировать
  • Как сделать несколько вложенных джоинов?

    @alexalexes
    Сначала напишите чистый SQL:
    select n.*, -- атрибуты новости
               p1.*, -- атрибуты автора
               p2.*, -- атрибуты исполнителя
               s.* -- атрибуты статуса новости
    from news n
    join status s on s.statusId = n.statusId
    left join people p1 on p1.peopleId = n.authorId
    left join people p2 on p2.peopleId = n.executorId
    where p1.fullName like :search
           or p2.fullName like :search

    Потом откройте документацию по ORM и перепишите в методологии ORM.
    Сначала попробуйте простой запрос:
    select *
    from news

    Потом посмотрите, как делать join и работать с псевдонимами таблиц:
    select n.*, -- атрибуты новости
               s.* -- атрибуты статуса новости
    from news n
    join status s on s.statusId = n.statusId

    Потом как с where работать:
    select n.*, -- атрибуты новости
               s.* -- атрибуты статуса новости
    from news n
    join status s on s.statusId = n.statusId
    where s.statusId = :statusId

    Потом, как лайкать:
    select n.*, -- атрибуты новости
               p1.*, -- атрибуты автора
               p2.*, -- атрибуты исполнителя
               s.* -- атрибуты статуса новости
    from news n
    join status s on s.statusId = n.statusId
    left join people p1 on p1.peopleId = n.authorId
    where p1.fullName like :search

    И в заключение, как к лайкам добавить OR (самый первый запрос).
    Ответ написан
    Комментировать
  • Как связать YandexGPT с базой данных?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Стоит ли тратить время или (пока) такая идея заведомо гиблая?

    Гиблая
    Ответ написан
    Комментировать
  • Какой бесплатный мониторинг ресурсов (аналог zabbix agent) установить для vps linux ubuntu?

    А зачем искать аналог zabbix, если можно использовать сам zabbix? Он бесплатный, его можно установить на ubuntu, у него есть веб-интерфейс (и вполне можно интегрировать в grafana/prom, если хочется)

    https://www.zabbix.com/documentation/current/en/ma...
    Ответ написан
    2 комментария
  • Как и где сохранять код проектов?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Уже много-много лет храню все наработки в одной репе, разнося по каталогам. Репа - в одной точке хранения, подключается по мере необходимости.
    и да, тут согласен с Василий Банников - все, что можно использовать повторно - оформляй библиотеками. Небольшая затрата на оформление компенсируется в дальнейшем простотой использования - как оно работает внутри со временем забудется, а работать будет :)
    Ответ написан
    1 комментарий
  • Как и где сохранять код проектов?

    delphinpro
    @delphinpro
    frontend developer
    Локальная база знаний:
    • Десктопные решения, типа OneNote или Joplin
    • Локальный сайт с кастомным решением под себя или просто с wiki движком
    • Гисты на гитхабе или аналоги
    • Да хоть тупо файлики в отдельной директории на компе

    Выбирайте то, что вам удобнее или проще
    Ответ написан
    Комментировать
  • Laravel очередь, как добавить очередь выполнения?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Используйте методы increment и decrement для изменеия баланса
    https://laravel.com/docs/10.x/queries#increment-an...

    public function updateBalance($bet_amount): void
      {
        $this->decrement('balance', $bet_amount);
      }


    под капотом соотв-но получите запрос вида
    UPDATE `users` SET `balance` = `balance` - $bet_amount WHERE id = ...


    p.s. Ваша проблема не в том что Laravel обрабатывает запросы одновременно, а в том что при одновременных запросах сперва делается SELECT текущего баланса, потом вы вычисляете новый баланс на PHP и делаете просто перезапись значения баланса из-за чего естественно теряется одно из изменений.

    p.p.s. Транзакции в БД хорошо, но дополнительно можно использовать lockForUpdate() чтобы исключить любые конфликты на уровне БД и тогда redis-локи в принципе можно убрать.
    Ответ написан
    Комментировать
  • Почему file_put_contents увеличивает число на единицу?

    @pantsarny
    Вы вызываете скрипт через консоль или браузер ?
    Если через браузер - может ли быть такое , что запрос к favicon.ico вызывает данный скрипт? В таком случае у вас происходит вызов скрипта дважды
    Ответ написан
    Комментировать
  • Использование Linux?

    @ewgenc
    Покупать корпоративный ноутбук, на котором производителем заявлена поддержка Linux. Или Dell XPS в версии для разработчиков, там Ubuntu стоит изначально. Ну и компании изначально делающие ноутбуки на Linux не стоит забывать, например System76.
    Ответ написан
    Комментировать
  • Какой процессор лучше: i7-640m или i5-580m?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Оба хуже.

    Этим изделиям более 12 лет.
    spoiler
    6565ab4a71554293018587.jpeg

    Фактически на сколько быстро работают мобильные процессоры - больше зависит от решения производителя ноутбука (теплового пакета и системы охлаждения). Разница может достигать и 2-х раз. При чем не в пользу более "топового".
    Это просто рулетка...
    А что на счет шины - боюсь там просто неверные данные. Процессоры сделаны из одного кристалла и выпиленные из одной вафли. Они полностью технологически одинаковы, оба мобильные. Только небольшая маркетинговая разница.

    А возраст данных процессоров - это уже за гранью добра и зла и он обоснованно может требоваться только в случае, когда требуется именно древнее железо для обеспечения нормального функционирования другого древнего решения (например - для узкоспециализированного ПО).
    Если же вы покупаете "новый" ноутбук на ОЗОН и там такие варианты - откажитесь от затеи. Новые изделия не бывают на старых и БУ компонентах.
    Ответ написан
    Комментировать
  • Как вывести общий объем свободного и занятого дискового пространства?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    есть замечательная утилита lsblk
    например, вывести информацию по всем смонтированным FS(файловым системам) в виде - имя, доступный размер, используемый размер и процент от использования
    $ lsblk -lo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    NAME      FSAVAIL FSUSED FSUSE%
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    awk здесь используется для отсечения не смонтированных ФС и самих дисков у которых естественно будет отсутствовать доступный размер.
    Если нужен общий размер файловой системы то добавьте параметр FSSIZE

    если нужно без шапки то используй ключ -n
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    если нужно по конкретной ФС то просто указываем её
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% /dev/nvme1n1p2
    nvme1n1p2  423,2G    29G     6%

    если нужна конкретная цифра то оставляем тока нужный параметр
    $ lsblk -no FSUSED /dev/nvme1n1p2
       29G

    при желании можно получить данные через json и после нужным образом обработать, например:
    $ lsblk -Jo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    29G

    если нужно в байтах, то используйте ключ -b
    $ lsblk -Jbo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    31178240000


    еще как пример, для файловой системы nvme1n1p2 отобразим в форматированном виде информацию по свободному и занятому пространству:
    $ lsblk -Jo FSAVAIL,FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[] | "Всего занято:\t\(.fsused)\nВсего свободно
    :\t\(.fsavail)"'
    Всего занято:	29G
    Всего свободно:	423,2G


    п.с.
    если нужна обобщённая информация сразу по всему диску то наверное проще будет использовать smartctl
    sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято:\t\(.utilization.bytes)\nВсего свободно:\t\(.capacity.bytes - .utilization.bytes)"'
    Всего занято:	88322768896
    Всего свободно:	411785093120

    правда это скорее всего будет с учетом размера метаданных самих файловых систем расположенных на диске, что будет не так интересно, хотя для быстрой оценки диска сойдёт.
    (здесь вывод json под nvme, для других видов дисков скорее всего нужно будет подправить)

    и да, для преобразования размеров довольно удобно использовать утилиту numfmt
    $ sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято: \(.utilization.bytes)\nВсего свободно: \(.capacity.bytes - .utilization.bytes)"' | numfmt --to=iec --field 3 --padding=1 --format %.1f
    Всего занято: 82,3G
    Всего свободно: 383,6G
    Ответ написан
    1 комментарий
  • Как зайти под root в Alt Linux?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Клоунам, которые пишут мне про пароль пробел, ваше мнение мне не нужно

    Клоунам, которые приходят за консультацией, но почему-то начинают "палцы веером, сопли пузырями" - проходишь мимо - проходи, раз такой умный!
    Пробел в качестве пароля использоваться не может. Он скорее всего отбрасывается (и надо сказать, вообще непонятно, как устанавливается пароль). Надо смотреть pam, как настроена цепочка на проверку. Для безусловного сброса пароля - загрузка с livedvd, монтирование диска, удаление пароля рута, перезагрузка.
    Можно попробовать загрузиться в режиме emergency, если пароль запрашивать не будет.
    Ответ написан
    Комментировать
  • Можно ли увеличить радиус покрытия вайфай сигнала?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    В вопросе детектируются взаимоисключающие параграфы. С одной стороны вы хотите расширить радиус покрытия, а с другой боретесь с помехами на канале.
    Видимо имеет место сумбур, и еще недостаток диагностики ситуации.

    Давайте по порядку...
    Радиус покрытия:
    - у 2ГГц выше, чем у 5 ГГц
    - сильно зависит от расположения роутера и препятствий на пути
    - может быть частично увеличен подъемом мощности передачи (но вы не сможете поднять мощность приема, и ваш роутер может перестать слышать телефон, хотя телефон будет ловить сильный сигнал от роутера)
    - может быть значительно увеличен направленными антеннами (как правило это роутер совмещенный с антенной, типа DAP-3310), но решение не для любого случая
    - может быть увеличен до огромных размеров за счет технологии mesh (а там есть разные способы и пути решения вопроса, но для стадиона или гостиницы - на роутерах уровня SOHO выехать не получится)

    Зашумленность эфира:
    - на 5ГГц ниже чем на 2ГГц (и роутеров меньше, и частоты "ширше")
    - непересекающиеся частоты на 2ГГц - это всего три канала: 1, 6 и 11.
    - соседние роутеры повешенные на каналах как попало (например на 3 и на 4) - сильно фонят и мешают друг другу.
    - роутеры повешенные на один канал (например все на 6) - "договариваются" между собой и делят канал честно, но работают на скорости самого медленного из всех устройств.

    Соответственно задачи "расширить" и "выбрать правильный канал" - совершенно разные и частично взаимоисключающие.

    Типичная бедственная ситуация выглядит так: офисное здание или новостройка из пенобетона. Ловятся по 50 точек доступа. Роутеры и устройства дико мешают друг другу. Вайфай еле работает.
    Как надо решать:
    - посадить всех принудительно на 1, 6, и 11 канал.
    - снизить мощность передачи на всех роутерах
    Как решают (эгоистичный способ):
    - покупают роутеры помощнее, передачу ставят на 100% мощности
    - ищут каналы посвободнее
    Ну и итог - сперва у одного эгоиста становится лучше, за счет резкого ухудшения ситуации у остальных. Потом остальные "подтягиваются" и работать перестает у всех.

    Теперь к вашему вопросу... Да, вы можете настроить в роутере (ну в большинстве можно) автовыбор канала по расписанию, или динамически. Но это не решит проблему. Это приведет к коллапсу...
    Ответ написан
    Комментировать