• На чём написан язык программирования C?

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

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

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

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

    А так, наверно, есть куча неподдерживаемых устаревших компиляторов Си на всевозможных языках.
    Ответ написан
    1 комментарий
  • Как при достижении условного брейкпоинта ширины экрана сменить через 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
    Тлен
    В твоём примере последняя итерация лишняя - 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');

    Проверять в консоли разработчика: вкладка Сеть, кликаем на запрос, смотрим заголовки
    Ответ написан
    Комментировать
  • Как из массива объектов удалить дублирующиеся объекты?

    @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
    Э, Ойboy!
    Дык она в принципе будет появляться при клике) ничего писать не надо
    Ответ написан
    6 комментариев
  • ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ?

    SagePtr
    @SagePtr
    Еда - это святое
    Считали, сколько вариантов для этого придётся перебрать? У вас есть в распоряжении столько миллиардов лет?
    Ответ написан
    4 комментария
  • Вытащить из json значение?

    New_Horizons
    @New_Horizons
    Бред:
    Либо так:
    $recaptcha = json_decode($recaptcha, true);
    echo $recaptcha['error-codes'][0];

    Либо так:
    $recaptcha = json_decode($recaptcha);
    echo $recaptcha->{'error-codes'}[0];

    Читаем про второй аргумент функции json_decode
    Ответ написан
    Комментировать