• Как понять, как работает этот метод в ShowBits?

    @crazywu
    Всё достаточно просто.
    Сперва создается маска из нулей и ведущей единицы mask.
    Дальше единица сдвигается в цикле по этой маске и выполняется логическая операция and с аргументом функции.
    если результатом логической операции является 0 - то для текущей позиции единицы в маске у аргумента на той же позиции стоит 0, если отличное от ноля значение - единица. В соответствии с этим они и выводятся на экран.
    spacer - это просто способ разделять выводимые биты в группы по 8 при помощи пробела.
    Ответ написан
    1 комментарий
  • Автозамена в xml файле?

    @mystifier
    Например, XSLT
    Ответ написан
    Комментировать
  • Как сделать обратный отсчет времени в java swing?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    При создании окна создаётся Event Dispatch Thread, внутри которого крутится бесконечный цикл, на каждой итерации достающий событие из очереди и запускающий обработчик для него. В обработчике бесполезно использовать циклы для изменения интерфейса, так как все изменения просто встанут в очередь и будут выполнены только на одной из следующих итераций цикла событий. И тем более нельзя останавливать Поток Обработки Событий (что вы делаете вызовом Thread.sleep(1000)), это заморозит всё приложение. Поэтому необходимо использовать предлагаемые библиотекой механизмы запуска фоновых задач и взаимодействия с ними. Например такие, как SwingUtilities.invokeLater(), Timer и SwingWorker.
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JButton;
    import javax.swing.Timer;
    
    public class Countdown {
        private final JLabel label = new JLabel("...");
        private final JButton button = new JButton("Click me");
        private final Timer timer;
        private int count = 3;
    
        public Countdown() {
            timer = new Timer(1000, e -> {
                if (count > 0) {
                    label.setText(String.valueOf(count--));
                } else {
                    ((Timer) (e.getSource())).stop();
                    count = 3;
                    button.setEnabled(true);
                }
            });
            timer.setInitialDelay(0);
    
            button.addActionListener(e -> {
                timer.start();
                button.setEnabled(false);
            });
    
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BorderLayout());
            frame.add(label, BorderLayout.PAGE_START);
            frame.add(button, BorderLayout.PAGE_END);
            frame.pack();
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            new Countdown();
        }
    }
    Ответ написан
    Комментировать
  • Изменение формы из другого потока?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега JavaFX
    Седой и строгий
    JavaFX, как и многие другие GUI-библиотеки, однопоточна. При создании окна создаётся Поток Обработки Событий, внутри которого будет работать цикл событий и обработчики событий. Вы не должны пытаться из главного потока или любого другого потока взаимодействовать с элементами графического интерфейса - это приведёт к сбою. Вы не должны внутри обработчиков событий запускать потоки - это приведёт к сбою. Вы не должны останавливать поток - это приведёт к сбою. Поэтому необходимо использовать предлагаемые библиотекой механизмы запуска фоновых задач и взаимодействия с ними - Platform.runLater(), Service, Task и т.п. Или можно придумывать собственные велосипеды, типа используемого в коде из вопроса, но тогда лучше сначала прочитать "Java Concurrency in Practice" Брайана Гетца и разобраться с паттернами.
    Ответ написан
    9 комментариев
  • Какой функциональный язык переспективнее: Erlang или Scala?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Функциональное программирование
    Седой и строгий
    Так с чего начать: Scala или Erlang(Elixir?)?

    Только вам решать. На мой взгляд лучше выучить оба и добавить ещё Clojure и Haskell. А потом уже выбирать.

    Что перспективнее у нас/за рубежом?

    Просмотрите вакансии. Сравните по количеству предложений и размерам зарплат.

    И можно их учить без знания Java?

    Можно.
    Ответ написан
    Комментировать
  • Как добавить кириллицу в таблицу itext?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Очевидно, добавлять шрифт не в параграф, а содержимое ячеек.
    Ответ написан
    1 комментарий
  • JAVA. Как поставить однку скобку в String?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    String expr = "String str = word(blabla);";
    int openParenPosition = expr.indexOf("(");
    int closeParenPosition = expr.indexOf(")");
    String arg = expr.substring(openParenPosition + 1, closeParenPosition);
    Ответ написан
    Комментировать
  • Как практиковаться в python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    но при ее чтении меня хватала депрессия и скука

    Если вы не научитесь справляться с этим, программистом вам не быть.
    Ответ написан
    Комментировать
  • Что именно передавать в потоке?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Очевидно, поток вывода в нужный вам файл
    try (OutputStream out = new FileOutputStream(new File("test.dxf"))) {
        someStreamGenerator.generate(someDoc, out);
    }
    Ответ написан
    Комментировать
  • Почему не закрывается вход и происходит ли утечка ресурсов Java?

    axifive
    @axifive
    Software Engineer
    Необходимо закрыть сканнер, когда вы закончили считывание.
    Согласно современному подходу (с JDK 7) следует обернуть в try...catch с автозакрытием ресурсов:
    String name;
    String surName;
    int yearBorn;
    int yearNow;
    try (Scanner input = new Scanner(System.in)) { // input автоматически закроется
        System.out.print("Your name:");
        name = input.nextLine();
        System.out.print("Your middle name:");
        surName = input.nextLine();
        System.out.print("What is the year now?");
        yearNow = input.nextInt();
        System.out.print("What year were you born?");
        yearBorn = input.nextInt();
        System.out.print("Hello, "+name+" "+surName+" ");
        System.out.print("Your age: "+(yearNow-yearBorn)+"");
    } catch(Exception e) {
        //Обработка исключения, если возникло.
        e.printStackTrace();
    }


    Или устаревший вариант с ручным закрытием:
    Scanner input = new Scanner(System.in);
    try {
      ...
    } catch(Exception e) {
       e.printStackTrace();
    } finally {
       input.close(); // Закрываем
    }
    Ответ написан
    2 комментария
  • Почему многие компании пишут web-приложения на Java, а не на Node или php?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Процитирую сам себя:
    У enterprise-приложений есть три основных качества:
    1. Большая и сложная кодовая база;
    2. Высокие требования по надёжности и производительности;
    3. Длительный срок эксплуатации.

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

    И добавлю, что Java изначально создавалась как язык максимально сопротивляющийся сознательному или бессознательному стремлению программиста выстрелить себе в ногу. Кроме того, она очень хорошо соответствует принципу наименьшего удивления.
    Ответ написан
    6 комментариев
  • Как сымитировать клик по определенным координатам при нажатии определенной кнопки?

    @neznae4ko
    Программирую, разрабатываю, печатаю, паяю и создаю
    я бы подключил бы ардуину дуе, поменял бы прошивку загрузчика на *lufa и вывел бы кнопку на дуине. При клике на кнопку - дуина прикидывается мышкой и шлет нужный сигнал
    Ответ написан
    Комментировать
  • Можно ли сделать анимацию картинки без знаний JS??

    Stalker_RED
    @Stalker_RED
    Да, можно.
    Ответ написан
    Комментировать
  • Существует ли на java готовое решение parser query string?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Есть такое готовое решение.
    Как вариант - написать собственную грамматику (она тут простая) и скормить её в ANTLR.
    На выходе получим файл-парсер на нужном языке, который можно уже использовать.
    Но ANTLR выгоднее использовать, когда грамматики сложные, для такого простого примера он может быть излишним
    Ответ написан
    Комментировать
  • ИП для небольшой компании торгующей софтом?

    customtema
    @customtema
    arint.ru
    Затаскают.

    ИП дешевле по налогам.

    А еще у вас очевидные проблемы с бизнес-моделью.

    Переход на "продажу своих разработок" займёт лет 10. И этот переход - не бизнес, а гребанная самозанятость. Однако, головной боли у вас будет много. А денег будет на порядки меньше, чем вы рассчитываете.

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

    @ivan19631224
    Можно использовать пакет javax.imageio и графический API из стандартных библиотек java:
    File file = new File("C:\\фото_гор.jpg");
    BufferedImage image = ImageIO.read(file);
    Graphics2D g = image.createGraphics();
    g.setColor(Color.RED);
    g.setFont(new Font("Courier New", Font.BOLD, 50));
    g.drawString("Какой-то текст", 20, 50);
    ImageIO.write(image, "jpg", new File(file.getParentFile(), "фото_гор_с_текстом.jpg"));
    Ответ написан
    Комментировать
  • Нужна ли вузовская математика для андроид разработчика?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    За предыдущие 18 лет я программировал на 15 языках и в самых разных областях - от прошивок микроконтроллеров до EJB в распределённых медицинских системах. Единственный раз, когда мне понадобилась математика - при попытке сунуться в машинное обучение. Наверняка она требуется ещё в геймдеве, но туда я соваться не пробовал.

    Но моё мнение скромное, процитирую лучше Брагилевского
    5a26970289bbc867773359.png
    Ответ написан
    22 комментария
  • Какое название пакета для Entity классов правильнее?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Spring
    Седой и строгий
    Из этих никакое. Название пакета должно чётко передавать назначение предметной области и отношения с другими пакетами в иерархии.
    Ответ написан
    3 комментария
  • Почему не идет дальше по телу цикла?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    ans.answer = false;
    return ans;

    значит answer всегда false. Проверка if(!answer) всегда true.
    continue; // if it's empty than go to the beginning of cycle
    говорит само за себя.
    Ответ написан
    Комментировать
  • Почему виснет bootstrap?

    YumeReaver
    @YumeReaver
    Бургомистр
    Войдите в консоль разработчика => перейдите на вкладку Performance => Нажмите "Start profiling and reload page".
    По временной диаграмме посмотрите, на каком этапе идет вечная загрузка.
    Ответ написан
    1 комментарий