Задать вопрос
  • SSD разбивка на неиспользованые разделы?

    @rPman
    большинство контроллеров SSD дисков, автоматически перемещают данные с часто используемых (на запись) ячеек на менее используемые, в среднем продлевая таким образом срок жизни диска. Этот процесс прозрачный для пользователя, так как внутренние сектора мапятся на пользовательские как угодно перемещанным образом. Таким образом для пользователя нет разницы, в какой именно части диска находится 'не используемые'

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

    Если по простому считать, при использовании только половины емкости диска, должно кратно (формально не в два раза, так как для переноса 1 единицы информации записей будет произведено две) увеличить срок годности диска (с точки зрения ресурса записи ячеек)

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

    Поэтому повторюсь, нет нужды ограничивать себя в размерах доступного пространства такими способами, размечай весь диск и проследи чтобы в BIOS и ОС была включена поддержка TRIM.
    Ответ написан
    1 комментарий
  • Как правильно создать таблицу в которой будет храниться инфо о посте?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Гугл поступает совершенно правильно. Потому что делать такую белиберду никому просто и в голову не придёт.

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

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Учтите, что язык программирования - это просто набор спецификаций и правил. Он написан на английском языке.

    Если же вас интересует на чем запрограммированы компиляторы языка С, то самые популярные нынче развивающиеся компиляторы написаны на C и C++ соответственно:
    gcc: https://github.com/gcc-mirror/gcc
    clang: https://github.com/llvm/llvm-project/tree/main/clang

    Вы спросите, а как компилятор языка Си написали на самом Си? Ответ прост - первые компиляторы были написаны на ассемблере. Они были очень простыми и тупыми, возможно не умели понимать все тонкости языка. Когда появился достаточно работающий компилятор с минимальным набором функций, можно было переписать его на Cи и скомпилировать первым компилятором. После этого стало можно компилировать компилятор на Си самим собой.

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

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

    @tehfreak
    Вот современный способ проверки на соответствие медиавыражению:
    if (window.matchMedia('(max-width: 700px)').matches) {
      for (const linkElement of document.querySelectorAll('.order-project__more-details-btn')) {
        linkElement.setAttribute('href', 'examples-foundation-640')
      }
    }

    А вот документация: https://developer.mozilla.org/ru/docs/Web/API/Wind...
    Ответ написан
    1 комментарий
  • Какие проблемы могут возникнуть при работе программы с файлом БД из удаленной папки?

    @Voland69
    Главная проблема - конкурентный доступ. SQLite емнип не предполагает расшаренного доступа к файлу БД.
    Вторая проблема - устройство системы разграничения доступа - или у клиента будет доступ на запись в файл (тогда он может сделать все, включая удаление файла), или доступ только на чтение.
    Третья проблема связана с главной - даже если получится конкурентный доступ, транзакций не будет уж точно, что имхо при многопользовательском режиме критично.

    В общем я бы предложил не исключать вариант с сервером БД.
    Ответ написан
    Комментировать
  • Какие проблемы могут возникнуть при работе программы с файлом БД из удаленной папки?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Разнообразные - от очень медленной работы до порчи данных. SQLite не предназначена для конкурентного доступа, используйте полноценную СУБД.
    Ответ написан
    1 комментарий
  • Почему неправильно выводит русские символы?

    karabanov
    @karabanov
    Системный администратор
    Добавь в скрипт ini_set('mssql.charset', 'UTF-8');
    Ответ написан
    3 комментария
  • Зачем нужно усложнять код?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В твоём примере последняя итерация лишняя - i выходит за пределы массива, тебе надо было написать либо так:
    function funk (arr) {
      for(let i = 0, length = arr.length - 1; i < length; i++) {
        if(arr[i] === arr[i+1]) {
          return true;
        }
      }
      return false;
    }

    либо, лучше, так:
    function funk (arr) {
      for(let i = 1; i < arr.length; i++) {
        if(arr[i - 1] === arr[i]) {
          return true;
        }
      }
      return false;
    }

    Также заметь, что в современном JS никто не использует сравнение с приведением типов(==) из-за его ненадёжности, только полноценное сравнение - ===.

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

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Нет, не является. Зарядное устройство для ноутбука стабилизирует по напряжению, а не по току, поэтому оно будет, в рамках своих возможностей, давать столько тока, сколько берет ноутбук.
    Ответ написан
    Комментировать
  • Почему includes у массива сначала возвращает true, потом false?

    steff
    @steff Автор вопроса
    Спасибо, alexalexes. Дело было в типе данных. Первый раз функция вызывалась с конкретным номером страницы, аргументом которой было число. При последующих вызовах значение бралось из localStorage, путем преобразования в массив строковых элементов. Там-то и было несоответствие.
    Исправил всё не строки.
    Ответ написан
    Комментировать
  • Когда нужно писать имя таблицы в запросе?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Каждый сам творец своего геморроя.

    Настоятельная рекомендация. Если источником записей запроса (всего, целиком) является только одна таблица - имена полей можно не указывать. Во всех остальных случаях - указывайте алиас таблицы для абсолютно каждого поля (включая имена обобщённых полей в USING и при NATURAL JOIN), кроме имён полей выходного набора, используемых в пост-группировочных выражениях. Это позволит гарантировать отсутствие неоднозначностей.

    Под понятием "таблица" следует понимать строго один экземпляр исходного набора данных. Иными словами, запрос, в котором используется две копии одной таблицы, либо используется дополнительная синтетическая таблица констант, запросом с источником данных из одной таблицы не является.

    ---

    В некоторых диалектах указание алиаса может быть обязательно и по причине интерференции имён из разных пространств.

    Например, в хранимых объектах MySQL при совпадении имени поля таблицы с именем локальной переменной обращение без указания алиаса - это всегда обращение к переменной. Поэтому для MySQL правило ещё строже - алиас указывай всегда.

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Перевести дату в стандартный формат YYYY-MM-DD или в unix timestamp, потом обычным сравнением.
    Ответ написан
    Комментировать
  • Как на windows установить две версии одно го и того же программного обеспечения?

    @Drno
    воспользуйтесь портабл версией...
    https://portableapps.com/apps/graphics_pictures/in...
    Ответ написан
    Комментировать
  • Почему вместо кириллицы знаки вопросов?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Давно пора запилить аналог вот этого ответа.
    А то же ведь раз в три дня один и тот же вопрос - кракозябры, вопросики, ромбики.
    И везде одна и та же ересь про "meta charset" в ответах.

    Именно в варианте чеклист, чтобы каждый проверял по конкретным пунктам, в которых четко написано, что делать, вместо невнятного мычания "ну у меня там утээф и еще здесь и вот тута"

    В Mysql
    • Кодировка, которую надо выставлять, называется utf8mb4
    • Что там стоит на "всей БД" абсолютно без разницы. Кодировка должна быть указана для таблиц (в отдельных случаях - для поля) при создании. Проверить можно командой SHOW CREATE TABLE table_name

    В PHP
    • Должна быть быть выставлена кодировка соединения с БД
      • в PDO через DSN $dbh = new PDO('mysql:host=...;charset=utf8mb4');
      • в mysqli $mysqli->set_charset('utf8mb4');


    В браузере
    Для того, чтобы браузер корректно отображал кодировку, её надо указать HTTP заголовках.
    • Либо default_charset = "utf-8" в php.ini.
    • Либо руками в коде header('Content-Type: text/html; charset=utf-8');

    Проверять в консоли разработчика: вкладка Сеть, кликаем на запрос, смотрим заголовки
    Ответ написан
    Комментировать
  • Онлайн БД для тренировки. Или как проверить запрос?

    colonel
    @colonel
    Разработчик PHP, Laravel
    Ответ написан
    Комментировать
  • Как из массива объектов удалить дублирующиеся объекты?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Обновлённый ответ.

    1. Можешь все объекты преобразовать в массивы без поля ID. Далее просто использовать array_unique($collection, SORT_REGULAR);

    2. Можешь определить метод __toString() у класса DonateOperation. Как-нибудь так:

    public function __toString(): string
    {
        $attrs = (array)$this;
        unset($attrs['id']);
        return json_encode($attrs);
    }


    Тогда array_unique будет работать применительно к исходной коллекции объектов.

    3. Брут-форс в лоб. Самый долгий способ. С небольшой оптимизацией:

    $collection = [...]; //исходная коллекция объектов
    $found = []; //коллекция найденных массивов для быстрой проверки
    $unique = []; //результирующая коллекция
    
    foreach ($collection as $item) {
        //преобразуем объект в массив без поля "id"
        $array = (array)$item;
        unset($array['id']);
        
        //ищем полученный массив в массиве $found
        if (!in_array($array, $found)) {
            $found[] = $array;
            $unique[] = $item;
        }
    }
    Ответ написан
    2 комментария
  • Как отсортировать многомерный массив PHP со сложными условиями?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    array_multisort(
        array_column($array, 'unread_pm'), SORT_DESC, 
        array_column($array, 'last_date'), SORT_DESC, 
        $array
    );


    Если вы делаете выборку из БД то сортировку можно сделать в SQL-запросе
    SELECT ... ORDER BY unread_pm DESC, last_date DESC
    Ответ написан
    4 комментария
  • Нужни ли знания математики для unity 2d?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Нужны. Желательно все школьные, минимум
    Если уж так по темам - то приблизительно:
    - базовая математика (класса до 6)
    - векторная алгебра
    - тригонометрия
    - планиметрия (т.е. геометрия на плоскости)
    - все сопутствующее для понимания вышеперечисленного
    Ответ написан
    2 комментария
  • Как сделать появление клавиатуры при нажатии на инпут в мобильных версиях?

    DanArst
    @DanArst Куратор тега CSS
    Гриффиндор в моде при любой погоде!
    Дык она в принципе будет появляться при клике) ничего писать не надо
    Ответ написан
    6 комментариев