• Ответ на викторину

    Что такое социальная инженерия?

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

  • Ответ на викторину

    Дан Java-код с классом Test, который демонстрирует порядок выполнения:

    public class Test {
      static {
        System.out.print("1 ");
      }
      { 
        System.out.print("2 ");
      }
      public Test() {
        System.out.print("3 ");
      }
    }
    
    public static void main(String[] args) {
      new Test();
    }
    

    Что выведет этот код при запуске?

    Правильный ответ: 1 2 3

    Объяснение:
    Статический блок (static {}) выполняется первым при загрузке класса в JVM
    Блок инициализации экземпляра ({}) выполняется перед конструктором при создании объекта
    Конструктор выполняется последним

  • Ответ на викторину

    Верно ли, что в каждую секунду один килограмм преющих листьев выделяет больше энергии, чем один килограмм солнца?

    Ответ: На деле средняя удельная мощность Солнца всего ~0,2 мВт/кг (энергия рождается только в ядре, а масса огромна), тогда как активный компост/преющие листья выделяют 10–50 Вт/кг за счёт метаболизма микроорганизмов. Разница в ~50 000–250 000 раз в пользу листьев.

    Вот цифры (удельная мощность, Вт/кг):
    Куча преющих листьев: ≈ 1–2 Вт/кг
    Спящий человек: ≈ 1 Вт/кг
    Солнце (в среднем): ≈ 0,2 Вт/кг
    Солнце (в ядре, где идёт термояд): ≈ 0,001–0,01 Вт/кг
    То есть килограмм листьев может быть в сотни раз «горячее» килограмма солнечного термоядерного реактора, если измерять мощность на весы.
    Алексей Семихатов был бы доволен таким ответом.

  • Ответ на викторину

    У вас есть HTTP-хэндлер, который читает тело запроса (io.ReadCloser) и передаёт его в функцию process(data []byte). Как правильно спроектировать обработку большого входящего потока, чтобы не положить сервер из-за памяти?

    Правильный ответ Чанки с sync.Pool и воркеры

    Пояснение:

    ReadAll положит сервер при большом теле.
    Чанки с sync.Pool и воркеры — стандарт.
    io.TeeReader — оверхед с диском,
    process(), который внутри вызовет ioutil.ReadAll — блокировка хэндлера.

  • Ответ на викторину

    В какой среде программирования нужно программировать роботов thefirsttool?

    👍 Beep toolkit (IDE Soft Controller)
    💯 Arduino IDE
    🔥 Python + OpenCV
    ✅ Thefirsttool — не программируется, это конструктор

    Beep toolkit (IDE Soft Controller) — правильный ответ

    The First Tool (thefirsttool) — это не робот, а «библиотека деталей» (parts library), созданная компанией Shenzhen Zhouyu Intelligent Technology . Это набор конструктора для робототехнических соревнований (совместим с goBilda, Tetrix, REV, FTC, FRC), а не готовая роботизированная система .
    Эксперты на Хабре прямо указывают, что «thefirsttool — не роботы»  и предлагают использовать для управления их компонентами Beep toolkit (IDE Soft Controller) .

  • Ответ на викторину

    Что выведет этот код?

    console.log(1);
    setTimeout(() => console.log(2), 0);
    Promise.resolve()
    .then(() => {
    console.log(3);
    return Promise.resolve();
    })
    .then(() => {
    console.log(4);
    });
    async function run() {
    console.log(5);
    await null;
    console.log(6);
    }
    run();
    console.log(7);

    Правильный ответ: 1 5 7 3 4 6 2

    да, тут есть подвох — два варианта выглядят одинаково, но это проверка внимательности, многие начинают сомневаться и менять ответ

    Где тут мясо:
    await null → это сразу microtask, как Promise.resolve()
    первый .then → кладёт следующий .then тоже в microtask queue
    порядок микротасок сохраняется по очереди добавления
    setTimeout → всегда в конце (macrotask)

    Короткий разбор:
    1 → sync
    5 → sync (внутри async)
    7 → sync
    3 → первый then
    4 → второй then
    6 → после await
    2 → setTimeout

  • Ответ на викторину

    Что выведет этот код?
    async function test() {
    console.log(1);
    setTimeout(() => console.log(2), 0);
    await Promise.resolve();
    console.log(3);
    }
    test();
    console.log(4);

    Правильный ответ: 1 4 3 2

    Где ломаются:
    await не «останавливает мир», он отдаёт управление event loop
    Promise.resolve() уходит в microtask queue
    setTimeout — это macrotask, он выполнится позже

    Разбор по шагам (для поста-ответа):
    1 — синхронно
    setTimeout планируется
    await отдаёт управление
    4 — синхронный код вне функции
    3 — microtask после await
    2 — macrotask из setTimeout

  • Ответ на вопрос

    Ты на собеседовании. Что выведет этот код?

    for (var i = 0; i < 3; i++) { setTimeout(() => {
    console.log(i);
    }, 100);
    }

    В чём может быть ошибка:
    var имеет function scope, а не block scope.
    К моменту выполнения setTimeout цикл уже завершился, и i = 3.

    Правильный ответ: 3 3 3

  • Что выведет этот код?

    def add_item(item, items=[]):
    items.append(item)
    return items

    print(add_item(1))
    print(add_item(2))

    В чём подвох:
    Mutable default argument.
    Список items=[] создаётся один раз, а не при каждом вызове функции.
    Поэтому второй вызов использует тот же самый список.
    И ответом будет [1] и [1, 2]

  • ➡️ Винчестер

    Происхождение термина «винчестер» для HDD связано с моделью IBM 3340 и её неофициальным обозначением «30-30», отсылавшим к винтовке Winchester. Прозвище закрепилось, вышло за пределы конкретного устройства и в русскоязычной среде стало общим названием для жёстких дисков. Это яркий пример того, как профессиональный жаргон пережил породившую его технологию.