• Почему функция ввода вызывается несколько раз?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому, что в условии
    if(TetragonSquare() / CircleSquare4() >= 1) предполагается ввод данных.
    И в
    double circlescountDouble = TetragonSquare()  / CircleSquare();
    тоже нужно вводить данные.

    Лучше сначала ввести данные, а потом уже их анализировать, передавая в методы.
    Ответ написан
    3 комментария
  • Когда стоит использовать MikroTik/Cisco?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Микротик
    обслуживать дешевле - читай: админа найти, для школы Киска не вариант,
    для мерии - наоборот: Киска - хорошие, качественные откаты, знаю по подруге-нач IT отдела/подотдела в мерии среднего города: девочка (ну, уже женщина и мама) ни в зуб,но стабильно катается на презентации/повышение квалификации в столицу и, конечно, парочка ботанов в отделе все это тянут, привлекая оплачиваемых консультантов, все довольны
    Ответ написан
    3 комментария
  • Когда стоит использовать MikroTik/Cisco?

    @Drno
    Такое оборудование ставится потому что оно надежное,долговечно,закрывает обычно 99% всех потребностей. Один раз настроил и забыл, лет на 5.

    Всякие домашние роутеры типа асуса,тплинка итд не живут от слова совсем, под нагрузкой больше чем 3х комнатная квартира. некоторые кинетики живут, но у них нехватает фишек микротика, а стоят они не намного дешевле. Вот даже взять Ваш домашний роутер - для меня дикость, что роутер не умеет проброс портов. Потому что это доступно даже в dir300(длинк) 12летней давности))

    Оборудование cisco на порядок дороже микротика. Микротик не считает элитным оборудованием. По идее это самый низ адекватного оборудования для малых - средних предприятий.

    Ставьте микротик. Он умеет всё что понадобится в школе. И при этом будет работать без проблем.
    На этажи по POE свитчу + вифи точки.
    И весь вифи можно будет объединить в capsman(бесшовный) с нужной авторизацией
    Ответ написан
    5 комментариев
  • Стоит ли использовать Object как тип возвращаемого значение метода в java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Что с этим Object будет делать вызывающий? Непонятно.

    Я-бы обсудил контракт этого метода. Если он должен вернуть заглушку которая просто символизирует пустой результат вызова - то можно использовать Optional и указать опциональный тип. Если пустой список - то Collection.emptyList().

    Я не вижу никакого смысла в бизнес-приложении использовать тип Object. Он - технический. А не прикладной.
    Ответ написан
    5 комментариев
  • Как подключиться в БД postgresql через докер?

    @Erimax Автор вопроса
    Получился, сделал так.

    postgres:
        image: postgres
        restart: unless-stopped
        tty: true
        environment:
          POSTGRES_USER: root
          POSTGRES_PASSWORD: root
          POSTGRES_DB: data
        ports:
          - "5432:5432"
        volumes:
          - ./docker/postgres:/var/lib/postgresql/data
        networks:
          - laravel


    DB_CONNECTION=pgsql
    DB_HOST=postgres
    DB_PORT=5432
    DB_DATABASE=data
    DB_USERNAME=root
    DB_PASSWORD=root
    Ответ написан
    2 комментария
  • Очень простое решение SMTP+POP3 сервера с TLS под Linux?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    iredmail настроит все за вас
    Ответ написан
    2 комментария
  • Как записать оба значения в result?

    @Chesterfield25 Автор вопроса
    Может кому то пригодится

    public class LoopWithStep {
      int res = getSum(5, 10);
      public static int getSum(int n, int step) {
        int result = 0;
    
        for (int i = 0; i <= n;  i = i + step) {
          result += i;
        }
    
        return result;
      }
    }
    Ответ написан
    1 комментарий
  • В чем вообще соль задания nullable полей в БД, вместо пустых значений по умолчанию, есть ли в этом какой-то сакральный смысл?

    Adamos
    @Adamos
    NULL - это не пустое поле. Это "поле не заполнено".
    Используется в тех случаях, когда разница между этими состояниями - есть.
    Кроме того, у числовых полей или дат просто нет "пустого" варианта.
    0 и '1970-01-01 0:00:00' - это значения, которые вполне могут иметь смысл.
    Например, при подсчете средних значений или интервалов NULL позволяет исключить ненужные строки.

    Если вам без разницы, заполнил юзер свои поля или нет - значение по умолчанию подходит, использовать NULL просто незачем.
    Ответ написан
    Комментировать
  • Активная блокировка VPN провайдером, решения нет?

    CityCat4
    @CityCat4 Куратор тега VPN
    //COPY01 EXEC PGM=IEBGENER
    Есть очень простой способ блокировать любой VPN независимо от того, какой там протокол вообще. Это анализ количества трафика. Когда по непонятному порту (да даже и по понятному) на непонятный сервак (даже если там есть сайт с котиками) идет жирный поток трафика - это сразу наводит на подозрения.
    Проблема большинства "защищенных" протоколов в том, что они считают противостоящую сторону дураками. А если там сидят не дураки, тоже неплохо представляющие себе, как работают сети?
    Мне видится один способ "обойти" блокировку - завести трактор :)
    Ответ написан
    2 комментария
  • Можно ли инициализировать базу данных в момент создания докер контейнера?

    Да, в Dockerfile можно прокидывать переменные из .env, и можно отдельным шагом сделать RUN, который заполнит базу какими-то начальными данными.
    Ответ написан
    1 комментарий
  • Правильно ли я использую исключения в java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Не очень понятно какая решается задача. Если это школьная лабораторная на тему изучения Exceptions - то нормально.

    Но обычно на исключения строятся такие кейсы которые неудобно ловить проверкой условия. Например ошибки I/O. И логика обработки этих ошибок обычно глобальна. Например целая процедура завершается когда нет доступа к сети. И безразлично где конкретно процедура упала. Нет сети - сразу на выход.

    И тут надо не 2 попытки делать а цикл do-while:

    do {
       input = askForInput();
    } while(input < 0);


    Кроме того sc.nextInt() бросает 3 вида исключений которые ты как-то не заметил. Их тоже надо отработать.
    Ответ написан
    Комментировать
  • Стоит ли vim усилий?

    @Vitsliputsli
    Vim - это текстовый редактор в первую очередь. Если же говорить про разработку, то в ней не нужно писать очень быстро очень много текста. А если вдруг, у вас так, то вы делаете что-то не то. Кодинг в разработке только одна из стадий и не самая длительная.
    То что vim присутствует практически везде вообще не аргумент, vim без плагинов совсем не ide.
    Тем не менее, попробуйте установить его как ide для вашего языка. Тогда выяснится, что нужно повеселиться с плагинами. Что обвес всем этим невелирует маленький быстрый редактор, и что скорость работы плагинов в разы тормознутей специализированного ide. Кто-то напишет, что я не те плагины брал, но устанавливать неофит будет так же, сделать это одной кнопкой не получится. Если цель не работать, а настраивать, то это отличный выбор.
    Есть деньги на нормальную ide, то выбор очевиден, если нет, то все равно нужно 10 раз подумать.
    Ответ написан
    1 комментарий
  • Стоит ли vim усилий?

    @luaPower
    Однозначно стоит учить. Повышается скорость редактирования текста (практически не нужно переключаться на мышь) и в целом уровень комфорта при работе в текстовом редакторе.

    Серьезным аргументом за изучение является тот факт, что Vi предустановлен практически в любой UNIX-системе. Это означает, что вы имеете один интерфейс, работая с текстом как локально, на домашней машине, так и удаленно, на сервере.

    Vim имеет обильное количество настроек и подробнейшую документацию по ним, встроенную в редактор. Есть много возможностей для адаптации редактора практически под любые нужды, в частности, имеется встроенный язык программирования для написания различных сценариев. Редактор отлично справляется с большими файлами.

    Тем не менее, эффективность использования этого редактора катастрофически снижается при отсутствии навыка слепой печати.

    UPD Добавлю, что учить то на самом деле не много. От силы пару десятков основных команд, немного практики и вот вы уже уверенный пользователь Vim.
    Ответ написан
    3 комментария
  • Почему используется декремент в данном цикле while?

    @kpechenenko
    Может быть новые имена переменных помогут вам разобраться в том, что происходит.
    class Power {
        public static void main(String args[]) {
            int осталосьСтолькоРазУмножитьРезультатНаДвойкуДляОтчета;
            int результат;
            for (int текущаяСтепеньДвойкиДляОтчета = 0; текущаяСтепеньДвойкиДляОтчета < 10; текущаяСтепеньДвойкиДляОтчета++) {
                результат = 1;
                осталосьСтолькоРазУмножитьРезультатНаДвойкуДляОтчета = текущаяСтепеньДвойкиДляОтчета;
                while (осталосьСтолькоРазУмножитьРезультатНаДвойкуДляОтчета > 0) {
                    результат *= 2;
                    осталосьСтолькоРазУмножитьРезультатНаДвойкуДляОтчета--;
                }
                System.out.println("2 в степени " + текущаяСтепеньДвойкиДляОтчета + " равно " + результат);
            }
        }
    }
    Ответ написан
    Комментировать
  • Как запустить html страницу в контейнере tomcat?

    black1277
    @black1277
    Вольный стрелок
    Нужно сразу открывать страницу документации нужного пакета в docker
    https://hub.docker.com/_/tomcat
    Там найдете, что рабочая директория в образе по умолчанию /usr/local/tomcat, команда для запуска в докер файле CMD ["catalina.sh", "run"] и др. полезную информацию.
    Ответ написан
    Комментировать
  • Как убрать кавычки в результате вывода содержимого файла после его чтения в Rust?

    vabka
    @vabka Куратор тега Rust
    {:?} использует Debug для форматирования. В твоём случае он тебе не нужен.

    Попробуй вот так:
    #[get("/index")]
    pub async fn index() -> impl Responder {
        let path = Path::new("test.txt");
        spawn_blocking(|| cat(path)).await?
    }
    
    fn cat(path: &Path) -> io::Result<String> {
        let mut f = File::open(path)?;
        let mut s = String::new();
        match f.read_to_string(&mut s) {
            Ok(_) => Ok(s),
            Err(e) => Err(e),
        }
    }


    Кстати, твоя функция cat использует синхронный IO, так что её следует вызывать в spawn_blocking.
    Но лучше будет перейти на tokio или async_std
    Ответ написан
    3 комментария
  • Как реализовать этот код(патерн) С++ на Java?

    Ну что-то типа:
    interface Warrior
    {
        void info(); // Кстати, почему void, а не string какой-нибудь?
    }
      
    class Infantryman implements Warrior
    {
      public void info() { 
          System.out.println("Infantryman");
      }
    }
      
    // Фабрики объектов
    interface Factory
    {
        Warrior createWarrior();
    }
    
    class InfantryFactory implements Factory
    {
        public Warrior createWarrior() { 
          return new Infantryman(); 
        }
    }


    Пишется очень легко, если хотябы поверхностно знать жаву. Так что прежде чем продолжать, тебе следует прочитать хотябы пару глав любой книги/учебника/курса по жаве.
    Ответ написан
    Комментировать
  • В какой лог упадет выполнение команды Whoami?

    @MoyMirok Автор вопроса
    Понял, что ни в какой лог. Потому создал лог, куда будет падать
    Ответ написан
    9 комментариев
  • Почему нет wifi интерфейса?

    @Wexter
    А откуда им быть на 2011uias-rm? он же без вайфая
    Ответ написан
    2 комментария
  • Почему ArrayList пустой?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Тут я вижу два варианта.
    1. Вы никакой асинхронщины не хотите, но вам попался асинхронный клиент. Тогда нужно что-то типа такого сделать:
    public List<Response> getAdditionalData(List<ExcelModel> excelList) {
            return Flux.fromIterable(excelList) // Превращаем лист во флюкс
                    .flatMap(excel -> webClient.get()  // по каждому элемену делаем асинхронный запрос
                            .uri(sybase + excel.getTransactionID())
                            .retrieve()
                            .bodyToMono(Response.class))
                    .collectList() // Собираем поток в лист. Тут получается Mono<List<Response>>
                    .block(); // Блокируем тред и ждем завершения. Можно в скобочках указать сколько ждать.
        }


    2. Либо вы пересаживаетесь на асинхронный стек, тогда вам нужно флюкс и отдавать, как и написал Михаил. И подписка на него дожна быть, скорее всего, где-то выше по стеку.
    public Flux<Response> getAdditionalData(List<ExcelModel> excelList) {
            return Flux.fromIterable(excelList)
                    .flatMap(excel -> webClient.get()
                            .uri(sybase + excel.getTransactionID())
                            .retrieve()
                            .bodyToMono(Response.class));
        }
    Ответ написан
    4 комментария