Задать вопрос
  • Как хранится struct в памяти?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зависит от компилятора и заданных при компиляции опций. Например, при плотной упаковке (#pragma pack(1)) каждый элемент структуры занимает ровно столько, сколько ему необходимо. А при выравнивании на 64 бита (#pragma pack(8)) под каждый элемент выделится память, кратная 8 байтам и достаточная для размещения элемента. Для разных архитектур процессоров могут быть доступны разные настройки выравнивания.
    Ответ написан
    Комментировать
  • Можно ли доверять "CPU Support List" размещенного на оф. сайте производителя материнской платы?

    @apppostol
    Доверять можно.
    Список совместимости гарантирует как ни странно, совместимость устройств. Если вы вставите процессор в материнскую плату, он заведется и будет работать = совместимы.
    Ответ написан
    2 комментария
  • Можно ли переустановить убунту и при этом сохранить данные на компе?

    @pfg21
    ex-турист
    конечно.
    папка с проектами наверн лежит в хомяке. у меня хомяк пережил штук пять переустановок.
    сейчас на домашнем компе два установленных линукса (поиграться надо было) на отдельных разделах, у которых общий хомяк :)
    файлы базы данных предположительно лежат гдето в /var

    вообще приди к мысли что подключение отдельных разделов для некоторых корневых папок типа /home /var и т.д. имеет большой прикладной смысл.
    разделяешь систему и данные.
    Ответ написан
    4 комментария
  • Как рандомизировать массив с сохранением рандомного порядка?

    @rPman
    Перемешивай массив с помощью shuffle, он использует какой то свой сид, который при запуске php сбрасывается, т.е. каждый раз одинаково

    либо поищи реализации на основе php-шного mt_rand и сидируй его mt_srand (тебе будет достаточно хранить сид, чтобы уникально перемешивать)
    Ответ написан
    Комментировать
  • Как рандомизировать массив с сохранением рандомного порядка?

    delphinpro
    @delphinpro
    frontend developer
    ЕСЛИ нет данных в кэше
      перемешать массив 
      положить данные в кэш
    КОНЕЦ ЕСЛИ
    
    взять данные из кэша
    Ответ написан
    Комментировать
  • Почему запись в файл добавляется в конец?

    @rPman
    Для позиционирования в файле нужно пользоваться fseek а для получения ftell.

    fgets смещает указатель на следующую строку, значит fwrite будет ее затирать. Значит если у тебя была последняя строка - значит указатель будет в конце файла.

    Теперь о главном - замена строки в текстовом файле нормально будет работать только если размер этой строки совпадает с прошлой, иначе при меньшем размере новой строки в файле останется мусор от прошлой, а при большем - будут затерты следующие строки. Т.е. понадобится сдвигать содержимое всего файла после текущей позиции или полностью перезаписывать весь файл, причем если оперативной памяти хватает то это легко - загрузил построчно file, изменил нужную строку в массиве, и сохранил с помощью к примеру implode+file_put_contents или циклом по массиву и fputs.

    Именно по этой причине текстовые форматы данных не подходят для хранения нескольких записей. Допускается по одному файлу на запись, а запись это текстовая строка.

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

    Настоятельно рекомендуется не изобретать паровоз и пользоваться например sqlite, универсальная функциональная sql база данных, не требующая обслуживания и установки (работает на основе файла без подключения, как библиотека).
    Ответ написан
    5 комментариев
  • Объясните за LIMIT - правильно ли работает?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    LIMIT - это никакой не номер среза! (MySQL понятия не имеет о ваших срезах)
    LIMIT - это количество строк в выдаче которое будет пропущено, то есть LIMIT 65, 10 означает - возьми все строки и выдай 10 строк начиная с 66-ой строки

    Пример: https://sqlize.online/s/l2

    Если вам нужна пагинация, то разбиение на страницы придется делать самостоятельно. Например 5-я страница из 10 строк будет выбираться так:
    SELECT *
    FROM tbl
    ORDER BY ...
    LIMIT 40, 10

    так же можно применять синтаксис OFFSET:
    SELECT *
    FROM tbl
    ORDER BY ...
    LIMIT 10 OFFSET 40

    https://sqlize.online/sql/mariadb/f79285496f750423...
    Ответ написан
    4 комментария
  • Почему файл из github постоянно на ~37% больше, чем указан?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вы сами то открывали файл по ссылке из data.git_url?
    Там отдаётся JSON с файлом, закодированным в Base64.
    В Base64 каждые 6 бит исходного файла кодируются одним символом (8 бит) текста, а после каждых 60 символов добавляется символ переноса строки. Вот и получаем ~ (2/6 + 8/360) = 35.6% дополнительно к объёму.
    Если хотите получить файл сам по себе, то используйте поле download_url.
    Ответ написан
    4 комментария
  • Как решить "class mysqli not found" при подключенном расширении mysqli?

    @lyrion Автор вопроса
    Дмитрий, в комментариях дал ответ.
    Проблема оказалась в том, что файл я вызывал через консоль, а php-cli берет не тот файл php.ini, что apache (путь который мы получали через phpinfo() ).
    Проверить путь к используемому файлу можно командой:
    php --ini
    Там у меня высветился другой ini файл. Когда я в нем раскомментировал расширение mysqli все заработало.
    Ответ написан
    Комментировать
  • Что означает +0 в запросе SQL?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Конвертирование в число

    StackOverflow
    Ответ написан
    Комментировать
  • Потянет ли ноут монитор в 2-4к 144 гц?

    xez
    @xez
    TL Junior Roo
    Видеокарта точно потянет.
    hdmi 1.4 потянет 4K, но только на 30hz
    Насчет того, что там из type-c с переходником удасться выжать - надо эксперементировать (могут быть проблемы как с переходником, т.к. не все они одинаковы, так и с самим разъемом).

    Ну и если говорить об играх - мобильная 3050 в 4К разрешении в современных AAA не выдаст 60fps точно.
    Ответ написан
    4 комментария
  • Nginx + php-fpm как держать 5-10 тысяч запросов к серверу апи?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Выглядит как подходящий момент, чтобы реализовать вызов API, получающий сразу пачку информации, а не по одной записи.
    Ответ написан
    1 комментарий
  • Как правильно называются аргументы 'sprintf' подобных функций? 'printf-аргументы' или 'sprintf-аргументы'?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    это интерполяция, соответственно аргументы называются "значениями для замены плейсхолдеров"
    Ответ написан
    Комментировать
  • Как скопировать rsa ключ на другой линукс сервер?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    руками залогинься на сервер и закинь публичный ключ в ~/.ssh/authorized_keys

    еще почитай про файл ~/.ssh/config
    там можно настроить все опции для ssh подключений независимо от команды
    Ответ написан
    Комментировать
  • Как получить ключ 1-го уровня по значению из массива 2-го уровня?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    echo implode(
    	', ',
    	array_filter(
    		array_keys($arr),
    		fn($key) => in_array($person, $arr[$key]),
    	),
    );
    Ответ написан
    Комментировать
  • Зависают Linux дистрибутивы, как исправить?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Хм.

    Мать - неведомый китаец из тех, что делают с поддержкой ксеонов, но разумеется без ECC-памяти ;) И те, кто фапает на "ксеон на рабочей станции" и пытается понять - что же не так в этой неведомой китайской матери? А примерно то же, что в китайских флэшках с али, где реальная емкость может оказаться 10% от заявленной.

    Кроилово ведет к попадалову
    Ответ написан
    Комментировать
  • Composer как сгенерировать composer.json с заранее выбранными пакетами?

    У команды init достаточно большой перечень опций, так что можно в саму команду прописать все дефолтные значения, и каждый последующий проект инициализировать ею:
    composer init --name='gordinskiy/new_package' \
        --description='Project description' \
        --type='library' \
        --author='Dmitriy Gordinskiy' \
        --license='MIT' \
        --require='php:>=8.2' \
        --require='webmozart/assert:^1.11' \
        --require-dev='phpunit/phpunit:^10.3' \
        --require-dev='vimeo/psalm:^5.11' \
        --require-dev='phpstan/phpstan:^1.10'
    Ответ написан
    Комментировать
  • Для чего нужно дублирование в папках avaliable и enabled?

    paran0id
    @paran0id
    Умный, но ленивый
    Не дублирование, а symlink. Примерно как ярлык. В avaliable храним конфигурацию хоста, в enabled кидаем симлинк, чтобы включить его. Nginx считывает конфиги из enabled. Если хотим выключить, удаляем симлинк, а файл конфигурации остается лежать.
    Ответ написан
    2 комментария
  • Какие особенности разгона ОЗУ с 3200mhz на 3600mhz?

    xez
    @xez Куратор тега Железо
    TL Junior Roo
    Самый лучший способ - посмотреть в QVL матери и выбрать быструю память из списка.
    Память не из QVL тоже может завестись с XMP профилем, а может заработает только на частоте без разгона, ну или какой-то промежуточный вариант возможен.
    В XMP профиль обычно зашита максимальная частота (т.е. 4000 в вашем случае).

    Предлагаю такой план:
    1. Устанавливаете XMP профиль, пробуете.
    2. Если не заработало, не включилось или работает с ошибками - устанавливаете XMP профиль, но снижаете частоту до 3200.
    3. Если не помогло - устанавливайте по дефолту и пробуйте разгонять.

    Самое главное, о чем стоит помнить: разгон памяти не дает как правило, существенного прироста производительности. 3200 - вполне хороший вариант, 3600 - прекрасно, дальше 3600, скорее всего, разницы не будет вообще никакой.
    Ответ написан
  • Как влияют инфракрасные обогреватели на ПК и оргтехнику?

    Stalker_RED
    @Stalker_RED
    У меня лет шесть висел излучатель UFO на стене, на 1.8кВт, если не ошибаюсь, метрах в трех от компьютера. Работал не постоянно, а только когда батареи не вытягивали. Ухо припекало мне - было дело, что отсаживался от этой штуки подальше. Никаких особых воздействий на пластик я не заметил.
    Ответ написан
    2 комментария