Задать вопрос
  • Как создать свой PL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    1 комментарий
  • Как создать свой PL?

    Vindicar
    @Vindicar
    RTFM!
    Даже для простого ЯП тебе придётся решить минимум четыре задачи:
    1. Лексический анализ. Входной текст нужно превратить в цепочку токенов, например z = x + y превратится в что-то типа
    [ (token.IDENTIFIER, 'z'), (token.OPERATOR, '=') (token.IDENTIFIER, 'x'), (token.OPERATOR, '+') (token.IDENTIFIER, 'y') ]

    2. Синтаксический анализ. Тебе нужно превратить цепочку токенов в древовидную структуру. Корень дерева - программа целиком, промежуточные узлы - элементы программы (функции, составные операторы, сложные выражения и пр.), листья - отдельные элементы сложных выражений и примитивные операции без параметров (типа pass в питоне).
    Например цикл while будет иметь два дочерних узла: выражение-условие и тело цикла.
    3. Области видимости. Тебе нужно иметь возможность сопоставить имя(идентификатор) и сущность (переменную, функцию и т.п.).
    Самый простой способ - позволить узлу дерева описывать идентификаторы, которые известны в этом узле. Тогда при раскрытии идентификатора достаточно подняться вверх по дереву, пока не найдёшь нужное имя.
    4. Выполнение. Так как ты хочешь интерпретируемый язык, то выполнение будет сводиться к обходу дерева в глубину. Некоторые операторы типа break могут вмешиваться в этот порядок. Это описывается паттерном Интерпретатор из набора Банды Четырёх.

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

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Ответ написан
    Комментировать
  • Насколько актуальна книга Приемы объектно-ориентированного проектирования. Паттерны проектирования в 2022 году?

    @d-sem
    Классика актуальна всегда. Вопрос в том, что не нужно воспринимать книгу как догму и стоит просто черпать вдохновение для решения тех или иных стандартных задач. Не нужно тянуть паттерны ради паттернов туда где они не нужны.
    Ответ написан
    Комментировать
  • Стоит ли ставить i7-i9 в Mini-ITX сборку?

    15432
    @15432
    Системный программист ^_^
    65 ватт это только на бумаге ("TDP в среднем",) жрут они и под 200 Вт в пике. Можно попробовать найти адекватный кулер, что влезет в Mini-ITX, например, один крупный вентилятор на горизонтальном радиаторе. Кстати при формате "открытый стенд" у вас кулер может торчать как угодно далеко, влезет любой. При плохом охлаждении i5 от i7/i9 особо не отличается (троттлинг съедает весь турбо буст), потому их в основном и ставят (+ цена).

    Если видеокарта не нужна, и хочется ещё больше миниатюризировать сборку, посмотрите в сторону barebone корпусов, возможно даже где весь корпус в роли радиатора. В идеале можно к Dell 7020 или даже 7050 стремиться, вот там точно миниатюризация при +/- полноценном CPU.

    Для открытых стендов mini-ITX когда-то присмотрел вот такое шасси (находил на али незадорого)
    https://www.amazon.com/Motherboard-Computer-Frame-...
    но до покупки дело так и не дошло.
    Ответ написан
    2 комментария
  • Как остановить выполнение js кода с условием?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Код располагайте не «ниже», а «позже»:
    • оберните в функцию и вызывайте после получения данных («коллбек»).
    • или откройте для себя волшебный мир промисов и асинхронного JavaScript.
    Ответ написан
    Комментировать
  • Как грамотно создать Linux дистрибутив?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Читать Linux from scratch и Beyond linux from scratch.

    Самый главный вопрос здесь - зачем и для чего?
    Ответ написан
    2 комментария
  • Существует ли бесплатный API, предупреждающий о подземных и надземных пешеходных переходах?

    @pfg21
    ex-турист
    роутер osrm + залить выгрузку осм необходимого места + допилить профиль роутинга под свои нужды.
    плюс обратить на теги https://wiki.openstreetmap.org/wiki/RU:Key:wheelchair
    это если для десктопа/интернета.

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

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Прошу прощения, что не по теме, но, думаю, будет полезно. Обратите внимание на визы O1, они все еще работают для ИТ-специалистов, при этом на них нет лотереи. Собрать подходящий для этой визы кейс для ИТ-специалиста сложно, но можно. Возможно, вместо диплома стоит обратить внимание именно на этот вариант.

    По теме - все российские ВУЗы вышли из Болонской системы, бакалавра больше не дадут. Как обучение будет признаваться дальше - еще более сложный вопрос. Поэтому если хотите гарантий - смотрите на западные ВУЗы.

    Еще вариант - получить магистра в немецком ВУЗе, да, придется пару лет пожить в Германии, но это, думаю, не самое плохое, что может быть.
    Ответ написан
    2 комментария
  • Как скачивать zip github?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    6 комментариев
  • Как можно преобразовать такую строку в читаемые данные?

    @dsmoke
    parse_str('name=222&email=444&message=ghjkghjk&agree=on', $params);
    var_dump($params);
    Ответ написан
    Комментировать
  • =: команда не найдена, что не так?

    Присваивание должно быть без пробелов
    Ответ написан
    Комментировать
  • Соблюдается ли очередь данных при нескольких bulk-insert операциях?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Могут ли их primary key id смешиватЬся?
    То есть, если запросить дату с ORDER BY id, и получить

    Да.

    За генерацию значений отвечают sequence (неважно каким именно способом объявлена таблица - default nextval явно созданного сиквенса, serial или generated identity - это всё будет сиквенс).
    Сиквенс гарантирует только уникальность своих значений. Никаких гарантий порядка записи в таблицу он не даёт.

    Два параллельных insert в postgresql так же друг друга никак не блокируют и исполняются конкурентно. Кто и в каком порядке надёргал nextval сиквенса потребное для своих данных количество раз - такие значения они и запишут.
    Ответ написан
    Комментировать
  • Почему срабатывает else даже когда выполняется блок if?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    он срабатывает на последний если хотите по вашей логике то используйте

    if
    else if
    ....
    else
    Ответ написан
    2 комментария
  • Как инди разработчику защитить права на игру?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Это очень сложный вопрос и, на самом деле, эффективных методов защиты нет.
    Есть право первой публикации, есть понятие сходства до степени смешения, что в теории позволяет предъявить к копии иск, но по факту это очень дорого, особенно если копию сделала крупная студия.

    Правда, вспомните, сколько сил Вы потратили на создание игры. Поверьте, для крупной студии, если она вдруг заинтересуется Вашим проектом, дешевле и быстрее будет купить ее у Вас официально, чтобы выложить под своим брендом. чем заниматься копированием.

    С китайскими разработчиками все совсем плохо. Даже Apple, BMW, Toyota и прочие монстры корпоративного мира ничего не могут сделать с защитой своих идей от китайцев, что говорить про более мелких игроков. Просто примите, что китайцы все скопируют, но вряд ли полезут на мировой рынок.

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

    freeExec
    @freeExec
    Участник OpenStreetMap
    Защищают свои права во всём мире в суде, доказывая плагиат. Никакой волшебной галочки, которую вы ищете, чтобы всё было в ажуре нет.
    Да успешные практики копируют, но не как вы тут мечтаете, что майлру будет брать ваши модельки, так делают только школьники.
    Лучшая стратегия это развивать быстрее, делать игру интересней и качественней. Остальное порешает рынок. Сколько мы уже слышали про убийцу WoW и где они все? Поэтому пока Васян копируют, ты должен уже выпустить следующее обновление.
    Ответ написан
    Комментировать
  • Как распространять только модификацию кода, без основы?

    @DmitrySolomennikov
    Технически то, что вы хотите - это применение патча. Если вы можете сделать git diff, то результат этой команды позднее можно применить к исходному файлу (файлам) и получить модифицированную версию.
    Делается это при помощи команды patch:
    patch < diff.patch
    где diff.patch получен как
    git diff > diff.patch
    Ответ написан
    1 комментарий
  • Случайно добавил видео в commit. Как удалить из commit только видео?

    SagePtr
    @SagePtr
    Еда - это святое
    Если вы не запушили изменения, но хотите из последнего коммита выкинуть некоторые файлы, то можете это сделать командой
    git rm --cached [filename]
    При этом файл не будет удалён из директории, а только помечен на удаление (без --cached удалит и сам файл, если он не нужен), затем сделайте
    git commit --amend
    В результате вместо нового коммита это удаление применится к старому коммиту и аннулирует предыдущее добавление этого файла, по итогу в него не попадёт файл.
    Ответ написан
    Комментировать
  • Беспл. хостинг beget не отправляет письма по php командой mail?

    SagePtr
    @SagePtr
    Еда - это святое
    Бесплатные хостинги не позволяют отправлять почту, иначе это будет халявой для различных спамеров. А если бы и позволяли - то почтовые сервера давно бы их в блеклист добавили из-за обилия спама с них - и письма получателю всё равно попасть не смогли. Да что там почта, многие бесплатные хостинги вообще фильтруют исходящие подключения, чтобы злоумышленники не могли с них осуществлять атаки на другие ресурсы.
    Ответ написан
    Комментировать
  • Беспл. хостинг beget не отправляет письма по php командой mail?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    1.Оформляйте код согласно правилам.
    2.Жалобы на работу сервисов (как этого, так и сторонних - желательно задавать тех. поддержке)
    3. Касательно вопроса: невозможность отправлять письма - ограничение бесплатного хостинга (для стимуляции покупки/усложнения спама)
    Ответ написан
    Комментировать