Задать вопрос
  • В чем разница между git fetch и git pull? Когда что использовать?

    opium
    @opium
    Просто люблю качественно работать
    fetch тянет данные с сервера и обновляет origin/main, а твою текущую ветку не трогает: можно спокойно глянуть что нового - git log HEAD..origin/main или git diff HEAD..origin/main, и решить самому - мержить или ребейзить. pull это тот же fetch плюс сразу merge (или rebase если настроено), поэтому конфликты вылезают только на этом шаге, сам fetch их вызвать не может. Юзай fetch когда хочешь сначала посмотреть что прилетело, pull когда сразу готов принимать.
    Ответ написан
    Комментировать
  • Какой бренд батарейки CR2032 на данный момент лучше всего для материнской платы?

    @Drno
    они плюс \ минус одинаковые.

    более дорогие батарейки просто дольше могут лежать в коробке ДО начала использования
    Ответ написан
    Комментировать
  • В BIOS исчезла запись Linux (GRUB) в Boot Priority, как её восстановить?

    opium
    @opium
    Просто люблю качественно работать
    файлы grub целы, слетела именно nvram-запись — сброс cmos, апдейт прошивки или fastboot винды сносят её независимо от того что лежит на esp. переустанавливать grub не надо, грузись с любого линукс-live и добавь запись руками:
    sudo efibootmgr --create --disk /dev/sdX --part N --loader /EFI/GRUB/grubx64.efi --label "grub"
    , диск и номер раздела N смотри через lsblk. после этого пункт вернётся и в Boot Priority
    Ответ написан
    2 комментария
  • Почему зависают прерывания клавиатуры (IRQ1) после первого нажатия при переходе на GOP в самописной ОС (x86_64)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    При старте экран чёрный (так и задумано на этом этапе), но клавиатура реагирует на клавишу ESC — код отрабатывает корректно.

    Это потому, что код крутится вот в этом месте, опрашивая клавиатуру и ожидая нажатия клавиши без участия прерываний.

    Прерывания будто блокируются после первого-второго вызова.

    Это так, но они блокируются не из-за обработчика прерываний клавиатуры, а из-за dummy_handler_asm, который вызывается по таймеру, но не завершается отправкой кода окончания обработки прерывания в PIC.
    Вот такое изменение фиксит эту проблему:
    diff --git a/system/drivers/interrupts.asm b/system/drivers/interrupts.asm
    index 75ea06c4bc2f..17ac87fa6b06 100644
    --- a/system/drivers/interrupts.asm
    +++ b/system/drivers/interrupts.asm
    @@ -98,5 +98,7 @@ dummy_handler_asm:
         push rax
         mov rax, 0xFEE000B0
         mov dword [rax], 0
    +    mov al, 0x20
    +    out 0x20, al
         pop rax
         iretq


    Кроме того
    твой код выделяет память вызовами bs->AllocatePages(2, 4, ...), а 2 -- это AllocateAddress, т.е. запрос на выделение памяти по фиксированному тобой адресу. У меня этот код сразу возвращает ошибку, а вот bs->AllocatePages(0, 4, ...) -- работает:
    diff --git a/boot/bootloader.c b/boot/bootloader.c
    index 377e907c1728..5ae82dca7fc0 100644
    --- a/boot/bootloader.c
    +++ b/boot/bootloader.c
    @@ -59,7 +59,7 @@ EFIAPI long long efi_main(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
         // 1. Выделяем память под скрытый буфер экрана (1024 * 768 * 4 байта = 3145728 байт = 768 страниц по 4КБ)
         unsigned long long v_buffer_addr = 0;
         // 2 = EfiAllocateAnyPages, 4 = EfiRuntimeServicesData (чтобы ядро гарантированно видело эту память)
    -    long long status = bs->AllocatePages(2, 4, 768, &v_buffer_addr);
    +    long long status = bs->AllocatePages(0, 4, 768, &v_buffer_addr);
         if (status != 0) {
             while(1) { __asm__ __volatile__("hlt"); }
         }
    @@ -85,7 +85,7 @@ EFIAPI long long efi_main(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
     
         unsigned long long map_buffer = 0;
         // Выделяем временную память под саму карту памяти (округлим map_size до страниц)
    -    bs->AllocatePages(2, 4, (map_size / 4096) + 1, &map_buffer);
    +    bs->AllocatePages(0, 4, (map_size / 4096) + 1, &map_buffer);
     
         // Получаем финальную карту памяти и MapKey
         status = bs->GetMemoryMap(&map_size, (void*)map_buffer, &map_key, &desc_size, &desc_ver);
    Ответ написан
    Комментировать
  • Зачем в этой схеме блока питания резистор R4?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    В вашем вопросе чувствуется сомнение - а нужен ли этот R4? Да, этот резистор необязателен, составной ЭП (который иностранцы называют схемой Дарлингтона) будет работать и без него. Существуют и транзисторы Дарлингтона (как единый электронный компонент):
    %D0%B4%D0%B0%D1%80%D0%BB%D0%B8%D0%BD%D0%B3%D1%82%D0%BE%D0%BD%D0%B0%20%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B8%D1%81%D1%82%D0%BE%D1%80.JPG И даже в многоступенчатых составных ЭП можно обходиться без этих резисторов:
    image-41.png
    Так зачем же он нужен? Ведь без него весь коллекторный ток первого транзистора, не ответвляясь в резистор, идёт в базу второго, коэффициенты усиления перемножаются, и от такого составника можно получить максимально возможное усиление по току. Однако максимум усиления нужен не всегда, а вот повышение стабильности работы схемы, её быстродействия, а также более симметричная обработка положительных и отрицательных полуволн входного сигнала (т.е. фактически снижение его искажений), обеспечиваемые этим резистором, часто бывают важнее.
    Ответ написан
    2 комментария
  • Как сделать скриншот второго монитора на С++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Можно посмотреть, как это делается тут: https://source.chromium.org/chromium/chromium/src/...

    Кажется, GetDC(nullptr) уже выдает виртуальный дисплей со всеми мониторами. Потом через EnumDisplayDevices можно получить координаты нужного вам дисплея и обрезать по ним: https://source.chromium.org/chromium/chromium/src/...

    Координаты всего виртуального дисплея берутся через SM_CXVIRTUALSCREEN*: https://source.chromium.org/chromium/chromium/src/...
    Ответ написан
    Комментировать
  • Как исправить ошибки шаблона WP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    - $attributes.=
    + $attributes =
    Ответ написан
    Комментировать
  • Как переместить неразмеченную область ext4?

    @rPman
    Конечно можно (лучше это делать, загрузившись в livecd с usb/cdrom, так как работа с файловой системой /dev/sda1 в примонтированном состоянии не рекомендуется)
    отключить swap sudo swapoff -a
    с помощью gparted удалить /dev/sda2 и /dev/sda5
    и расширить /dev/sda1, оставив место для swap
    создать новый /dev/sda2 для swap и отредактировать /etc/fstab, указав новый путь до swap
    Ответ написан
    4 комментария
  • Как хранить публичный медиа-контент сайта?

    @Drno
    вначале у себя, когда понадобится - сторонний s3. их как минимум есть несколько крупных

    яндекс \ вк \ таймвеб \ makecloud \ сбер итд...

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

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Кроме новомодного s3 есть обычные шаред-хостинги. Для хранения можно найти за копейки.
    Но для небольшого проекта логично:
    Хранить локально в файловой системе там же, где расположен веб-сервер
    Ответ написан
    Комментировать
  • Поможете собрать компьютер для запуска виртуальных машин и коддинга?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Если комп чиста под виртуалки - не делай brain fucking, бери бу сервер и ставь ESXi или Proxmox, Нафиг на серверном компе винда?
    Бу сервера можно брать тута. Если 150к - это бюджет чиста на сервак, то можно ничего себе так собрать. Главное - это конечно память и стор. На памяти не экономить, брать не менее 64G. На сторе тоже не экономить - лучше проц взять более раннего поколения, но на стор брать новые диски.
    Ответ написан
    Комментировать
  • Поможете собрать компьютер для запуска виртуальных машин и коддинга?

    @rPman
    Первое, брать процессор не старее 10-15 лет (можно конечно, если это серверные ревизии, вроде бы китайцы завалили рынок дешевыми ксеонами, но они сами по себе медленные), тогда особо не будут заметны накладные расходы на виртуализацию (к примеру в 2013 году они могли доходить до 30%, сейчас это порядка 10% но сравнивать сложно, только синтетика покажет заметные затраты).

    Второе, больше оперативной памяти, причем много это значит как можно больше. Правильно конечно от задачи исходить, но 'будут использоваться для программирования станков' совсем ничего не помогает.
    Поэтому стартовый объем - 64гб,... позволит запускать с десяток windows машин без особого напряга.

    Третье, быстрый ssd диск (рекомендую nvme но выбирать не по pci-e и гигабайтам в секунду а по основному параметру: TBW - сколько записей можно делать на диске, обычно он хорошо корелирует с надежностью модели) и достаточно большой, для хранения образов. Если одновременно будут работать несколько виртуальных машин на windows, они будут активно использовать диск, и это будет очень заметно, особенно при запуске приложений. Одна windows - это порядка 70гб (сначала будет 30гб но уже через неделю обновления доведут до максимума).
    upd. бывает что два диска может быть лучше чем один диск размера их суммарного. Независимая нагрузка на диски например.
    Еще, заранее рассматривайте хорошее охлаждение для nvme, в идеале - активную.

    Остальные комплектующие подбирать под оставшийся бюджет.

    Совершенно не обязательно брать именно серверные платформы. Они не для ваших бюджетов, да и нужны там где высокие скорости сети, требования к шарингу gpu и т.п. Выбирайте дискретную видеокарту, не стоит нагружать основную оперативную память задачами вывода видео, пусть хоть самую дешевую (но осторожно, смотрите наличие поддержки вашей версии windows, а то можно получить нежданчик с драйверами).

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

    Софт - не обязательно серверные версии windows, но обязательно pro/enterprise версии, особенно это актуально для тех кто лицензии покупает. Помним, вам придется покупать лицензию на каждую машину, запускаемую в виртуалке. Серверные ревизии позволят чуть чуть сэкономить, когда количество одновременно запущенных машин машин - десятки, но.. смотрите, а ваш софт умеет работать с серверными ревизиями ОС?
    Я бы все же рекомендовал linux (тот же debian) как хост, нервы будут целее, особенно когда начнете пробрасывать порты и железо внутрь виртуалок (бывает для станков это критично).

    p.s. если деньги компании, то покупать на avito/ozon может быть проблематично
    Ответ написан
    Комментировать
  • Как устранить микрофризы в Supermium (YouTube/чат-боты) на Windows 7 с i5-12400F и RTX 3050?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Надо сразу указывать, что мать китайская, потому что обычно вопросы "почему у меня что-то не так, как должно быть" в сочетании с "китайская мать" отлетают сразу. Китайцы особо не утруждают себя соблюдением спецификаций, поэтому мать может вести себя буквально как ей вздумается.
    Ну и насчет визуала. Я с этим частично согласен, но проблема в том, что win7 и новые игры в принципе несовместимы. Поэтому если только в визуале дело (в чем я вовсе не уверен) - classic start menu, winaero tweaker - и "будет людям счастье, счастье на века" :)
    Ответ написан
    Комментировать
  • Платный прокси сервер для Телеграмма MTProto или собственный сервер — что сейчас лучше?

    @tstsd
    Пробовал оба варианта.

    Несколько платных MTProto-прокси работали нормально, но периодически возникали проблемы со стабильностью. В какой-то момент решил сравнить их с собственным сервером на VPS.

    Оказалось, что поднять свой MTProto намного проще, чем кажется. Сервер я оплачивал дольше, чем настраивал. Нашел инструкцию, где установка выполняется буквально одной командой, а весь процесс занял около 5 минут:

    Инструкция по установки своего MTProto на арендова...

    После настройки получил полностью свой MTProto-сервер без зависимости от сторонних сервисов. По моим наблюдениям такой вариант оказался стабильнее большинства платных MTProto-прокси, которые использовал раньше.

    Если не хочется разбираться с VPS вообще, то платные решения тоже рабочий вариант. Но если сервер уже есть или планируется использовать VPS для других задач, собственный MTProto выглядит более выгодным решением.
    Ответ написан
    4 комментария
  • Хочу попробовать стать системным аналитиком, с чего лучше начать и во сколько попытаться найти работу?

    opium
    @opium
    Просто люблю качественно работать
    Если ты не умеешь Гугл и смотреть Ютюб ты вчера был уже вне рынка, если сегодня ты не умеешь ии, ты просто никому не нужен на рынке труда
    Ответ написан
    1 комментарий
  • Возможно ли использовать майнинговые видеокарты на Win 7?

    @Drno
    купи нормальную карту. не делай себе голову
    Ответ написан
    4 комментария
  • Не устанавливает драйвера для видеокарты Asus tuf f16, что делать?

    @Zerg89
    Закручивают гайки еще сильне, я понимаю что сильно старое оборудование не хотят поддерживать, но два покаления такое это уже через чур
    Ответ написан
    Комментировать
  • Как сделать что бы переменная avatar($ank['id']); не конфликтовала с другим файлом?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ну так не используйте одинаковые массивы $ank[] одновременно в head.php и komm.php, да и всё.

    P.S. А вот SQL-запросы нужно переделывать, иначе взламывать будут такой тяп-ляп одной левой!
    Ответ написан
    1 комментарий
  • Как правильно понять трехзвенную архитектуру?

    @rPman
    Формально, в данной схеме можно исключить nginx.

    Еще , если хорошенько подумать, можно было бы избавиться и от django (чем занимается django если по факту нужно обслуживать api для приложения, но разработчикам бакэнда виднее).

    Главная причина, почему 'обычно' именно так делают, это вопросы безопасности и простоты разработки.
    * nginx (или apache), обычно используют как сервер
    - который обслуживает ssl шифрование (сертификаты для https), обслуживание простых логов (сбор статистики например) и защита от одного типа ддос (уже редкий случай).
    spoiler
    держит воркеров на случай, когда злоумышленник открывает соединение но ничего в него не пишет и не читает (если бы не было nginx сервера, то бакэнд тратил бы кучу ресурсов на обслуживание таких зомби-соединений), к сожалению если правильно слать нужные запросы и забирать хотя бы байт ответа, то нагрузка на бакэнд все же пролезет.

    - очень эффективная отдача статичных файлов с диска
    Веб сервера вылизаны на столько, что написать реализацию простой отдачи файлов лучше наверное уже не возможно, поэтому для статических файлов (картинки, стили, видеофайлы) выгоднее и проще отдавать это на откуп nginx (в некоторых случаях можно вообще обойтись только веб сервером, тупой пример basic http auth + отдача статики)

    - у веб серверов обычно есть продвинутый функционал с помощью расширений, этим редко пользуются (хотя, все уже привыкли к .httaccess у apache, а ведь это его расширение) но часть функционала можно очень эффективно и просто перенести на nginx/apache

    * и саму базу данных наружу не открывают, из-за того что в ней нет механизмов защиты от ddos, практически никакой... плюс лишняя защита от брутфорса паролей или глупых админов, делающих пароли простыми.
    Ответ написан
    Комментировать
  • Можно ли на Django сервере разместить базу данных?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Можно
    Ответ написан
    Комментировать