Задать вопрос
  • Как решать задачи по программированию математическим путем, а не "в тупую"?

    hint000
    @hint000
    у админа три руки
    Возможно, буду нескромен, но всё же приведу в качестве иллюстрации несколько своих ответов:

    Всё это несложные задачи, постановка которых доступна для понимания любому, но которые требуют немножко математического мышления.
    Безусловно, здесь есть много лучших примеров применения математики в программировании от других участников, просто свои мне было проще найти.
    Или тут только надо учить математику и все, но вроде знаю её но применять не особо умею
    Если база есть, то учиться применению - примерно так же, как ребёнок учится ходить, учится говорить. Т.е. наблюдать, как это делают другие и пробовать-пробовать-пробовать, пока не начнёт получаться. Каких-то волшебных рецептов нет, просто мозг постепенно привыкнет мыслить определённым образом.
    Ответ написан
    Комментировать
  • В чем различие между Mutex и другими классами синх. потоков?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Зачем нужен Mutex? Есть ведь Monitor.

    Mutex - примитив синхронизации уровня ОС.
    Monitor - инструмент синхронизации уровня среды выполнения.
    Mutex это разве не тот же семафор, только который может брать один поток?

    Да, по внешним признакам. Но разве не лучше выделить специфичный кейс (как например в Mutex - одновременная работа только 1 потока) и оптимизировать работу для него, а не использовать везде обощенный инструмент (возможность для нескольких потоков в семафоре). Есть разные оптимизации для него.
    Ответ написан
    Комментировать
  • Что за формат чисел в ассемблерных файлах 000ABC100h в конце 'h', конкретно как парсить?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ты немного путаешь формат записи и разрядность архитектуры.

    1. Чтобы отличать числа от меток и переменных, считается что любая запись числа должна начинаться с цифры, поэтому часто шестнадцатиричные записи могут быть записаны с дополнительным ведущим 0
    ( 0a10h ), именно чтобы в начале не было а.

    2.
    Для шестнадцатиричной записи используется суффикс h
    0293h, 0a123123h
    Также для шестнадцатиричной можно использовать формат 0x<ЧИСЛО>
    0xab, 0x01, 0xFF23

    Использовать и префикс и суффикс типа 0xA019h - не стандарт, и я навскидку не могу вспомнить где такое может быть, и скорее всего так будет неправильно. Но может быть где-нибудь какой-нибудь парсер предусмотрел и такую глупость, поэтому кушает без выдачи ошибок.

    3. Для двоичной записи используется суффикс b
    000101010b, 1b

    4. Для восьмиричной используется суффикс q
    1q, 2323q, 7283123q

    5. Для обычной десятичной можно указывать суффикс d, или не указывать его
    123, 123d, 982d, 1
    Ответ написан
    Комментировать
  • Как называть методы, которые не обрабатывают исключений?

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

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    1. Есть Try* методы. Они возвращают bool - была ли операция успешна, а реальное возвращаемое значение передается через out параметр

    2. Внутри своих проектов я использую *Safe постфикс. Но использую я их только внутри класса и только для того, чтобы не писать TryGet*(out ...) конструкцию

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

    @other_letter
    Сильно зависит от предмета договора.
    Что Вы собственно продаете? Услугу? Продукт? Исключительные или неисключительные права? Отвечать не надо, надо разобраться для себя.

    За что Вы собственно платите? Вы подряжаете учителя сделать курс, чтобы его потом продавать? Или покупаете права?

    Быть может, Вы вообще выступаете всего лишь агентом, передавая некую ценность от Учителя к Покупателю? Или не агентом, а витриной?
    Ответ написан
    5 комментариев
  • Портится ли монитор от того, что на него светит настольная лампа?

    @apppostol
    Нет, не портится. Поэтому вы ничего вменяемого и не нашли. Никто даже не задавался этим вопросом.
    Даже не могу предположить, почему он вдруг должен портиться, с технической точки зрения.
    Ответ написан
    1 комментарий
  • На все ли кнопочные телефоны можно установить symbian OS?

    @apppostol
    Начать с чтения системных требований symbian. И того как она работает. И размышлений о том, как вы в итоге и с какими знаниями будете ее адаптировать под каждый ваш кнопочный телефон.
    В общем, ответ - нет.
    Ответ написан
    Комментировать
  • В каких случаях надо испо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
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как всегда прочитайте правила.
    Потом задавайте в формате Я сделал что то, но оно тормозит либо неправильно работает.

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

    Хотя можно и общие вопросы спрашивать по структуре бд
    Ответ написан
    Комментировать