Задать вопрос
  • Почему не выпускают процессоры на архитектуре виртуальной машины Java?

    1. А сборщик мусора и всё Java API тоже на уровне железа будешь реализовывать?
    2. Что будешь делать, когда выйдет новая версия Java? Отказываться от нового софта? Отказываться от старого софта и переходить на новый железный процессор?
    3. Что будешь делать со всем тем ПО, которое не для JVM создано?
    4. Уверен ли ты, что сможешь создать аппаратную реализацию java-машины, которая будет эффективнее, чем классический процессор и JIT?
    Ответ написан
    6 комментариев
  • Какая space complexity у данного алгоритма?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Не спрашивайте у чатжпт ничего, в чем не являетесь полным экспертом. Он почти в половине случаев выдает очень правдоподобный бред.

    У этого алгоритма действительно пространственная сложность O(N) (если N - размер входного массива). Однако, можно натянуть сову на глобус, если отдельно считать входные и выходные данные (которых O(N)). Тогда можно сказать, что алгоритм использует O(1) дополнительно пространства. Входные и выходные данные все равно понадобятся, поэтому иногда их не считают.

    У меня нет доступа к этому видео. Если они там говорят "additional space is O(1)", то это именно так, как я описал выше.
    Ответ написан
    1 комментарий
  • Как записать base64 в таблицу?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить картинки в бд крайне кривое решение. Это может быть оправдано только в случае когда там хранится пара иконок, вставленная в текст прям через <имг срц="тут_бэйз64_строка"... и нет желания все это переделывать ради 2 кастомных микрокартинок. В остальном - конвертировать в картинку и хранить на диске. В бд писать путь до картинки. Если это какой-то аватар или картинка, связанная с другим объектом, соответственно заводить отдельную таблицу на картинки и связь один-к-одному или один-ко-многим, в зависимости от ситуации. В худшем случае поле в той же таблице, если точно будете знать что других картинок к объекту относиться не будет, но это должен быть путь до реальной картинки на диске.
    2) Почему хранение в бд - плохая идея: При каждом запросе у вас будет вытаскиваться пару мегабайт данных из бд, передаваться по каналу соединения с бд, помещаться в память, и после этого еще нужно программно отдавать картину, кроме прочего картинка в бэйс64 занимает примерно на 30% больше места.
    Когда у вас есть картинка на диске, вы просто вставляете путь до нее, это ~50 символов, и сервер отдает ее БЕЗ УЧАСТИЯ ПРОГРАММНОЙ ЧАСТИ, средствами вебсервера и ОС. Это быстрее, потребляет меньше памяти и занимает меньше места в хранилище.
    Ответ написан
    Комментировать
  • Актуальность данных при кэшировании, решается ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    «There are only two hard things in Computer Science: cache invalidation and naming things» — Phil Karlton

    Насколько я понял проблему, кэш проблемных данных нужно хранить в отдельном ключе редиса, по которому его легко найти и инвалидировать из разных мест.
    Ответ написан
    Комментировать
  • Какой хостинг выбрать для ТГ бота на .Net?

    Adler_lug
    @Adler_lug
    Любой самый дешевый vds с каким нибудь линуксом, на который ставится .Net (ubuntu, debian и т.д.). И бота собираете под Linux.
    Ответ написан
    Комментировать
  • Как сохранить другую сущность при авторизации?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите пожалуйста как сохранить модель Doctors как авторизованного пользователя?

    1) Модели не называются во множественном числе. Модель Doctor привязывается к таблице doctors. И "я получаю модель Users," - то же самое, модель User.
    2) Доктор или пациент это не пользователь, это либо роль, и тогда надо делать RBAC, либо авторизированная сущность, и тогда нужно связывать юзера и сущность через один-к-одному, в случае если доктор и пациент кардинально различаются по свойствам, а не просто имеют разные права. А пользователь просто способ авторизации/идентификации.
    Ответ написан
    Комментировать
  • Macbook air как рабочий ноут для системного администратора?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Мне кажется тут ноут с виндой без вариантов.
    Ответ написан
    Комментировать
  • Какой приоритет у оператора => определения элемента массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Приоритета нет, поскольку это не оператор, а языковая конструкция key => value.
    Каждый из элементов конструкции вычисляется отдельно.
    Ответ написан
  • Возможно ли отправить в бд через sql запрос в формате BLOB, heic изображения?

    @aleksejjjjj
    Самое отвратительное из известных решений. В БД храним путь к файлу и любые мета данные. Файл лежит в файловой системе. Там его и конвертируем в любой удобный формат и разрешение. Никаких полумер. Картинкам в БД не место.
    Ответ написан
    3 комментария
  • Как создать свою доменную зону?

    NeiroNx
    @NeiroNx
    Программист
    Корневые зоны очень дорого стоят. И просто так их вам никто не зарегистрирует.
    То что вы написали звучит как "Хочу собственную страну".

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует только один способ улучшать работу нейросетей - продолжить обучение на новых данных.

    Сам термин взлом здесь не применим. НС оперируют нечеткой логикой поэтому никакого взлома
    нет. Есть просто детерминированное поведение выхода в зависимости от входа.
    Ответ написан
    Комментировать
  • Как хранить товары с различными опциями в БД?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В стародавние времена это действительно было проблемой.

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

    Эта ситуация послужила одной из причин появления хранилищ для неструктурированных данных, таких как Монго, которые входят в очень широкую категорию NoSQL.
    Но сами по себе "документо-ориентированные базы данных" в качестве основного хранилища - это ад и проклятие, хуже EAV. Если EAV делает адом только работу с атрибутами товаров, то Монга делает проклятием работу со всей БД целиком. Забудьте об этой идее.

    Тем более что в последние годы появилось вполне достойное решение: во всех классических СУБД появилась поддержка JSON полей.
    То есть таблица товаров будет самая обычная, в которой есть общие поля типа цены, названия и прочее. А свойства хранятся в JSON поле. Беря, таким образом, лучшее из двух миров.

    На начальном этапе вы даже сможете делать поиск по атрибутам, используя нативные JSON функции. Но в дальнейшем поиск товаров, а так же фильтрацию по атрибутам на странице категории (так называемый "фасетный поиск") надо будет возложить на специальный поисковый движок (который тоже входит в широкую категорию "NoSQL", хотя ничего общего с документными БД не имеет, и БД, собственно, не является), такой как Эластик или Мантикора.

    Главное при этом хранить (либо в коде, либо в таблице категорий) эталонные структуры таких json полей, которые, во-первых, использовать как справочники для заполнения товаров (тупо чтобы помнить, что частота процессора называется freq, а не frequency), и чтобы собственно делать фасетные фильтры.
    Ответ написан
    5 комментариев
  • Как исправить ошибку при пуше в Git хостинга error remote amvera already exists?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    remote amvera already exists

    Вы пытаетесь добавить remote с именем amvera,
    git remote add amvera https://git.amvera.ru/<имя-пользователя>/<транслитерированное-имя-проекта>
    Если вам пишет, что такой remote уже существует, значит вы ранее уже это сделали.
    Зачем вы пытаетесь добавить адрес повторно?

    Подскажите, что с этим можно сделать?

    Если вы хотите заменить ранее добавленный адрес, то либо предварительно удалите предыдущий remote
    git remote remove amvera
    либо используйте команду замены
    git remote set-url amvera ...
    Ответ написан
    Комментировать
  • Как достучаться до докер контейнера из браузера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Потому что стучаться надо не на локалхост, а по имени контейнера.
    Ответ написан
    Комментировать
  • В каких случаях многократный вызов одного скрипта с разными параметрами ускорит выполнение задачи, а в каких - нет?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если у вас задача потребляет CPU по максимуму, то да - распараллеливать её на большее количество процессов, чем имеется в наличии потоков - бессмысленно.
    Но обычно задача по добавлению записи в БД потребляет не слишком много поцессора. А если речь про "парсинг", где процессор 99% времени ждет пакет из сети, распараллеливать можно хоть на десятки процессов.
    Конкретное количество зависит от потребления процессора конкретной задачей.

    Количество потоков не всегда равно количеству ядер, умноженному на два. Надо смотреть на конкретный процессор. Тем более на VPS, где процессор тоже виртуальный.

    Если говорить про конкретный пример, то в идеале конечно надо написать нормальный код, который запишет в БД несчастные 3 тыщи товаров меньше чем за секунду. А заниматься параллелизмом уже когда счет пойдет на сотни тысяч. Тем более что цифра скорее всего взята с потолка. Я много повидал говнокода на своем веку, но такой, чтобы добавление одного товара занимало 30 секунд я даже вообразить себе не могу.

    Единственная загадка - при чем тут "web", если речь идет про CLI. И, если уж говорить про веб, то с какой радости он "однопоточный".
    Ответ написан
    Комментировать
  • Какую видеокарту сможет вытянуть 12600KF в современных и будущих играх?

    xez
    @xez
    TL Junior Roo
    Нет такого понятия "вытянуть видеокарту".
    Если процессорной производительности будет недостаточно, то простаивать будет и 4090 и 1030.

    Для большей части современных игр достаточно производительности современного i3 процессора.
    12600K - это сильно с запасом. Скорее всего, нагрузка в играх на процессор будет не более 50%, разумеется, при адекватной утилизации мощности видеокарты.
    Ответ написан
    Комментировать
  • Какую видеокарту сможет вытянуть 12600KF в современных и будущих играх?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Давайте отделим мух от котлет и пофилософствуем на тему трансцендентного понятия "вытянет"... :)

    1) Для начала поймем, что процессор и видеокарта выполняют разные операции. Процессор готовит материал, а карта визуализирует. Соответственно нагрузка на процессор растет с частотой кадров видеокарты, но рост этот недетерминирован, меняется от места в игре, от настроек графики, от игры к игре, от количества игроков и т.д.
    Оттуда мудрость - чем мощнее видеокарта тем выше вероятность, что процессор начнет упираться. Но когда это наступит и где? Кому ведомо?

    2) Далее надо отметить, что не все движки игр реально многоядерные. Есть такие ситуации, где задачи не делятся между ядрами. Ну не всегда 9 женщин могут выносить одного ребенка за 1 месяц.
    Оттуда мудрость - чем выше частота одного ядра, тем иногда это полезнее, чем количество ядер. И есть задачи, где i3 будет быстрее, чем i5 за ту же цену.

    3) Иногда процессор или видеокарту покупают по тем же причинам, по которым берут большие черные джипы (своего рода "членоудлиннитель").
    Оттуда мудрость - иногда надо брать 4090 и процессор 10400, не для того чтобы играть, а для того, чтобы ПОКАЗЫВАТЬ. Ибо денег на что-то одно, а чувство собственной важности лучше растет от указанной связки, чем от чего-то типа i9 13900k + GTX1050.

    4) Умудренные опытом люди, давно, успешно и много раз пережившие "апгрейдные лихорадки" - становятся меркантильны и прагматичны. Они даже не меряются ФПС (вот с i7 - их, допустим, всего 175, а с i9 - аж 184!). Они понимают, что ИХ глаза столько не видят. Они сидят на мониках 60-75 Гц и не парятся.
    И например их игровая прелесть, Хогвардс там какой, или Фаллаут очередной - прекрасно идут на 10-м поколении интел и старом RTX 2070 в FullHD и на 60 Гц, и далее нефиг тратить деньги.
    Оттуда мудрость - какая разница, что кого потянет, есть оптимальное соотношение "общая цена"/"производительность" под конкретную задачу. Какая разница, что длиннее в попугаях - 175 ФПС или 185, если на мониторе выставлено 75?
    Ответ написан
    3 комментария
  • Нужно ли делать условие перед вызовом метода для избежания выделения дополнительной памяти?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если говорить про конкретный пример, то он просто бессмысленный, даже с точки зрения житейской логики.
    Учитывая, что if ($isTestOrder) можно прочитать, как ЕСЛИ переменная не занимает памяти то проверка выглядит просто глупостью. "Если переменная не занимает памяти, то не передавать её. Так мы с экономим память!" Если переменная и так не занимает никакой памяти, то какого еще дополнительно выделения памяти она может потребовать?

    Если говорить про передачу параметров вообще, то оба неправы, но тимлид ближе к истине и надо всегда следовать его рекомендации не экономить на пустом месте. А экономить только адресно, когда экономия очевидна и востребована.

    В общем случае тут не будет никакой экономии, ни на спичках, ни без.

    При передаче параметра внутрь метода под него выделяется дополнительная память

    - это чушь и неправда.

    При передаче в функцию параметра, который в принципе может занимать хоть какую-то осмысленную память (то есть не числа, не булева значения, и не null), память под него НЕ выделяется.
    • Объекты изначально передаются по ссылке
    • Строки и массивы - с использованием механизма copy-on-write. Что означает, что память будет выделяться только если переданное значение будет изменено в процессе обработки. А если оно будет только считываться, то дополнительной памяти занимать не будет

    Для всех остальных типов, как было правильно сказано тимлидом - это будет экономия на спичках.
    Ответ написан
    6 комментариев
  • Как натянуть верстку на FTP?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    "...- Палубной команде - ставить трал!
    - Поставить можно клизму. Трал отдают... " (С) Ю. Иванов "История пропавшего корабля"

    Так вот, натянуть можно подружку. Или кепку на уши. А страницу загружают посредством FTP-клиента при наличии логина и пароля, который должен выдать провайдер.
    Ответ написан
    Комментировать
  • Как получить токен из заголовков ответа в js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    1. no-cors на клиенте это не "отключение cors", иначе не было никакого смысла в cors, это метка "мне похрен на ответ, я просто отправляю". Соответственно с такой меткой ты не можешь читать ответ никак.
    2. Если при обычном запросе возникакет ошибка cors - значет сервер не посылает allow-* заголовков и cors не разрешён.
    3. Заголовок Set-Cookie ставит, очевидно, cookie. Напрямую его читать в любом случае нельзя.
    3.1. Но можно читать поставленную cookie
    3.1.1. Но читать её можно только на том домене доя которого она поставлена.
    3.1.2. Читать её можно только если она не (как в данном случае) HTTP-only.
    5. Возможно вам и не нужно ничего ни откуда доставать: HTTP-only куки передаются браузером в запросе самостоятельно, из скрипта к ним доступа нет. Однако он и не нужен. Отправляйте все запросы с credentials: "include" и значение автоматически будет присутствовать в заголовке Cookie..
    Ответ написан
    Комментировать