Задать вопрос
  • Что значит умение пользоваться linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот бы всю вакансию посмотреть, но скорее всего для работодателя это ничего не значит. Иначе бы он указывал конкретные требования к знанию linux.
    Вполне возможно, что у работодателя есть несколько сервисов или серверов, развернутых на линуксе, сам он к ним никак не касается, а постоянно привлекает сторонних специалистов и хочет быть в теме работы этих серверов-сервисов. Но это как просить уборщицу еще и столы протирать.
    На мой взгляд - это характеризует работодателя не лучшим образом, за редким исключением. Например у нас все инженеры сидят за линуксом, и большинство из них в этом самом линуксе ничего не понимает. Максимум, что им нужно, как скопировать файлы с места на место, а основная их работа в CAD. И вот у них в вакансии есть куча непонятных мне слов про CAD, дизайн, технологии производства, химию процесса, трассировку и в конце строчка - "плюсом будет знание линукс".
    Ответ написан
    4 комментария
  • Можно ли на сервере разместить одновременно сайт и прокси?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вообще-то так обычно и делают. Размещают прокси типа nginx, который перенаправляет запросы на внутренние/внешние сайты, виртуалки и контейнеры. И сам прокси тоже может жить и в контейнере и в виртуалке.

    Если все сделано в рамках одной системы, и не заморачиваться с контейнерами-виртуалками, то nginx вешается на 80-й порт, а остальные сайты сидят на других портах типа 8000-9000 и т.д. Причем обычно они вешаются на локалхост.

    И да, можно и VPN поднять.

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

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Попробуйте через AppleScript. Рецепт здесь - https://www.labnol.org/software/resize-mac-windows...
    Или так (тоже через AS) - https://alvinalexander.com/source-code/mac-os-x/ho...
    tell application "Safari"
    activate
    set the bounds of the first window to {140, 0, 1160, 775}
    end tell
    Ответ написан
  • Redis как Message Broker. Какой фреймворк использовать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, redis вполне справляется с очедью сообщений, но данные все же лучше резервировать где-то еще, он (redis) может что-то потерять при перезапусках случайных и не только. Так что если данные очень критичны, то прихранивайте их в какой нибудь лог для дальнейшего восстановления.
    Для питона есть куча фреймворков, рекомендую начать с flask, как раз очень хорошо подойдет под вашу задачу.
    Ответ написан
    Комментировать
  • Как тестировать драйвера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    С копмиляцией вам уже посдказали. Давайте я про отладку расскажу. Во первых очень желательно иметь две машины - одну для компиляции и отладки, вторую - таргет, куда все грузим и где тестируем и проверяем
    1) используем printk, в 95% случаев этого достаточно
    2) если аппаратура позволяет, используем jtag - это аппаратный модуль для отладки - 100% успех!
    3) можно использовать kgdb - не всегда это работает.

    Ну и совсем сильная магия - использовать статическую область памяти, где реализуем кольцевой буфер и туда пишем своими средствами отладочную информацию напрямую. Но для этого статическая память должна быть на каком-то из устройств, я обычно пишу в статику в часики реального времени, но не везде они есть и имеются. За то таким образом можно отлаживать абсолютно все, от NME, до драйверов высокоскоростных устройств.
    Ответ написан
    2 комментария
  • Как выгрузить базу данных из MariaDB в таблицу FXML от Scene Builder JavaFX?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    ААА ! У вас дело даже до компиляции не дошло?

    метод
    public void initialize(URL location, ResourceBundle resources)
    , в нем вы вызываете initData(); без входных аргументов,который у вас определен как
    private void initData(ActionEvent event) throws SQLException {
    . Вы либо аргумент в вызове передайте, либо сам метод поправьте и уберите параметр ActionEvent event

    Ну и напоследок. не стоит слать столько кода, достаточно ошибку и кусок кода и описание, когда и при каких обстоятельствах она происходит. За очень и очень редким исключением кто-то созиволит загрузить весь проект и его скомпилировать.
    Ответ написан
    Комментировать
  • Подключение по IP и HTTPS, не будет ли проблем?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вам нужно по сертификату на каждый домен. Либо сертификат wildcard на все поддомены вашего общего домена. Сертификат на ip брать очень и очень плохо, так как ip могут меняться, может быть куча ip на домене и т.д.
    Вообще-то nodejs лучше убрать за nginx, который и будет рулить сертификатами и перенаправлять трафик на нужные ip. Обычно делают для этого отдельный сервер с выделенным ip, на него заводят все сертификаты ваших доменов, и далее он перебрасывает запросы (проксирует) уже расшифрованный трафик на внутренние или внешние ip-адреса, лучше на внутренние. Многие провайдеры сразу предлагают такие услуги, амазон и прочие клауды типа селектел и маилру.,
    Ответ написан
  • Нужен сбор статистики по работе пользователей и загрузке сервера, linux. Чем это можно сделать?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую накатить систему мониторинга. Для этого нужна база данных, агент сдбора данных и некий сервис для отображения этих данных.
    Советую InfluxDB - ставится в один клик, обслуживания практически никакого не требует на ваших объемах.
    К ней ставите telegraf - агент сбора статистики, собирает все, что можно собрать, процессы, пользователей, сеть, диски, температуру и т.д. Тоже ставится в один клик.
    И чтобы все это просмотреть через браузер - ставите grafana. Ставится в два клика из пакетов.
    В графане нужно создать графики просмотра данных, но их можно взять уже готовые с самого сайта графины и импортировать к себе.
    В общем, мы так следим за целым кластером машин, я же так слежу за кучей отдельных серверов, где все установлено на них самих же.
    Ответ написан
    Комментировать
  • ElasticSearch выдает ошибку при добавлении нового типа?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вам эластик пишет, что type на индекс может быть только один!
    Вот это вот
    "type" => mb_strtolower($login),
    Замените на
    "type" => "_doc",
    А юзера спрячте в поле в боди.
    Ответ написан
    2 комментария
  • Что такое интерфейс и каким образом он представляет набор операций верхнему уровню?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Самое простое понятие интерфейса - сетевая розетка и штепсель (или вилка). К каждой розетке подходит свой тип вилки, например в разных странах разные стандарты.
    И вот линия передачи передает некую информацию (пусть это будет напряжение 220V), и чтобы подключиться к этой информации нужен интерфейс с одной и другой стороны (коннекторы или вилка-розетка). Тогда набором операций будет "включить вилку в розетку", и "выключить".
    Если это все перевести на программный уровень, то в понятие интерфейса может добавиться "определить тип розетки", "подать питание", "сигнализировать приемник и передатчик", "зарезервировать нагрузку, полосу пропускания" и т.д.
    Таким образом набор операций в виде "интерфеса" определяет те операции, который верхний уровень может делать с нижним, не заботясь о реализации нижнего уровня. Это как включить вилку в розетку, а уж как устроена сама передача по проводам на нижнем уровне, нас не интересует.
    Ответ написан
    Комментировать
  • Как реализовать динамические поля и секции для таблицы?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, возможно пришло время не только для монго, но и для hbase. Ваша задача, по идее очень хорошо ложится именно на hbase.
    Ответ написан
    Комментировать
  • Какие потери в связи у витой пары на расстоянии +-70метров?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я бы не стал между зданиями кидать витую пару, лучше оптику. Потому как про грозы вам уже все написали. Оптика по кабелю выйдет не сильно дороже, а в большинстве случаев в эксплуатации и дешевле.
    Ответ написан
    Комментировать
  • Линейная штриховка эффект в векторе как сделать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, в inkscape можно сделать так - https://inkscape.paint-net.ru/?id=38
    Ответ написан
    Комментировать
  • Как использовать выданный провайдером пул адресов?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если у вас web-сайты, то вполне можно обойтись и одним ip-адресом! Для этого просто достаточно настроить ваш роутер или web-сервер или reverse-proxy. Это будет гораздо лучше, чем использование еще одного адреса.
    Вот например как сделать переадресацию по HTTP/1.1 https://netflow.by/blog/item/185-proxy-mikrotik
    Ответ написан
    1 комментарий
  • Как преобразовать char в оператор?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Увы, так просто это в яве не сделать, перегрузка операторов в яве отсутствует. Нужно писать свой парсер и интерпретатор.
    Но! Самый простой вариант - использовать скрипты или классы на языке groovy, благо он с явой очень хорошо дружит. Интерпретатор и парсер уже за вас написан. Загрузите groovy, подключите jar к своему проекту, и будет щазтие.
    import groovy.util.Eval
    ....
    assert Eval.me('33*3') == 99
    assert Eval.me('"foo".toUpperCase()') == 'FOO'

    groovy-lang.org/integrating.html
    Ответ написан
    Комментировать
  • Как организовать взаимодействия java-сервера и android-клиента в локальной сети?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Конечно же к localhost андроид не подключится! Так как localhost соответствует адресу 127.0.0.1, который отвечает за локальный (loopback) интерфейс своего же устройства. Этот адрес есть на каждом устройстве или компьютере и создан для взаимодействия сетевых программ внутри операционной системы.
    Другими словами, Вам нужно указывать для подключения ip-адрес компьютера, на котором зпущен сервер.
    Ну и для обмена вполне подойдет протокол http/https, и подключаться легче и свой протокол писать не нужно, и куча фреймворков-библиотек есть для этого. На клиентской стороне вполне подойдет httpok, на серверной - springboot, jooby, spartjava и пару десятков других, включая tomcat и jetty.
    Ответ написан
  • Запуск бинарник из программы на C?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Чтобы программа выполнялась параллельно, нужно создать копию своего процесса через fork() или vfork() и уже в порожденном процессе выполнить exec(). Параметры передаются массивом строк или отдельными параметрами с завершающим нулем..
    ...
    if (fork() == 0) { // разделиться
        execl("raspistill", "raspistill", "-o", "image.jpg", "-w" ,"800", "-h", "600", "-t", "200" , "echo", "this is", (char *) 0); // заменить процесс
         perror("exec one failed"); // если что-то пошло не так, выдать ошибку
         exit(1); // здесь завершаем новый процесс, если не отработал execl
    }
    // здесь продолжение старого процесса 
    ...
    Ответ написан
  • Как запустить скомпилированную программу в Linux ( Ubuntu ) без терминала?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В линуксе, как и в виндовс, как и во всех остальных операционных системах (мне знакомых), есть два типа программ: консольные и с графическим интерфейсом.
    Консольные программы требуют наличия какого-то терминала или консоли, соответсвенно их хоть и можно запустить по двойному щелчку, не всегда результат их работы будет виден, если дополнительно не указать в каком окружении их запускать.

    Про программы с графическим интерфейсом все просто - они сразу пытаются открыть графическое окно. Но сама программа будет немного сложнее.

    Так, Вы сделали и скомпилировали консольную программу. В этом же терминале можно ее и запустить.
    Либо сделать "лаунчер" типа
    xterm ./prog
    Как сделать "лаунчер", зависит от вашего графического окружения, но обычно можно просто сделать desktop-файл, его практически все в линуксе понимают.
    Просто создайте текстовый файл prog.Desktop со следующим содержимым (Exec - полный путь до вашей программы, Icon - путь до иконки, но можно без нее)
    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Type=Application
    Terminal=true
    Exec=/path/to/executable
    Name=Name of Application
    Icon=/path/to/icon


    Вот руководство - https://www.maketecheasier.com/create-desktop-file...

    ЗЫ. Да, забыл напомнить, сделайте в вашей программе выход по ожиданию нажатия на клавишу, иначе можно ничего и не рассмотреть!
    Ответ написан
    Комментировать
  • Идеи/советы для сисадмина в школе?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    1. Поставьте сервер и сделайте на нем файлопомойку и домен авторизации и сетевых домашних каталогов (для компьютерного класса)
    2. Поставьте на него DHCP и раздавайте всем IP-адреса
    3. Поставьте FreeRadius и защитите WiFi, сделайте две WiFi сети, одну гостевую, вторую - рабочую.
    4. Если коммутаторы управляемые, можно снимать с них трафик (по snmp) и рисовать графики (Grafana/InfluxDB/Telegraf)
    5. На сервере развернуть виртуалочки для компьютерного класса

    Если это все делать под виндой, то вроде бы как в комплекте, но можно и на линуксе все воздвигнуть!
    Ответ написан
    4 комментария
  • Сервер на Java для Wordpress?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую посмотреть на три вещи apache wicket https://wicket.apache.org/, sparkjava.com и jooby.org. Особенно на последний!
    Ответ написан
    Комментировать