Будни программиста

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Будет понятно для Линуксоидов и java программистов, остальным может показаться забавным.

=================

Пояснения и вступление. Ну или "преамбула", как на Анкдот.ру принято ;))

Давно мне хотелось сделать что-то важное для людей... не надо скорую вызывать, так бывает, может витаминов не хватает?

Решил я поколдовать с Arduino IDE и начал кусочками всякие модули работы с сериалом отлаживать в Нетбинсе. Но вдруг меня толкнуло, что я занимаюсь херней. Как человек, привыкший к комфорту Андроид-Студии, может пользоваться этим корявым убожеством (Netbeans)??? Немедленно иду на джетбрейнс, с целью поставить Intellij IDEA(это на ней сделана Андроид Студия) и не ипать себе мозг! Читаю, что для Убунту, а я пользуюсь Линукс Минт, (та же Убанта, но вид сбоку) есть родной пакет в репозитории. Ставлю. Запускаю самый примитивный тест на три строчки, который печатает входные данные из сериала.

package com.company;

import jssc.*;

public class Main {
    private static SerialPort serialPort;

    public static void main(String[] args) {
        // write your code here

        String[] portNames = SerialPortList.getPortNames();
        System.out.println("всего портов:" + portNames.length);
        for (String portName : portNames) {
            System.out.println(portName);
        }

        serialPort = new SerialPort("/dev/ttyUSB0");
        try {
            serialPort.openPort();
            serialPort.setParams(SerialPort.BAUDRATE_115200,
                    SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE);

            serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR);

        } catch (SerialPortException ex) {
            ex.printStackTrace();
        }
    }

    private static class PortReader implements SerialPortEventListener {

        @Override
        public void serialEvent(SerialPortEvent event) {
            if (event.isRXCHAR() && event.getEventValue() > 0) {
                try {
                    String data = serialPort.readString(event.getEventValue());
                    System.out.println(data);

                } catch (SerialPortException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
}

НЕ МОГУ ОТКРЫТЬ ПОРТ, нет такого /dev/ttyUSB0, говорит мне ИДЕА. ЧЗнХ???? Грешу, что может букаффку пропустил, запускаю тест в Нетбинсе - норм. Аааа! - думаю, JDK другой, ставлю 11, проверяю - хер. 8-ой - тот же хер! ЧЗнХ?!!!

Печатаю список портов - их нет, вообще нет портов в системе ;))))). Напился самогона и лег спать. 

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

==================

Собственно объяснение.

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

ВНИМАТЕЛЬНО!!!! Мля! Это IDE разработчика, из которого нет доступа даже к установленному в системе JDK! К портам и прочему. Инструмент разработчика, матьево! Мля, Мля и еще раз - мля! Причем перейдя на гребаный флэтпак, нигде на сайте джетбрейн НЕ НАПИСАНО, что разрешения выставлены по умолчанию, и что нужно настроить флэтпак. В Линукс Минт, "искаропки" нет средства управления разрешениями, можно файл править руками, можно поставить утилиту. Да я готов, как старый Линуксоид править руками хоть код ядра! Но предупредить можно? Я день голову ломал, прежде чем "голос во сне" подсказал! ;))

Короче я конечно снес флэтпаковую версию и поставил обычную. IDE в контейнере - это конечно круто, но я из другого поколения! По мне - это дебилизм.

=============

Важно добавить, что как средство разработки ИДЕА не имеет равных. И автодополнения не навязчивые, а удобные, сразу всплывающие ссылки не хепл по аргументам, навигация по всем модулям. Ну, кто писал под андроид - знает - это и есть ИДЕА. Для явы нет лучшего ИДЕ, это я вам "как краевед" говорю!

ВСКод микрософтовский взял много от ИДЕА, но кривизна рук у "мелкомягких" не дает в полной мере наслаждаться работой. Есть плагины удобные есть - дурацкие, даже от Микрософт.

b707
Offline
Зарегистрирован: 26.05.2017

