Задать вопрос
  • На каком стеке собрать интернет-магазин с 25 млн товаров?

    Aetae
    @Aetae
    Илья, я не продажник - я разработчик, потому говорю только то что видел - проблемы есть, например, если ты закупаешь фигню оптом отдельно, коробки отдельно, а продаёшь комплектами - 3 фигни в одной коробке, 6 фигней в другой коробке.
    Написано
  • На каком стеке собрать интернет-магазин с 25 млн товаров?

    Aetae
    @Aetae
    Илья, 1C, очевидно, подойдёт для чего угодно, но дороже. Мой склад - ситуативно, там много подводных камней при любом отличии от простого "один товар - одна позиция".
    Написано
  • Могу ли я откатить все изменения на github без возможности вернуть их?

    Aetae
    @Aetae
    Если у тебя каким-то чудом после кидка есть ещё доступ на изменения - то запуш куда-то куда новый разраб первым делом посмотрит ничего не ломающий коммент вида "заказчик кидала - так-то и так-то" и успокойся, твой долг выполнен. А вредить - это противозаконно.
    Написано
  • На каком стеке собрать интернет-магазин с 25 млн товаров?

    Aetae
    @Aetae
    Илья, next\nuxt и так имеют бэк для ssr, можно к ним базу напрямую без прокладок подключать.

    Подойдёт ли PostgreSQL? Подойдёт, как и любая иная серьёзная база. Но с нюансами, которые надо знать(я не знаю - нужен dba).

    По поводу "простенькой админки" - саму то её технически сделать не сложно, и весь heavy-lifting ляжет на базу, однако ты не забывай что это всё надо будет состыковать с бухгалтерией, складами, логистикой и всем таким прочим. И вот этот момент "простеньким" уже никак не выйдет.
    Нет, можно кончно забить и переложить всё на работников, но тогда очень быстро твой бизнес превратится в кашу, где никаких концов не сыщешь.:)
    Написано
  • На каком стеке собрать интернет-магазин с 25 млн товаров?

    Aetae
    @Aetae
    Какбэ ты же весь стек сам описал. Тебе только базу выбрать осталось, лол.
    Написано
  • Почему при разархивировании папки, где хранится файл с именем на русском языке, он превращается в символы?

    Aetae
    @Aetae
    Ну проблему ты решил - распаковывай виндовым.:)
    Для 7z можно явно задать кодировку параметром -scs - например(скорее всего для твоего случая) -scs1251.
    Написано
  • Как пофиксить пустое пространство при переносе строки?

    Aetae
    @Aetae
    CSS работает так: пока есть текст - ширина блока увеличивается пока не станет максимальной, после чего начинает переноситься всё ещё не влезающий текст. Обратно ширина уже не ужимается.
    Поделать с этим ничего нельзя (и в большинстве случаев не нужно), только руками расставлять неразрывные пробелы как предложили в ответах или задавать какую-то ширину.

    Вопрос тут в том чего именно ты хочешь добиться - за время существования этой проблемы было придумано много всяких кривых хаков под разные узкие ситуации.
    Написано
  • Может ли юзер нести ответственность за просматриваемый контент?

    Aetae
    @Aetae
    kedra90, есть такая фигня - бигдата называется. Если инфраструктура и интерес есть, то не надо админу смотреть логи, можно просто вкнинуть запрос, условно, "кто интересовался вязанием крестиком за последнюю неделю" и получить список юзеров.
    В общем на принцип Неуловимого Джо надейся, но и сам берегись.:)
    Написано
  • Может ли юзер нести ответственность за просматриваемый контент?

    Aetae
    @Aetae
    kedra90, ничто не мешает такой ситуации кроме лени админа. Что он будет делать после "ага" - другой вопрос. Может тебя публично спалить если что-то постыдное. Может и донос написать если что-то крамольные. Ответственности по закону, как уже неоднократно писали - нет. Но это не помешает по доносу добавить тебя в какой-нибудь внутренний список претендентов на бутылку.
    Написано
  • Может ли юзер нести ответственность за просматриваемый контент?

    Aetae
    @Aetae
    Что неоднократно написали - за сам просмотр чего-бы то ни было ответственности нет.
    Чего не написали - явный поиск и просмотр чего-то особо заковыристого может таки привлечь внимание органов. А когда внимание привлечено - статья сама найдётся, пусть и не за просмотр, но тебе от этого будет не легче.
    Благодаря бешенному печатному станку каждый гражданин нашей страны по умолчанию преступник, а не в тюрьме мы все только по принципу Неуловимого Джо.
    Написано
  • Как в nuxt ограничить доступ к компонентам в зависимости от прав авторизованного пользователя?

    Aetae
    @Aetae
    Alex Alc, ну да - регламент в базе, редактируемый из админки, на случай изменений.
    Очень мало что можно "раз и навсегда" захардкодить на фронте, а все динамические данные - они на бэке вместе с безопасностью
    Написано
  • Почему функция возвращает разные даты на разных устройствах?

    Aetae
    @Aetae Куратор тега JavaScript
    Да, косяк провайдера(или работы с ним).
    При некорректной работе с датой в самом js не может быть такого чтоб скинуло пару лет: при ошибках либо оно упадёт, либо год будет в районе 1970, либо явно кривым.
    Написано
  • Не пробрасываются порты и не работает ping роутера openwrt?

    Aetae
    @Aetae
    LightGreenP, "динамический" и "белый" - это разные категории: белый может быть динамическим, статический может быть серым.
    Белый - это настоящий ip, т.е. не из зарезервированных диапазонов.

    Если белый - должно работать, если серый - должно не работать. Для серых есть всякая магия по пробиванию NAT, но это отдельная тема.

    Если белый и не работает - для начала подключи свой компьютер напрямую и проверь что пинг и коннект к нему есть. Если есть - возись дальше, если нет - значит провайдер что-то мутит неортодоксальное, и надо сначала разобраться что именно.
    Написано
  • Webpack + ts (babel) + Google Closure Compiler ADVANCED не работают?

    Aetae
    @Aetae Куратор тега JavaScript
    SuperProshka, врядли. Встроенный минификатор вебпака - точно также переименовывает всё кроме встроенных функций. Если не переименовывает - вы что-то не так настроили. Хотя хз, может если видит обращение по ключу - не трогает.
    Написано
  • Webpack + ts (babel) + Google Closure Compiler ADVANCED не работают?

    Aetae
    @Aetae Куратор тега JavaScript
    Название функций и переменных отлично умеет эврестически обратно возвращать ИИ, как пример jsnice.org (это старый ресурс, ещё до-гптшный), так что это фигня, а не защита. Да и обфускаторы прекрасно распаковываются, правда тут уже чутка придётся руками поработать.

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

    P.S. По поводу _defineProperty - предположу, что оно появляется из-за преобразования синтаксиса классов в старьё. Возможно вам стоит просто поставить цели ts в esnext и в browserlist к babel указать поддерживаемые браузеры по-свежее. Все современные умеют в классы из коробки и эта фигня просто исчезнет. Однако всё же рекомендовал бы всё равно выкинуть GCC, потенциальные проблемы не стоят того.
    Написано
  • Почему в Nginx не работают переменные для try_files?

    Aetae
    @Aetae
    monochromer, ещё раз:
    У тебя написано допустим так:
    set
    add_header 
    try_files

    а работает оно как-то так:
    try_files
    set
    add_header


    Тебе привели пример с map - используй его.
    Написано
  • Как реализовать debounce для поля ввода, чтобы ограничить количество вызовов API в JavaScript?

    Aetae
    @Aetae Куратор тега JavaScript
    var fetchSuggestionsDebounced = debounce(fetchSuggestions, 300);
    input.addEventListener("input", (e) => {
        fetchSuggestionsDebounced(e.target.value); // This is being called on every keystroke
    });


    Саму функцию debounce подключаешь из lodash или из любой иной из 100500 библиотек, предоставляющих её из коробки.
    Писать самостоятельно смысла ровно ноль.

    Если интересно как работает - просто гугли "js debounce объяснение"\"пишем js debounce" и чтай любую из 100500 статей.
    Написано
  • Webpack + ts (babel) + Google Closure Compiler ADVANCED не работают?

    Aetae
    @Aetae Куратор тега JavaScript
    Если ты используешь GCC - подразумевается, что ты бородатый красноглазый безумец, готовый ради полутора байт выигрыша погрузиться на глубину, скрывающую ужасы за гранью человеческого понимания. Так что разбираться со всем тебе тут только самому.

    Если же ты простой человек и взял GCC случайно - то выкинь его и забудь как страшный сон: стандартные минимайзеры вебпака обеспечивают достаточную для любых мыслимых задач современного веба компрессию и не требуют вообще никаких телодвижений.
    Написано
  • Как перевести блоки кода в SPA приложении?

    Aetae
    @Aetae Куратор тега JavaScript
    По логике тебе нужна функция которая пропарсит твой текст и на выходе выдаст массив фраз и шаблон вида <div title="__0__">__1__</div> в который можно обратно запихнуть переведённое. Самому конечно покоавряться можно, но проще погуглить что-то типа i18n html extract - наверняка уже есть готовая либа которая это умеет.
    Написано
  • Почему в Nginx не работают переменные для try_files?

    Aetae
    @Aetae
    Основной совет всегда один: не использовать if.

    Расширено: конфиг nginx это не скрипт, а декларативный собственно конфиг - порядок исполнения команд и заполнения переменных зависит не от того, в каком порядке ты их написал, а от внутренней логики nginx.

    Увы, я не достаточно гуру, чтоб точно сказать в каком порядке тут всё происходит, но либо переменные заполняются после обработки try_files, либо ещё какая фигня с порядком.:)

    Скорее всего поможет использовать map заранее задекларирав переменные по условиям.
    Написано