• По каким ТХ подбирать ИПБ для компа?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Если ТХ - это технические характеристики, то таких характеристик всего две: мощность на выходе (от аккумулятора, естественно) и время, в течение которого ИБП может безболезненно для себя её выдавать.
    Мощность надо считать только для системного блока, дисплея и клавы/мыши (остальные составные части рабочего места не в счёт, их не надо питать от ИБП), и с некоторым запасом считается, что достаточно 400...600 ватт.
    Время требуется только на то, чтобы закрыть и сохранить на диск ведущуюся в данный момент работу, и более ни на что. Принято считать, что на это в самом худшем случае достаточно 3...5 минут. Пытаться продолжить работу на аккумуляторном питании - запрещено, поскольку типичный офисно-домашний ИБП не имеет никаких средств охлаждения. Его работа в течение этих 3...5 минут возможна только за счёт тепловой инерции его составных частей, и продолжение работы за пределами этого времени приведёт лишь к появлению дыма из корпуса ИБП или срабатыванию защиты (если она есть).
    Ответ написан
    8 комментариев
  • Как вы делаете code-review?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    У code review должна быть цель. В моей практике обычно проекты небольшие и там нет отдельных тестировщиков. Получается, что code review отвечает на три вопроса:

    1. Соответствует ли функционал ТЗ?
    2. Создает ли код проблемы команде?
    3. Есть ли тут какой-то специфичный для проекта опыт, который лучше задокументировать, пока мы еще в контексте?


    Получается что-то такое:

    • До выполнения задачи: проводится анализ задачи, формулируется ТЗ. Бывает, что нужно подключиться и помочь с требованиями, с контекстом, в котором все делается. Чем более подробный анализ мы делаем и чем лучше мы понимаем контекст на этом этапе, тем больше вероятность, что потом весь процесс выполнения задачи пойдет как по маслу и code review будет чистой формальностью в конце.
    • До ревью: линтеры проверяют код на соответствие стилю, на отсутствие синтаксического бреда.
    • Дальше - проверка на соответствие функционала ТЗ. Это защита от глупых ошибок в продакшене, которые коснутся пользователей.
    • Потом - на сответствие принятым соглашениям по коду, если они есть в проекте. Обычно это архитектурные паттерны и что-то про зависимости, смотрим не создает ли код проблем окружающим, а то разные глупости порой случаются. Особенно это важно в коде, который не сам в себе, а затрагивает много чего вокруг. Иногда возникает конфликт интересов, когда что-то явно устарело, и соглашения дополняются чем-то. Чем лучше был анализ в начале, тем меньше вероятность, что тут будет, что обсуждать.
    • Дальше уточняющие вопросы по странным местам, если они есть. Это больше с целью узнать контекст задачи, почему приняты те или иные решения. Происходит передача специфичных для проекта знаний в сторону команды. Возможно там же будут какие-то рекомендации по поводу практик, на что стоит обратить внимание в следующий раз. Это будет передача опыта от команды.


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

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    У объектов тип разный - string или string[], их невозможно поместить в один массив напрямую. Но можно сделать по другому - по сложному или по простому.

    Сложный - сделать отдельный тип, который принимает либо строку, либо коллекцию объектов такого же типа. И теперь в коллекцию таких типов можно поместить иерархично.

    А можно по простому - просто использовать массив объектов. И строка, и массив строк - объекты. Но придётся явно проверять реальный тип.
    object[] arr = new object[]
    {
        "Hello World!",
        new object[]
        {
            "Hello_1",
            "Hello_2"
        }
    };
    
    foreach (object item in arr)
    {
        if (item is string str)
        {
            Console.WriteLine(str);
        }
        else if (item is object[] subarr)
        {
            foreach (object subitem in subarr)
            {
                Console.WriteLine(subitem);
            }
        }
    }

    Если в требуемом массиве нужно всего лишь два уровня, то так будет работать. Но если нужно сделать многомерный массив неизвестной размерности, то придётся использовать рекурсию:
    object[] arr = new object[]
    {
        "Hello World!",
        new object[]
        {
            "Hello_1",
            "Hello_2",
            new object[]
            {
                "Hello_11",
                "Hello_22"
            }
        }
    };
    foreach (object item in arr)
    {
        ItemAction(item, str => Console.WriteLine(str));
    }
    
    static void ItemAction(object item, Action<string> action)
    {
        if (item is string str)
        {
            action(str);
        }
        else if (item is object[] arr)
        {
            foreach (object subitem in arr)
            {
                ItemAction(subitem, action);
            }
        }
    }
    Ответ написан
    Комментировать
  • Java и выгорание на первой работе, что делать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Но начал понимать, что как будто остываю ко всему, что учил.

    Ну вот на этом этапе надо было сворачивать свое путешествие в ИТ и браться за что-то другое.

    Возможно, это реально просто не мой язык.

    Нет, это не так работает. Или нравится топтать кнопочки или нет.

    Если не нравится учиться - ищи работу для неквалифицированного персонала. Но денег там будет конечно меньше.
    Если нравится - то вообще в другую область иди
    Ответ написан
    Комментировать
  • Есть ли польза от курсов по веб-разработке?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Курсы бесполезны. Они приносят пользу только их авторам.
    Ответ написан
    Комментировать
  • Какие несколько вопросов можно задать человеку, чтобы убедиться, что его знания соответствуют описанию в резюме?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Собеседования показывают только умение проходить собеседования. Единственный верный способ проверить человека - трёхмесячный испытательный срок.
    Ответ написан
    Комментировать
  • Как отправить txt файл телеграмм-ботом?

    @judywb Автор вопроса
    Я нашел решение:
    using (var stream = System.IO.File.OpenRead(Путь до файла))
                    {
                        InputOnlineFile iof = new InputOnlineFile(stream); //оставляем также 
                        iof.FileName = "Название файла(любое)"; 
                        var send = await bot.SendDocumentAsync(chatId, iof, "Текст сообщения под файлом");
                    }
    Ответ написан
    Комментировать
  • Как сделать прозрачное окно не мешающее управлять сквозь него другими приложениями?

    SerJook
    @SerJook
    кодер
    Если говорить про Windows, то можно установить окну расширенный стиль WS_EX_TRANSPARENT, тогда оно будет пропускать события мыши.
    Ответ написан
    3 комментария
  • Есть ли порог единоразового вывода средств с Upwork после которого жизнь усложняется?

    an-tar
    @an-tar
    Full stack web developer
    Не знаю как сейчас, но еще некоторое время назад транзакция свыше 600 т.р. в эквиваленте попадала под внимание финмониторинга. Это как раз ваш случай.
    Но если у вас все оформлено (раз речь о паспорте сделки), лучше имхо выводить суммами поменьше и почаще, зачем играть с огнём-то))
    Ответ написан
    3 комментария
  • Есть ли порог единоразового вывода средств с Upwork после которого жизнь усложняется?

    opium
    @opium
    Просто люблю качественно работать
    Тупой вопрос с учётом того что копить не получится, апворк автоматом будет отправлять деньги на дефолтный метод вывода, нововведению этому уже очень много лет чтобы никто не копил деньги на апворке, так что вопрос бессмысленный
    Ответ написан
    6 комментариев
  • Как реализовать ascii графику без использование движков на c#?

    mopsicus
    @mopsicus
    А зачем Unity крякать, если она полностью доступна бесплатно?
    Ответ написан
    6 комментариев
  • Почему этот код возвращает 0?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Потому что return возвращает значение и завершает выполнение функции. Т.е. ваша итерация for срабатывает только 1 раз и после завершает свою работу. Если вы хотите выводить все результаты итерации, то нужно print(i)
    Ответ написан
    1 комментарий
  • Как воруют исходники сайтов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Обфуцируйте ядро исходника вашего проекта
    2. Привязывайте ядро к серверу
    3. Используйте SFTP с доступом по ключам для работы с файлами на удалённом сервере.
    4. Проверяйте свой ПК антивирусом перед работой с новым сайтом.
    5. Используйте двухфакторную аутентификацию вашей электронной почты (к которой привязан хостинг).
    6. Проверяйте (фильтруйте) все входящие данные, поступающие от клиентов к вашему проекту.
    7. Выбирайте только проверенные хостинги.
    Ответ написан
    1 комментарий
  • Как анализировать историю барузера?

    @loxxx228322 Автор вопроса
    Хочу всё знать
    Нашел решение, ManicTime. Спасибо ребята, всем любви)
    Ответ написан
    Комментировать
  • Как hr-ы или кадровики относятся к отсутствию записи работы в трудовой?

    php666
    @php666
    PHP-макака
    Работодатель не смотрит в трудовую НИКОГДА. Он смотрит в резюме, потом - на собеседование.
    Я несколько раз умышленно на полгода завышал в своем резюме стаж по некоторым конторам, чтобы работодателя не отпугивал срок в 1 год на паре рабочих мест подряд. Прокатывало. Когда тебя приняли- всем плевать, что у тебя в трудовой, хоть слово Х@Й будет написано во всю страницу (у меня, кстати, нечто похожее в трудовой написано, дали вкладыш, гггг).
    Ответ написан
    5 комментариев
  • На каком ЯП пишут эксплоиты?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Эксплойт - это программа которая автомотизирует использование уязвимости в ПО.

    Так что, на чем напишете, на том и будет.
    Ответ написан
    Комментировать