Все эти флатпаки и прочие "линуксы с человеческим лицом" - это все отрыжка заботы об идиотах, типа как о новичках на форуме.
Нормальный хардкорный линукс должен конфигурироваться скриптами в /etc/rc.d, а пакеты распространяться исключительно в сорцах в формате tar.gz, причем чтоб все зависимости ты выставлял вручную

sadman41
Offline
Зарегистрирован: 19.10.2016

Лучше чтоб сорцы были не в tgz, а в журнале "Радио", прям в хексе. С эрратой в 12-м номере.

smart_pic
Offline
Зарегистрирован: 17.04.2016

sadman41 пишет:
Лучше чтоб сорцы были не в tgz, а в журнале "Радио", прям в хексе. С эрратой в 12-м номере.

Порадовало, сразу видно знающего человека, видимо проходил сей путь.

А еще с построчной КС , чтоб проверять правильность ввода.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:
Все эти флатпаки и прочие "линуксы с человеческим лицом" - это все отрыжка заботы об идиотах, типа как о новичках на форуме. Нормальный хардкорный линукс должен конфигурироваться скриптами в /etc/rc.d, а пакеты распространяться исключительно в сорцах в формате tar.gz, причем чтоб все зависимости ты выставлял вручную

сразу видно, когда у человека вагон свободного времени и заморочки на почве безопасности

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Что не так с тем чтобы иметь

ua6em пишет:
заморочки на почве безопасности

?

Если у меня паранойя, это не значит что они не следят.

-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEYGrdBBYJKwYBBAHaRw8BAQdAAxYgLkf5S8JH2gZnL860uuvz4JmAvbRlRyWb
oBm/Lwe0CkFybGVlbiBtc2eIlgQTFggAPhYhBB5pKm29FzyGoWp/Df2mYpOewN4f
BQJgat0EAhsDBQkDwgcsBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEP2mYpOe
wN4fAS4BANhVCflpwKeruvCTDpQfursqSugZ0hfn9tqSjhz0UWgzAP9qx7bYRLF/
VKdayaoOkhpjAhJQKNnolIPc6QTKrE2jDrg4BGBq3QQSCisGAQQBl1UBBQEBB0CK
pTkQsmw9TTwe7v2y736Xgjc9+zvtV1ayLgFTA0JsewMBCAeIfgQYFggAJhYhBB5p
Km29FzyGoWp/Df2mYpOewN4fBQJgat0EAhsMBQkDwgcsAAoJEP2mYpOewN4f8UYB
AMh3ew1CzGQMMgeTLmfHFWTOThXF1bLK9lGujEA9e8gBAQCAC5rqVMtxzdtmzTz9
xr9JL9szQyCurJEHeLafUGHDDg==
=6meu
-----END PGP PUBLIC KEY BLOCK-----

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Voodoo Doll пишет:

Если у меня паранойя, это не значит что они не следят.

прими как данность )))

PS проясни, ты действительно Линукс из сырцов собираешь?

sadman41
Offline
Зарегистрирован: 19.10.2016

А какой смысл собирать что-то из исходников, если ты их не вычитал?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

А какой смысл собирать что-то из исходников, если ты их не вычитал?

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

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

Сама по себе идея хорошая, но для IDE - глупая, или нужно было распространять (вместе с упакованной в контейнер версией) утилиту для настройки. Пафос моего возмущения был именно этим. Я ставлю штатным способом ИДЕ и она не работает и не показывает диагностику причины. Вот о чем речь.

Надо добавить, что я зря на Джетбрейн наехал, пакет в формате "флэтпак" - чисто Убунтовская версия. На сайте джектбрейна нормальная версия, как и для Винды и для Мака.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

ua6em не, я слишком ламер чтобы чото собирать, всю жизнь на windows. Но упарываться командными строками? Люблю умею практикую.

А щас смотрю в сторону линуха потому что он наконец-то становится user-friendly.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

да понятно, тут немножко на отвлечённые темы поговорили )))