Будни программиста
- Войдите на сайт для отправки комментариев
Будет понятно для Линуксоидов и 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 в контейнере - это конечно круто, но я из другого поколения! По мне - это дебилизм.
=============
Важно добавить, что как средство разработки ИДЕА не имеет равных. И автодополнения не навязчивые, а удобные, сразу всплывающие ссылки не хепл по аргументам, навигация по всем модулям. Ну, кто писал под андроид - знает - это и есть ИДЕА. Для явы нет лучшего ИДЕ, это я вам "как краевед" говорю!
ВСКод микрософтовский взял много от ИДЕА, но кривизна рук у "мелкомягких" не дает в полной мере наслаждаться работой. Есть плагины удобные есть - дурацкие, даже от Микрософт.
Все эти флатпаки и прочие "линуксы с человеческим лицом" - это все отрыжка заботы об идиотах, типа как о новичках на форуме.
Нормальный хардкорный линукс должен конфигурироваться скриптами в /etc/rc.d, а пакеты распространяться исключительно в сорцах в формате tar.gz, причем чтоб все зависимости ты выставлял вручную
Лучше чтоб сорцы были не в tgz, а в журнале "Радио", прям в хексе. С эрратой в 12-м номере.
Порадовало, сразу видно знающего человека, видимо проходил сей путь.
А еще с построчной КС , чтоб проверять правильность ввода.
сразу видно, когда у человека вагон свободного времени и заморочки на почве безопасности
Что не так с тем чтобы иметь
?
Если у меня паранойя, это не значит что они не следят.
Если у меня паранойя, это не значит что они не следят.
прими как данность )))
PS проясни, ты действительно Линукс из сырцов собираешь?
А какой смысл собирать что-то из исходников, если ты их не вычитал?
А какой смысл собирать что-то из исходников, если ты их не вычитал?
и я о том жеж...
PS есть образ собственного файрвола, за 20 с гаком лет никто не сломал, только сейчас железа под него уж нет (ну почти нет), там да, собственной правки сырцов (не мной) и компиляции удавшейся один раз )))
Я так вижу, что никто не понял о чем речь. Речь о запуске приложений из контейнера, без зависимостей от системы и без влияния на неё.
Сама по себе идея хорошая, но для IDE - глупая, или нужно было распространять (вместе с упакованной в контейнер версией) утилиту для настройки. Пафос моего возмущения был именно этим. Я ставлю штатным способом ИДЕ и она не работает и не показывает диагностику причины. Вот о чем речь.
Надо добавить, что я зря на Джетбрейн наехал, пакет в формате "флэтпак" - чисто Убунтовская версия. На сайте джектбрейна нормальная версия, как и для Винды и для Мака.
ua6em не, я слишком ламер чтобы чото собирать, всю жизнь на windows. Но упарываться командными строками? Люблю умею практикую.
А щас смотрю в сторону линуха потому что он наконец-то становится user-friendly.
да понятно, тут немножко на отвлечённые темы поговорили )))