• Какие ограничения есть на ip адреса для SSH?

    vabka
    @vabka
    Токсичный шарпист
    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?

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

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

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

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

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

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

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

    vabka
    @vabka
    Токсичный шарпист
    Судя по тому что ты пишешь - ты неправильно запускаешь.
    В инструкции как минимум сказано, что надо какие-то галки в 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 после выключения эл.энергии?

    vabka
    @vabka
    Токсичный шарпист
    Вот что в саппорте пишут. Вроде как раз твой случай и пошаговая инструкция, что делать:
    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.
    Ответ написан
    Комментировать
  • Что такое компонент? Что такое модуль?

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

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

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

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

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

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

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

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

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

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

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

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

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

    vabka
    @vabka
    Токсичный шарпист
    Кортеж имеет фиксированный размер и по тому просто так 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?

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

    PS: из текстового описания вообще не понятно, что такое "слои" и почему между ними нужно как-то перемещаться. Попробуй добавить в вопрос пример иерархии папок из твоего репозитория.
    Ответ написан
    7 комментариев
  • Как определить, какую версию nuget установит Install-PackageProvider и как этот nuget взаимодействует с .NET SDK?

    vabka
    @vabka
    Токсичный шарпист
    Install-PackageProvider выбирает версию для установки провайдера вне зависимости от установленного .NET.
    Тот Nuget, который ты таким образом установишь не имеет отношения к тому Nuget, который будет использоваться при сборке.
    А версия будет выбрана максимальная из совместимых с той, которую ты указал, по правилам semver.
    Тоесть какая-то из 2.x.x

    Как узнать какая версия подходит для .net 6.0? Является ли она обратно совместимой?

    Никакая. .NET SDK тащит свой nuget client.
    То что ты устанавливаешь при помощи Install-PackageProvider будет использоваться только с командой Install-Package для работы с пакетами в винде.
    Ответ написан
    4 комментария
  • Видит ли работодатель мой трафик?

    vabka
    @vabka
    Токсичный шарпист
    Да, если приоритеты настроены так, что весь трафик идёт через vpn. Иначе только то что внутри сети работодателя идёт.
    Ответ написан
    Комментировать
  • C#, обработка исключений, почему нельзя обратится к свойству, через имя класса?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    потому что DivideByZeroException.Message - это попытка обратиться к статическому члену класса.
    Нет переменной - нет и возможности обратиться к данным.

    Если считаешь что так быть не должно - пиши предложение в language design, описывай зачем это надо, во что оно должно компилироваться на уровне IL, и как не сломать существующий код.
    Ответ написан
    Комментировать
  • Как помигать светодиодом на Linux?

    vabka
    @vabka
    Токсичный шарпист
    Linux же ими как-то управляет, значит это возможно.

    А с чего взял что ими линукс управляет? Ими вполне может управлять материнская плата напрямую исходя из текущего состояния.
    Ответ написан
    2 комментария