Задать вопрос
  • Какая библиотека идентична с requests и bs4, но парсит сайт с JS?

    requests решает всего одну задачу - отправку http запросов.
    bs4 - только html парсит.

    Если тебе нужен парсинг и выполнение js - тебе нужен программно-управлякмый браузер.
    Как пример - уже упомянутый selenium или playwright.

    Переписать уже написанный код тебе в любом случае придётся.
    Ответ написан
    Комментировать
  • Насколько законно для крупной компании пробивать человека по почте?

    Во-первых это не форум психологической помощи, а при ограниченных данных - вас можно максимум что утешить.

    Чтобы определить что что-то законно или незаконно - нужно сначала определить, что вообще произошло без этих преамбул о плохом коде и эмоциях.

    Сейчас я по твоим словам вижу, что ты:
    1. Отправил разработчикам письмо с оскорблениями и угрозами - это уже как минимум некрасиво, а может даже и незаконно.
    2. Они взяли адрес электронной почты, с которой ты письмо отправил, загуглили, нашли твою личную страничку на каком-нибудь условном linkedin, где ты указал её как контактную, увидели там компанию, в которой ты сейчас работаешь.
    3. Отправили на неё письмо с требованием извинений от тебя как сотрудника этой компании.

    Гуглёж и отправка писем не является нарушением закона.

    PS: Что такое "пробив по почте"?
    Ответ написан
    1 комментарий
  • Есть ли такой сервис с AI?

    Для этого ИИ не нужен.
    Гугли "палитра по фото"
    Ответ написан
    5 комментариев
  • Какие ограничения есть на ip адреса для SSH?

    SSH никаких особенных ограничений на ip-адреса не накладывает.
    127.0.0.1 - это вполне допустимый адрес, к которому можно подключиться.

    Ну давай по порядку:
    1.
    • 151.248.113.78 - вроде ок
    • 127.0.0.1 - точно мимо, тк локалхост
    • 194.85.283.12 - невалидный адрес. ipv4 - это четыре 8битных числа. 283 не входит в этот диапазон
    • 192.168.15.2 - подозрительно похож на адрес в локальной сети
    • 172.16.0.92 - аналогично
    • 185.76.145.0 - подозрительно похоже на адрес подсети, но пока карандашом
    • 10.55.84.56 - что-то подозреваем

    2. Идём смотреть, какие адреса точно являются локальными
    • 151.248.113.78 - не локальный
    • 192.168.15.2 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 172.16.0.92 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена
    • 185.76.145.0 - не локальный
    • 10.55.84.56 - Для использования в частных сетях. RFC 1918. Глобальная маршрутизация запрещена

    Остаются всего два адреса:
    151.248.113.78 и 185.76.145.0
    Причём второй может оказаться невалидным, если подсеть /24
    Ответ написан
    Комментировать
  • Делят ли файлы в nodeJS?

    Посмотри на nestjs - там вполне opinioated архитектура.
    Правда если понравится nest - не понятно, зачем вообще нода (ибо можно тогда на какой-нибудь из "более взрослых" языков перейти. Типа того же C# + asp net core)
    Ответ написан
  • Какие есть программы для самостоятельного учёта рабочего времени?

    https://timewarrior.net/ Бесплатное, настраиваемое, оффлайн, работает из командной строки и не нагружает пк.
    Ответ написан
    7 комментариев
  • Какую БД выбрать?

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

    "Тот кто имеет доступ" всегда может форматнуть диски)
    Это решается просто - не выдавать доступы никому.
    Вообще подобную гарантию только блокчейн даёт. И то только распределённый между несколькими акторами.(несколько разных организаций с разными интересами как минимум. Миллионы людей - как максимум. Тогда у этих разных организаций будет стимул контролировать друг друга, а у сотрудников этих организаций - не будет стимула входить в сговор)

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

    Что вообще за данные храниться будут?
    Если это какие-то финансовые транзакции, то можно посмотреть на tigerbeetle, тк он в общем-то на это и нацелен: append only, оптимизирован для финансов (Используется концепция счетов, где с одного уходят деньги, а на другой приходят), масштабируемый, имеет огромную пропускную способностью (под миллион TPS).
    Из преимуществ - главный минус: абсолютно никакая гибкость.

    Из требований не вижу никаких проблем использовать постгрес, кроме хотелки "как можно проще"
    Ответ написан
    Комментировать
  • Дрон edu.ard не подключается к scratch, что делать?

    Судя по тому что ты пишешь - ты неправильно запускаешь.
    В инструкции как минимум сказано, что надо какие-то галки в scratch нажать, подключиться нужно через провод, чтобы разблокировать и что-то там нажать в QGC.

    И сначала происходит подготовка программы полёта, а уже потом - подключение.
    Для начала вам необходимо составить программу полёта в интерфейсе Scratch3 и сохранить ее нажав File -- Save to your computer ( Файл -- Сохранить на свой компьютер).


    Подключите дрон к компьютеру через провод для снятия блокировки управления. Зайдите в QGC и в разделе Parameters наверху в поиске напишите ARM. В пункте ARMING_CHECK снимите галочку RC CHANNELS и сохраните изменения.


    Перед стартом программы вы должны убедиться, что батарея заряжена. Для этого в левом меню поставьте галочку перед блоками BATTERY VOLTAGE. Если заряд батареи ниже 3.8V то рекомендуется поменять батарею на заряженную полностью.

    spaces%2F-M92_2n185Eu1w70HzxS%2Fuploads%2FYx8ZDR5ui3FNp08GAyuZ%2Fimage_2021-11-22_15-49-30.png?alt=media&token=904f32c9-9b53-41e6-947a-897d648f79ac

    И уже после этого, когда программа подготовлена и дрон готов к запуску (ARMED):

    Этапы осуществления полёта по программе:
    • Закройте Skratch3 на вашем компьютере предварительно сохранив программу
    • Установите квадрокоптер в центр полётного пространства (аэрокуб)
    • Включите питание квадрокоптера и быстро поставьте его на пол
    • На компьютере который будет исполнять программу подключитесь по WIFI к квадрокоптеру используя точку доступа EDU.ARD-***
    • После успешного подключения к точке откройте приложение Scratch3
    • Загрузите программу из сохраненных
    • Нажмите зеленый флажок или пробел (если он задан в условии начала события) для старта программы



    При этом в момент запуска Scratch должен видеть дрон - это можно определить по индикатору Battery voltage
    Ответ написан
    Комментировать
  • Состояние Huawey E9000 после выключения эл.энергии?

    Вот что в саппорте пишут. Вроде как раз твой случай и пошаговая инструкция, что делать:
    https://support.huawei.com/hedex/hdx.do?docid=EDOC...


    Possible Causes:

    The data configuration is incorrect.
    The network cable is not properly connected.
    The board is faulty.
    The service plane of the switch module is not powered on.
    Ответ написан
    Комментировать
  • Что такое компонент? Что такое модуль?

    Существую 2 термина, компонент и модуль. Но что они обозначают?

    Зависит от контекста.
    Начнём с компонента, компонент, как мне представляется...

    Вот это "как мне представляется" будет зависеть от контекста => дальше можно не читать.

    А судя по схеме зависимостей компонентов (из раздела "принцип ацикличности зависимостей"), автор объединяет в компонент Controllers все контроллеры, в Entities все сущности:

    Если обратишь внимание на текст, то там написано "типичная диаграмма компонентов", а не "эталонная архитектура".

    Судя по всему у автора слой === компонент?

    Видимо. А есть Jimmy Bogart, который делает наоборот: https://www.youtube.com/watch?v=5kOzZz2vj2o

    PS: википедия
    Модуль (программирование) — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части.

    Модуль - это какая-то часть программы, которой дали имя. (например функция или класс)
    Видимо тут Модуль = Единица (Unit)

    (Компонент) В программировании — множество классов и языковых конструкций, объединенных по общему признаку, предназначенного для повторного использования и развёртывания. В большинстве языков программирования нет языковых конструкций прямо отражающих понятие компонента. Компоненты реализуются с помощью стандартных конструкций, таких как классы

    Компонент - какая-то самодостаточная совокупность из модулей, которая может использоваться повторно.

    Но в других контекстах это может быть иначе.
    Ответ написан
    Комментировать
  • Почему не могу добавить dockerfile в проект?

    Да, из-за этого - об этом и говорится в ошибке.
    Решить можешь тремя вариантами:
    1. Скопируй DLL из того проекта в этот.
    2. Скопируй сам проект
    3. Упакуй тот проект как nuget-пакет
    Ответ написан
  • Как сделать collect в кортеж?

    vabka
    @vabka Куратор тега Rust
    Кортеж имеет фиксированный размер и по тому просто так collect сделать нельзя.
    Тут тебе три варианта:
    1. Вроде в itertools есть реализации collect для небольших гомогенных кортежей.
    2. Делай collect в Vec и бери элементы из него
    3. Сделай два раза next на итераторе

    Код

    раз
    fn main() {
        let items = [1,2];
        let mut iter = items.into_iter().map(|x|5+x);
        let a = iter.next().unwrap();
        let b = iter.next().unwrap();
        println!("{a} {b}");
    }


    Два:
    fn main() {
        let items = [1,2];
        let [a,b] = items.map(|x|5+x);
        println!("{a} {b}");
    }


    Три:
    use itertools::Itertools; // 0.9.0
    
    fn main() {
        let items = [1,2];
        let (a,b) = items.iter().map(|x|5+x).next_tuple().unwrap();
        println!("{a} {b}");
    }

    Ответ написан
    4 комментария
  • Почему на хабр карьере так мало вакансий для разработчиков уровня Junior?

    Всегда так было. Всем нужен чел с опытом, который сразу сможет начать работать, а не Джун, которого ещё год обучать придется, чтобы он пользу начал приносить.

    + самих джунов много и если вакансии на них появляются, то их очень быстро закрывают.

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

    Кажется, что если тебе не подходит addForce, то манипулируй скоростью напрямую.
    Ответ написан
    Комментировать
  • Почему может не срабатывать финализатор при вызове GC.Collect?

    1. Финализация вполне может быть отложена по усмотрению сборщика мусора
    2. JIT вполне может так скомпилировать твой код, что вот этот = null будет опущен => при поиске ссылок, ссылка всё ещё будет на стеке.
    Попробуй вынести в новый метод и посмотреть там.

    Ну и такой код как у тебя в реальном мире лучше не использовать (это я про принудительный вызов гц, логи в финализаторе, и финализатор который не чистит неуправляемые ресурсы)

    PS: читаем внимательно документацию и особенно слова "не гарантирует"

    Используйте параметр , mode чтобы указать, должна ли сборка мусора происходить немедленно или только при оптимальном времени для освобождения объектов. Использование этого метода не гарантирует, что вся недоступная память в указанном поколении будет освобождена.

    Чтобы настроить навязчивость сборки мусора в критические периоды в приложении, задайте LatencyMode свойство .

    Сборщик мусора не собирает объекты с номером поколения, превышающим указанное параметром generation . Используйте свойство , MaxGeneration чтобы определить максимально допустимое generationзначение .

    Чтобы сборщик мусора учитывал все объекты независимо от их создания, используйте версию этого метода, которая не принимает параметров.

    Чтобы сборщик мусора отнимает объекты до указанного поколения объектов, используйте перегрузку GC.Collect(Int32) метода . При указании максимального поколения собираются все объекты.
    Ответ написан
    5 комментариев
  • Куда развиваться верстальщику?

    Если хочешь стать тимлидом - надо не на фрилансе сидеть, а в офис идти.
    Ну и рано пока об этом тебе думать.


    Есть ли в вебе что-то кроме создания простых сайтов.

    Наверное есть и создание сложных сайтов)

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

    Вроде бы сами китайцы придумали shadowsocks, чтобы блокировки обходить - может сработает.
    Ответ написан
    Комментировать
  • Как получить input из iframe?

    Никак.
    Ответ написан
    Комментировать
  • Как правильно и удобнее всего разрабатывать модульное ПО?

    25 проектов в решении - это вполне нормальное количество и ничего особенного с этим делать не нужно. (Видел решения, где их под сотню).
    Хотя не исключаю вариант, что на самом деле такое разделение излишнее.

    Добавление nuget, сабмодулей и другого подобного - только усложнит процесс, особенно если ты разрабатываешь это в одиночку и принесёт только вред, если ч помощью них ты хотел только облегчить жизнь.

    Лучше попробуй конкретизировать, как именно проявляется неудобство - тогда и будет вариант решения.
    Подумай, почему у тебя вообще столько проектов?
    Можно ли их объединить? Если нельзя, то почему ты так думаешь?

    PS: из текстового описания вообще не понятно, что такое "слои" и почему между ними нужно как-то перемещаться. Попробуй добавить в вопрос пример иерархии папок из твоего репозитория.
    Ответ написан
    7 комментариев