Задать вопрос
  • Проверка, инвентаризация и аудит Linux машин, как можно узнать про установленный софт?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Юзер мог ставить софт сотней тыщ способов - через штатный менеджер пакетов, через альтернативные менеджеры, сборкой вручную, тупым раздиранием пакетов на файлы и их раскладкой и даже просто копированием с соседней машины (последние два - это для особо жестких извращенцев, но иногда, когда что-то не работает - приходится)
    Ответ написан
    1 комментарий
  • Проверка, инвентаризация и аудит Linux машин, как можно узнать про установленный софт?

    Vindicar
    @Vindicar
    RTFM!
    Составить список популярных пакетных менеджеров и команд их вызова. Разные дистры используют разные менджеры (apt и yum встречаются чаще всего, ЕМНИП).
    Для каждого менеджера попытаться получить список установленных пакетов. Также иметь ввиду, что данного менеджера может и не быть на данной машине.
    Свести результаты в один список.

    Например, для дистров, которые используют apt (Debian и его потомки), это либо apt-mark showmanual, либо apt list --installed | grep -v 'automatic' (чтобы исключить пакеты, которые были поставлены как зависимости для других). Но и там будут пакеты, поставленные при установке ОС.

    Если хочется ну прямо супер детальный анализ... найти все файлы, помеченные как исполняемые. Потом узнать список установленных пакетов. Для каждого пакета узнать список установленных файлов. Исключить эти файлы из числа найденных. То, что останется, было установлено помимо менеджера пакетов и потому заслуживает более пристального внимания. Но сам понимаешь, это долго и жорко, ну и всё равно может не дать 100% покрытия. Грубо говоря, если некий файл script.sh не помечен как исполняемый, его всё равно можно запустить через bash script.sh.

    Я думаю, стоит обращать внимание, если в списке установленных пакетов есть wine, mono или виртуальные машины. В остальном... вряд ли что-то найдётся.
    Ответ написан
    Комментировать
  • Почему пустой кортеж весит больше, чем кортеж с одним числом?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    b - это не кортеж. Это просто единичка (int)
    Вот так правильно:
    a = ()
    b = (1,)
    Ответ написан
    Комментировать
  • Проверка четного числа (четное/нечетное)?

    Vindicar
    @Vindicar
    RTFM!
    Если вопрос именно "как работает данная строка", то ответ простой.
    В десятичной системе круглые числа (т.е. кончающиеся нулём) - те, которые делятся на 10.
    В двоичной системе круглые числа - те, которые делятся на 2.
    Значит, если запись числа в двоичной системе заканчивается нулём, оно делится на 2, т.е. оно чётное.

    А если вопрос "стоит ли так делать", то ответ тоже простой.
    Однозначно нет.
    Ответ написан
    Комментировать
  • Проверка четного числа (четное/нечетное)?

    @igor6130
    А причем здесь двоичный код?

    Числа на четность проверяются по-другому:
    if num % 2 == 0:
        ...


    Плюс, если вы идете по рэнжу, то это просто все числа с двойки с шагом 2.
    Ответ написан
    Комментировать
  • Счастливый билет. Где ошибка в коде?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Счастливый билетик из автобуса? где сумма первых трех цифр должны равняться последним трем?
    сложным каким то путем вы пошли.
    моя интерпретация:
    a = input("Введите номер вашего билета что бы узнать счастливый он или нет: ")
    if len(a) != 6:
        print("Ввели неверное число")
        return
    if sum([int(x) for x in a[:2]]) == sum([int(x) for x in a[2]]):
        print('Счастливый')
    else:
        print('Обычный')
    Ответ написан
    1 комментарий
  • Болят глаза через 5-10 минут, что можно сделать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сходи к врачу. Боль в глазах может быть связана с внутричерепным давлением. У меня после Covid было такое что я видел вспышки в левом глазу. Все это - последствия чего-то там.

    Вобщем глаза - твоё здоровье и не слушай советы дилетантов по поводу монториов или шрифтов. У тебя - медицинская проблема и ее надо решать с медициной.
    Ответ написан
  • Исходный код языка Си?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Язык Си не является программой, по этому у него нет исходного кода. Исходный код может иметь компилятор языка, которых есть более чем один.
    Ответ написан
    Комментировать
  • Почему знак вопрос работает именно так?

    Alexandroppolus
    @Alexandroppolus
    кодир
    ну так всё правильно:

    1) User extends {active:boolean} ? Cat : User;
    условие ложно, берем вариант после двоеточия

    2) Cat extends {active:boolean} ? User : Cat;
    условие истинно, берем вариант до двоеточия
    Ответ написан
    Комментировать
  • Как работать с огромными массивами данных?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вероятно не хватает памяти. Используйте опцию max-old-space-size.
    node --max-old-space-size=8192 index.js
    Если оперативной памяти тоже недостаточно, то тут уже нужен потоковый JSON парсер: например stream-json.
    Ответ написан
    Комментировать
  • Как заставить JS нормально работать с кодировкой?

    Seasle
    @Seasle Куратор тега JavaScript
    const textDecoder = new TextDecoder('windows-1251');
    const response = await fetch(...);
    const buffer = await response.arrayBuffer();
    const text = textDecoder.decode(buffer);
    Ответ написан
    2 комментария
  • Как правильно находить готовые коды, плагины на разных языках?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Люди всё правильно говорят. Это не тот вопрос, которым следует заниматься способному в лучшем случае к NoCode управленцу. Так-то найти куски кода, который делает что-то, не так сложно. По ключевым словам легко найти практически что угодно на гихабе, хабре, stackoverflow, куче форумов, в документации к конкретным языкам и библиотекам. Сейчас ещё и расплодились агрегаторы кода, которые по ключевым словам выдёргивают фрагменты кода из кучи опенсурсных проектов, иногда бывают полезны, но чаще раздражают....

    Но даже если найти кусок кода или название библиотеки (на что уйдёт пять минут) - а что дальше? Чтобы понять, что делает этот кусок кода, какие у него достоинства и недостатки, какие ограничения - это нужна уже компетенция квалифицированного программиста. А вдруг этот код или эта библиотека жалко помрёт, если вместо скромных 100 байт из тестового набора скормить мегабайт осмысленных данных?

    Программист намного более эффективно проведёт отбор вариантов (сразу выкинув лишь кажущиеся перспективными, но совершенно бестолковые варианты, делающие не то, что надо, или не так, как это разумно), а затем более квалицифированно разберёт всё, что осталось. Конечно, можно ему сказать "я тут видел XXX и YYY, которые кажутся интересными" (и это не запрещено - почему бы и не сказать?), но программист всё равно сделает этот же поиск с нуля ещё раз и выберет ZZZ, который управленец выкинул при отборе, потому что ошибочно посчитал, что он тут не годится.

    Так-то куски кода никто не запрещает искать (поисковики достаточно хорошо натренированы и неплохо их находят), но делать далеко идущие планы на основе своего неквалифицированного непонимания самостоятельно найденного кода настоятельно не рекомендую.
    Ответ написан
    5 комментариев
  • Как правильно находить готовые коды, плагины на разных языках?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Мда. С такой грамотностью далеко не уйдёшь... ПредпрИниматель...
    Я дам простой ответ - предприниматель сам должен уметь находить ответы на вопросы, которые ты здесь задаёшь.
    Ты занимаешься не своей работой."Куски кода искать" должен не руководитель, а разработчик, это его работа и его профессия, за это ты платишь ему деньги
    Ответ написан
    5 комментариев
  • Почему не получается преодолеть барьер в изучении программирования?

    @k4nt
    Здравствуйте.
    Я так же, как и Вы учусь программировать. Лично мне никакое изучение материала не давало результата.
    Только когда у меня появилось к чему приложить свои знания (я сам придумал себе интересный проект и делаю его) у меня появилась больше мотивации в изучении.
    Я не смотрю курсы, не читаю литературу. Я заполняю нужные мне пробелы в знаниях исходя из практики. Да, явно с точки зрения специалиста у меня всё криво, можно лучше и тд, но знания гораздо лучше остаются в моей голове и мотивация падает только тогда, когда я упираюсь во что-то сложное для себя. Пару дней голова поварит, я соберу нужные знания и снова продвигаюсь к реализации своего мини проекта.
    Ответ написан
    2 комментария
  • Что почитать про программирование под Линукс?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Да, есть абстрактное "программирование под Windows", связанное с тем, что в ней все через ... спину. Но "абстрактного программирования под Linux" нет.

    Есть задача - бери и решай ее. Возникают вопросы - гугли конкретный вопрос. Написание книги (скажу тебе как автор одной такой книги) - процесс долгий, ее издание - примерно столько же - так что к моменту ее выхода она может уже ... устареть :)
    Ответ написан
    3 комментария
  • Что почитать про программирование под Линукс?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А под линукс как-то особенно программировать не требуется. Наоборот можно уже писать кроссплатформенно.
    У винды много своей специфики, связанной со странными особенностями файловой системы, с выкрутасами в плане использования кодировок в терминале, в файловой системе, в остальных местах... Когда начинаешь кодить на линукс и под линукс, то аж дышится легче.
    Начинаешь думать, что интерфейсы можно делать не нативно, а в виде веб-интерфейсов, которые отлично смогут работать и в облаке, и прямо на роутере, и локально.
    В линуксе гораздо проще и каноничнее всё с доке-контейнерами, стандартной является вся инфраструктура командной строки, свзанная с механизмами автоматизации: стандартные тулзы, make, системы управления пакетами...
    Поднять на линуксе изолированную повторяемую среду получатся гораздо проще, чем в винде.

    Вообще не понятно, конечно, о каком програмировании речь. Тут и системное программирование упоминалось, и GUI...
    По собственному опыту скажу, что сомнения при переходе на разработку под линукс в основном надуманные и ненужные. Переход происходит естественно и непринужденно.
    Особенно подкупает встроенная в систему хорошая документация и огромное количество структурированной информации в сети. Даже книг каких-то специальных читать не пришлось. Просто по обстоятельствам ищем статьи и мануалы по конкретным темам: особенности и устройство файловой системы, пайпы, потоки, процессы, система прав доступа...
    Ответ написан
    1 комментарий
  • Как исправить "cannot borrow as mutable"?

    vabka
    @vabka Куратор тега Rust
    Попробуй вместо того что у тебя написано использовать entry()
    self.on_event_closure
      .entry(event)
      .or_insert_with(Vec::new)
      .and_modify(move |vec| vec.push(f));


    А нельзя borrow as mutable из-за того что get заимствует on_event_closure
    Ответ написан
    1 комментарий
  • Как посчитать количество символов в char на С?

    @res2001
    Developer, ex-admin
    Конкретно для приведенного примера можно делать так: (sizeof(text) - 1)
    Это будет работать только в подобных случаях, когда text - это статический/автоматический массив фиксированного размера (как в данном примере). -1 требуется, чтоб удалить завершающий нулевой символ.
    Преимущество перед strlen в том, что sizeof вычисляется на этапе компиляции, т.е. по факту в коде вместо этого выражения будет константа 14, вычисленная компилятором.
    Кстати, можно делать еще так: sizeof("Literal string") - 1

    Если text будет определена по другому, например char *text = "Literal string";, то такой подход уже не прокатит.
    Универсальный вариант, который будет работать для всех случаев однобайтной строки с завершающим нулем - использовать strlen.
    Ответ написан
    Комментировать
  • Как реализованы программы записи экрана и стриминга?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Используются системные api. Все полатформо зависимое, к сожалению. На винде можно делать через кучу разных апи: gdi+, dxgi, wgc. Гуглите "слово из списка capture screen".

    Далее, похоже нужно будет реализовывать виртуальную камеру. Тут гуглите апи dshow. Уже с этим можно ваш проект прикручивать к существующим стриминг платформам.

    Если же вам хочется сделать все свое (включая бакенд) то можно воспользоваться библиотекой webrtc.
    Ответ написан
    Комментировать