Задать вопрос
  • В каких случаях надо испоinterfacce, а не type?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    interface поддерживает extends (который компилируется быстрее чем intersection (&) как верно подметил Василий Банников )
    interface A extends B, C {}
    interface B {}
    type C = {}; // interface вполне может extends из type


    interface поддерживает declaration merging
    interface A {
      a: number;
    }
    interface A {
      b: number;
    }
    const a: A = {a: 1, b: 2};


    type поддерживает вычисления типа на верхнем уровнеtype A = B | C; // на interface такого не выразишь

    В остальном различий нет.
    Declaration merging может подложить жабу в реальном проекте, но полезен при написании библиотек, которые могут быть расширены извне (плагины jQuery например)
    В целом type более универсален и надежен. И не сильно он медленнее. Вся его медленность заключается в том, что компилятор производит вычисления типа, которые так же возможны и в полях интерфейса, а значит присутствуют и там.
    Для Java/C# разрабов, читающих TS, interface более понятная конструкция (хотя и обманчиво).

    В целом все зависит от стайл гайда, который примет команда. Главное чтоб везде одинаково было.
    Ответ написан
    2 комментария
  • Как работает WriteLn в PascalAbc?

    @alexalexes
    Учителя в школе, если они плохо владеют предметом, опираются на сведения из методических указаний или конкретного учебника, и предпочитают не отступать от формулировок из этих источников.
    Если видите, что учитель строго следует этому правилу, то давайте ответы только из валидных источников по версии учителя, а для себя изучайте дополнительный материал.
    Если пойдете поступать в вуз, то преподаватели, в отличии от учителей в школе, дадут вам возможность пофилософствовать, но учитель в школе - это не про свободу мысли.
    Ответ написан
    1 комментарий
  • Оптимизируется ли UPDATE, если значения полей на самом деле не меняются?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    В postgresql создаётся физически новая версия строки при update (с обновлением всех индексов либо hot update если применимо) даже если ни одно поле не меняет своё действительное значение. Есть встроенный триггер suppress_redundant_updates_trigger, который можно повесить на таблицу, тогда ничего действительно не меняющий в данных update будет пропускаться.

    Если меняется хотя бы одно значение - оптимизации не подлежит, должна быть записана новая версия строки в таблицу (чтобы MVCC обеспечить). Если возможно, оптимизация HOT update исключит сопутствующее обновление индексов.
    Ответ написан
    9 комментариев
  • Как сделать много вставок в HashMap за минимальное время?

    Eugene-Usachev
    @Eugene-Usachev Автор вопроса
    Должен отметить, что Василий Банников дал прекрасный ответ. Дальше я пошёл в увеличение количества map (срез содержит срез map, который содержат другие map) и добился скорости записи 3 000 000 элементов на моём компьютере за 180 миллисекунд (вместо 4 секунд).

    И вот сейчас я наткнулся на замечательную статью от DragonflyDB https://github.com/dragonflydb/dragonfly/blob/main.... Там подход схожий с моим, советую к ознакомлению всем, кто хочет масштабировать map вертикально (за счёт числа ядер).
    Ответ написан
    Комментировать
  • Стоит читать Таненбаума "Архитектура компьютера"?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Разница будет. Издание с каждым разом дополняются чтобы повествование шло +- в ногу со временем.
    4-е будет уже не совсем актуально , хотя общее понимание конечно же даст.
    Купите 6-е издание раз хотите в бумаге. от 2к на озоне.
    Ответ написан
    Комментировать
  • Как исправить код конвертации vec_u8 to vec_&str?

    bingo347
    @bingo347
    Crazy on performance...
    Сумбурный вопрос, но если правильно понял, то автор хочет получить Vec<&str> элементы которого ссылаются на исходный вектор байт и в каждом элементе строка из 1 символа:
    let u01 = vec![59, 13, 10, 32, 47, 42];
    let u01_str = std::str::from_utf8(&u01).expect("invalid utf8");
    let mut u02 = Vec::with_capacity(u01.len());
    let mut i0 = 0;
    for (i, _) in u01_str.char_indices().skip(1) {
        u02.push(&u01_str[i0..i]);
        i0 = i;
    }
    u02.push(&u01_str[i0..]);
    println!("u02 = {:?}", u02);
    Ответ написан
    Комментировать
  • О чем на самом деле идет речь в single-responsibility principle?

    Eugene-Usachev
    @Eugene-Usachev
    Я приведу обратный пример.

    Вот есть у нас разработчик Вася. Он пишет embedded систему. И у него есть датчик, у которого есть встроенный таймер и который измеряет температуру. Ну Вася посмотрел на это и написал класс TimeTemp, который имеет поля ,относящиеся к таймеру, и имеет поля, относящиеся к температуре. То же самое с методами.

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

    Потом пришёл Георгий и позаимствовал части кода с температурой.

    Проходит время и в классе TimeTemp находят ошибку, Вася сразу её правит. Вот только в других классах ошибка всё ещё есть и её теперь надо искать там и править, если вообще Вася скажет, что у него была ошибка Пете или Георгию.

    Так же ошибку могли найти у Георгия, и тогда не факт, что в классе TimeTemp её сразу исправят. Это я молчу про то, что кода стало в два раза больше.

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

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Нет, не может. Ибо, PPP (и PPPoE в частности) - протокол канального уровня, который не может нести в себе другой протокол канального уровня, такой, как Ethernet.
    РРР может нести в себе IP, IPX ,NCP, AppleTalk, но не фреймы Ethernet в чистом виде, к каким относятся и 802.1q.

    Но вот наоборот, завернуть PPPoE в VLAN можно.
    Ответ написан
    1 комментарий
  • Существует ли обобщение контроллеров?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Контроллеры пишутся не "для сущностей", это точки входа в твой сервер, которые все вместе образуют API.
    Иногда эти точки однозначно мапятся на сущности (например, "получить список пользователей"), иногда нет.
    Ответ написан
    Комментировать
  • Как работают программы типа advanced systemcare ccleaner и прочие game booster? Типа очистки ram?

    xez
    @xez
    TL Junior Roo
    Работают они очень просто: рисуют красивую анимацию и пишут «ваш комплюктер ускорен на 10000%», а сами тем временем подсаживают какую-нибудь малварь.
    Ответ написан
    3 комментария
  • Можно ли задавать вопросы об оптимизации и/или улучшение качества базы данных?

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

    Желателен исходный код, версия субд.

    Хотя можно и общие вопросы спрашивать по структуре бд
    Ответ написан
    Комментировать
  • В чем принципиальное отличие L3 коммутатора от маршрутизатора?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    В предназначении и внутреннем устройстве)

    L3-свич хорошо "гоняет" (пропускает без значимого изменения) трафик, делает обычный forwarding между сетями, умеет динамическую маршрутизацию. Из начального пакета он меняет в основном source и destination MAC-адреса, QoS да CRC. Конечно, навороченные коммутаторы умеют делать GRE, некоторые даже IPSec, но вы не получите большой производительности от этого.

    Маршрутизатор именно "молотит" пакетики с данными - активно вносит изменения в заголовки, инкапсулирует в туннели, натит, терминирует ppp-сети. Он, как видите, активно меняет содержимое пакетов, залазя глубже уровня ethernet.

    Отсюда отличие во внутреннем устройстве - внутри коммутатора ASICи и QoS-процессоры, внутри маршрутизатора - умные процессоры и другие различные приблуды для своих целей (аппаратная поддержка шифрования)

    Если вы посмотрите router perfomance и switch perfomance таблицы, вы увидите, что у коммутаторов производительность измеряется в количестве пропущенного трафика, а у маршрутизатора - в количестве обработанных пакетов.

    Ну и да, отличие, конечно же в наборе функций) Понятно, что тот же isis в большинстве случаев умеет и коммутатор, и маршрутизатор. Но если сравнивать по feature navigator например, вы увидите, что на самом деле коммутаторы умеют меньше.
    Ответ написан
    Комментировать
  • Как в Powershell вывести сообщение из логов полностью?

    @MaxKozlov Куратор тега PowerShell
    На экран выводится форматированная надпись. Естественно, целиком она может не влзеть
    Вариантов масса
    Вы можете, например, или вывести только текст
    Get-WinEvent -LogName Application -MaxEvents 10 | Select-Object -ExpandProperty Message

    или, например, перенаправить всё это в csv
    Get-WinEvent -LogName Application -MaxEvents 10 | Select-Object Machinename, TimeCreated, Message | Export-csv -Path d:\111.csv
    и смотреть уже его
    Можно записать вывод в переменную и детально смотреть её содержимое
    $e = Get-WinEvent -LogName Application -MaxEvents 10
    $e[0].Message
    Ответ написан
    1 комментарий
  • Используется ли basic auth в реальных проектах RESTful?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    По ситуации. Мы, например, basic auth для эндпоинта метрик используем. Ну и UI сваггера можно закрыть.
    Ответ написан
    Комментировать
  • Как борются с взломом нейросетей?

    @oleg_ods
    Из мануала Tesla model S:

    Автопилот — это набор расширенных функций помощи водителю, призванных сделать вождение более безопасным и менее напряженным. Ни одна из этих функций не делает Model S полностью автономной и не заменяет вас в качестве водителя. Функции автопилота входят в стандартную комплектацию всех новых автомобилей Tesla.


    От туда же с маркировкой «Предупреждение»:
    Автопилот — это практическая функция. Всегда держите руки на руле и помните о дорожных условиях, окружающем движении и других участниках дорожного движения (например, пешеходах и велосипедистах). Всегда будьте готовы принять немедленные меры. Несоблюдение этих инструкций может привести к повреждению оборудования, серьезным травмам или смерти.


    Автопилот создан для вашего комфорта и удобства вождения и не является системой предупреждения или предотвращения столкновений. Вы несете ответственность за то, чтобы сохранять бдительность, безопасно управлять автомобилем и постоянно контролировать транспортное средство. Никогда не полагайтесь на автопилот, который сможет адекватно замедлить Model S. Всегда следите за дорогой перед собой и всегда будьте готовы принять корректирующие меры. Невыполнение этого требования может привести к серьезной травме или смерти.


    Сейчас не могу найти, но раньше в мануале в разделе «Автопилот» был текст под кучей звездочек примерного содержания: «Автопилот - маркетинговое название продвинутой системы круиз-контроль».

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

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

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если поисковый запрос начинается с символа %, то индекс толком не используется.
    Вам нужен либо fulltext index и соответствующий запрос, либо сторонний поисковый движок типа эластика или мантикоры

    Или хотя бы перенести сайт с того утюга, на котором он хостится сейчас, на нормальный сервер. Потому что 10 секунд на перебор трех сотен тысяч строк - это запредельные какие-то цифры.
    Ответ написан
    Комментировать
  • Как установить chat-gpt на компьютер?

    vndrussia
    @vndrussia
    Вроде разработчик,а вроде и нет
    https://habr.com/ru/articles/728298/
    Лови изучай,человек офигенную статью сделал.
    Из своих наблюдений у меня стоит модель 65 вроде,на 128гб рамном сервере.Работает плюс/минус как офф чат гпт.
    Как поиграться - можно.
    Для работы - точно нет.
    Ответ написан
    Комментировать
  • Можно ли найти все варианты слагаемых числа,что бы слагаемых было ровно 20?

    Stalker_RED
    @Stalker_RED
    Можно. Двадцать единичек, и 445.
    Или 20 нулей и 465, под ваше описание задачи вполне подходит.
    Чётче описываете условие.
    Ответ написан
    Комментировать