Задать вопрос
  • Как выглядит коммуникация между frontend и backend при использовании ZipOutputStream?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В вашем случае - взаимодействия нет, если конечно frontend на является нативным приложением.
    Поясню:
    1) backend подготавливает zip-архив и шлет его в бинарном виде через GET/POST/PUT, выставляя заголовок
    Content-Type: application/zip
    и возможно
    Content-Disposition: attachment; filename="myarchive.zip"

    2) frontend, принимая данный ответ на свой запрос:
    - если это браузер, то просто скачает файл (если не использовали Blob или что-то подобное),
    - если это приложение, то получит бинарный поток, который кладет самостоятельно на диск и распаковывает
    - если же frontend в виде JS в браузере примет этот поток, то средств его распаковать у браузера нет! можно только показать прогрессию загрузки.
    Ответ написан
    7 комментариев
  • Как сделать авто дополнение ввода как в PowerShell?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    А еще, ко всем прочим ответам, рекомендую плпробовать вместо bash установить по умолчанию fish https://fishshell.com/
    Ответ написан
    Комментировать
  • На чем писать Java Desktop приложение?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Есть javafx - это основное, но...
    Есть конечно же еще eclipse SWT, тоже очень удобная библиотека для всяких GUI - https://github.com/eclipse-platform/eclipse.platfo...
    Есть Skija https://github.com/HumbleUI/Skija/

    А еще, и это теперь мой фаворит - запускаем браузер и цепляемся к нему локально!
    Ответ написан
    Комментировать
  • Как можно реализовать фиксирование заброшенной шайбы в ворота?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Фиксацию шайбы нужно делать на скоростной видеокамере. Вопрос, что нормальная скоростная камера должна быть как минимум 120 fps, и чем выше, эти самые fps, тем лучше.

    Поэтому для видеофиксации линий, бросков, и прочей спортивной хрени ставят обычно линейные видеокамеры. Картинка с них так себе, мягко говоря, толкьо для компухтерной обработки (интернет в помошь), но, с той картинки можно однозначно запечатлеть шайбу, бегуна, авто и прочие спортивные снаряды, пересекающие некую черту. - https://en.wikipedia.org/wiki/Line-scan_camera

    И да, скорее всего это будет Ч/Б камера.

    Про блютуз на спортивных площадках можно просто забыть! Пр и большом стечении народа он работает в радиусе полу метра. Wifi еще как-то подходит, но нужна направленная антена. Иначе приходит телевидение со своими направленными антеннами, передатчиками для SDI и у вас все ложится.
    (В течении 7 лет проводил спортивные мероприятия, знаю о чем пишу).
    И Увы, это дорого, очень дорого!

    Конкретно к хоккею, вот статья - https://www.silversevensens.com/nhl-puck-tracking-...
    Ответ написан
    Комментировать
  • Как при помощи языка Python создать спецификацию ГОСТ 2.108-68 ЕСКД в формате docx?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    В общем, все что касается PDF и ГОСТ, это сложно и очень-очень муторно. Я бы все делал в latex. А его генерировал бы из шаблона.

    Что касается docx, то его тоже можно генерировать из шаблона. Рекомендую - https://github.com/elapouya/python-docx-template
    Лучшего скорее всего ничего не найдете, ну если только на java и clojure - https://github.com/erdos/stencil :)

    А еще лучше - налепить шаблонов ГОСТ и сверху по ним печатать, установив правильные отступы на страницы и междустрочный шаг!
    И да, типографии сразу продают готовые листы шаблонов по ГОСТ.

    ЗЫ. Какой же это гиморрой я вам скажу... Как же хорошо, что я этим больше не занимаюсь!
    ЗЫЫ. И да - цифра 68 в ГОСТ 2.108-68 означает год выпуска сего опуса, когда компухтеров и текстовых процессоров и в помине не было!
    Ответ написан
    Комментировать
  • Как перенести действующие почтовые ящике с домена платного на свой?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Не знаю, как там в свиндоуз вашем, но под нормальные платформы есть утилитка https://github.com/gburd/isync
    Ответ написан
    6 комментариев
  • Настраиваю Syslogd и ещё плюсом audit, можно ли вывести на удаленный syslog сервер развернутую информацию, а не хешированную?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Для логов я бы сразу настроил что-то типа victorialogs, и собирал бы их централизованно.
    Ну или в elasticsearch клал бы, но первое более лучшее будет.
    https://docs.victoriametrics.com/victorialogs/data...

    Чем хорошо? Сразу приличный поиск, компрессия и ротация (по умолчанию 180 дней, если не ошибаюсь). Не нужно лазить по куче файлов, ну а поиск просто почти моментальный.
    Ответ написан
    Комментировать
  • Как проверить ходит ли multicast трафик между маршрутизаторами mikrotik?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Пропишите на порту с vlc ingress-группу.
    И посмотрите, не блокирует ли фаерволл мультикаст на самом компе, такое часто бываем во всяких свиндоуз. Также, если сетевых карт много, то мультикаст может не уходить на нужную карточку, тогда нужно настроить роутинг. Как в винде не помню, а в линуксах что-то типа
    ip r add 225.10.10.10/24 via dev eth123
    Ответ написан
  • Какой патч-корд мне нужен?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну вот что посоветую - берите плоские патч-корды!
    Как-то раз 10 лет назад накупили таких на проект. Пара штук до сих пор в рюкзаке ездит.
    Ничего не поломалось, оплетка не треснула. Цена на 5-10 процентов выше обычных, но они действительно очень живучие.

    С тех пор, если есть возможность по бюджету, то закупаю только такие.
    Из рюкзака. Оранжевый - более 10 лет, желтый - около года.
    67ea6dee6f682323682561.jpeg
    Ответ написан
    3 комментария
  • В асинхронной функции при создании массива он будет асинхронным или обычным python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, будет работать асинхронно.
    Но есть вопросы, если что-то добавлять в процессе в глобальную переменную.
    Также есть вопросы в ползании в базу данных, тоже должно быть асинхронно.
    Ответ написан
    Комментировать
  • 301 redirect в apache2?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Рекомендую отказаться от заббикса и перейти на prometheus, а лучше сразу на victoriametrics (VM) + grafana
    1) Заббикс тежелый, причем тежелый во всем. И в настройке и в администрировании и в использовании.
    2) В VM можно вливатьи собирать статистику с кучи клиентов
    3) VM практически не нужно настраивать
    4) В Графане доступны любые графики и алерты
    5) Систему очень легко делить на компоненты, отдельно можно поставить независимую систему алертов, забирать самому метрики и их же добавлять
    6) Можно собирать статистику не только с системы, а еще и с приложений типа nginx/haproxy или публиковать свои собственные метрики, например через curl и bash :)

    В общем - заббикс был очень хорошим продуктом лет эдак 10 назад. Но сейчас это прошлый век, увы...

    Еще раз подытожу:
    1) качаем и запускаем victoriametrics - один исполняемый файл и мааленький конфиг к нему
    myvictoriametrics.yaml
    scrape_configs:
    - job_name: node-exporter
      static_configs:
      - targets:
        - http://localhost:9100/metrics

    Запускаем
    ./victoria-metrics-prod -promscrape.config=myvictoriametrics.yaml


    2) Качаем node_exporter - тоже один исполняемый файл, будет собирать статистику, а VM будет ее забирать
    Запускаем ./node_exporter

    3) Ставим grafana (можно и из пакетов), добавляем коннектор к prometheus, импортируем дашбоард для node_exporter (подойдет любой из доброго десятка с сайта графаны)

    4) Смотрим графики и учимся настраивать алерты, например на почту.

    5) На удаленные компы ставим или node_exporter, или любой другой клиент для сбора статистики, хоть collectd. Прописываем или в наш маленький конфиг для сбора, или pull на хост с VM.

    Ну и на посошок, на почитать - https://habr.com/ru/articles/652185/
    Ответ написан
    1 комментарий
  • Почему counter = 1?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Потому что counter = 1 + (1 + 1) равно трем (3)
    Ответ написан
    Комментировать
  • Как полностью удалить Ред ОС с компьютера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Форматировать опасно, можно остаться без загрузчика.
    Если система с EFI, то просто переклбчить загрузку с нужной ОС через BIOS, и уже после этого форматировать.
    Ответ написан
    Комментировать
  • Как получить имя узла в сети?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если DHCP сервер ничего не регистрирует в DNS/AC (например через протокол DDNS), то никакие "имена" устройствам не будут присваиваться.
    Ну а еще наверняка есть куча просто статических IP-адресов, которые не раздаются сервером DHCP.
    И до кучи - не все отвечают на ping и прочую лабуду, оставаясь "невидимками" внутри сети.
    Так что в любом случае можно уповать только на карту сети, полученную с коммутаторов.
    Ответ написан
    Комментировать
  • Почему при подключении с помощью последовательного порта не работает ввод и черный экран?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    0) RJ-45 может быть не RS-232, а может быть просто ethernet, и COM-порт там работать не будет никогда!
    1) убедиться, что кабель рабочий и правильно распаян
    2) прочитать доку, возможно нужен нуль-модемный кабель
    3) правильно ли выставлена скорость, стоповые биты, разрядность, xon/xoff и flow control.
    4) проверить например работу через null-modem кабель на двух компах.
    Ответ написан
  • Как можно организовать кластерный аналог CRON?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, самый простой способ, чтобы все было хорошо и кудряво - поставить очередь сообщений!
    Например rabbitmq или kafka.
    Скрипты из cron переписываются таким образом, чтобы они публиковали сообщения в нужные топики.
    А скрипты, которые выполняют работу, запускались бы по приходу сообщений в нужный топик.
    Если делать на kafka, то скрипты в одной очереди из одной группы будут получать сообщения попеременно. Единственное - нужно задать нужное количество партиций в топике, согласно количеству воркеров (ну или серверов, где это будет крутиться).
    На почитать - https://learn.conduktor.io/kafka/kafka-consumers-i...

    И да, при это можно обойтись стандартными консольными командами.
    Ответ написан
    Комментировать
  • Какой мак мини выбрать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как ни странно, память имеет значение. И 8 гиг для запуска IDE может и не хватить.
    С другой стороны, почему macos?
    Линукс в виде Ubuntu тоже неплох.
    Ответ написан
    Комментировать
  • Какая есть альтернатива radmin vpn но для linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Remina desktop чем не устраивает?
    Ответ написан
    Комментировать
  • Оконные менеджеры, с чего начать?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    И так, для начала. В современных системах используются две графические системы, несовместимые между собой.
    Xorg и Wayland. Практически все дистрибутивы плавно перемещаются к использованию Wayland.
    Соответственно, если у Вас например ubuntu, то скорее всего wayland по умолчанию.
    Теперь о графической карте. Wayland плохо работает с nvidia. И тогда лучше поставить xorg. А уж к нему поставить i3wm или что-то еще типа bspwm.
    Это была вводная часть.
    И так, у нас ubuntu с wayland и дефолтной графической оболочкой gnome. Проще всего взять и дополнительно поставить sway + waybar.
    И при логине переключать оболочки через параметры окна входа!

    Как все настроить, хорошо описано на arch wiki - https://wiki.archlinux.org/title/Sway

    Если чего не получится, спрашивайте.

    Мой рабочий конфиг ~/.config/sway
    Посмотреть мой конфиг

    # Default config for sway
    #
    # Copy this to ~/.config/sway/config and edit it to your liking.
    #
    # Read `man 5 sway` for a complete reference.
    
    ### Variables
    #
    # Logo key. Use Mod1 for Alt.
    set $mod Mod4
    # Home row direction keys, like vim
    set $left h
    set $down j
    set $up k
    set $right l
    # Your preferred terminal emulator
    set $term foot
    # Your preferred application launcher
    # Note: pass the final command to swaymsg so that the resulting window can be opened
    # on the original workspace that the command was run on.
    ##set $menu dmenu_path | wmenu | xargs swaymsg exec --
    set $menu fuzzel --no-exit-on-keyboard-focus-loss
    
    include /etc/sway/config-vars.d/*
    
    ### Output configuration
    #
    # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
    #output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
    #output * bg ~/.config/sway/wallpapers/iss071e579940orig.jpg fill
    # output * bg ~/.config/sway/wallpapers/hubble-ngc3430-spiral.webp fill
    
    output eDP-1 bg ~/.config/sway/wallpapers/heic0707a.jpg fill
    output DP-2 bg  ~/.config/sway/wallpapers/heic0515a.jpg fill
    #output DP-2 bg ~/.config/sway/wallpapers/heic0604a.jpg fill
    
    
    # output DP-2 primary
    
    # eDP-1
    workspace 1 output eDP-1
    workspace 2 output eDP-1
    workspace 3 output eDP-1
    workspace 4 output eDP-1
    workspace 5 output eDP-1
    workspace 6 output eDP-1
    # DP-2
    workspace 7 output DP-2
    workspace 8 output DP-2
    workspace 8 output DP-2
    workspace 10 output DP-2
    
    
    #
    # Example configuration:
    #
    #   output HDMI-A-1 resolution 1920x1080 position 1920,0
    #
    # You can get the names of your outputs by running: swaymsg -t get_outputs
    
    ### Idle configuration
    #
    # Example configuration:
    #
    # exec swayidle -w \
    #          timeout 300 'swaylock -f -c 000000' \
    #          timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
    #          before-sleep 'swaylock -f -c 000000'
    #
    # This will lock your screen after 300 seconds of inactivity, then turn off
    # your displays after another 300 seconds, and turn your screens back on when
    # resumed. It will also lock your screen before your computer goes to sleep.
    
    ### Input configuration
    #
    # Example configuration:
    #
    #   input "2:14:SynPS/2_Synaptics_TouchPad" {
    #       dwt enabled
    #       tap enabled
    #       natural_scroll enabled
    #       middle_emulation enabled
    #   }
    #
    # You can get the names of your inputs by running: swaymsg -t get_inputs
    # Read `man 5 sway-input` for more information about this section.
    
    input * {
        xkb_layout us,ru
        xkb_options grp:win_space_toggle
    }
    
    input "type:touchpad" {
        tap enabled
    }
    
    ### Key bindings
    #
    # Basics:
    #
        # Start a terminal
        bindsym $mod+Return exec $term
    
        # Kill focused window
        bindsym $mod+Shift+q kill
    
        # Start your launcher
        bindsym $mod+d exec $menu
    
        # Drag floating windows by holding down $mod and left mouse button.
        # Resize them with right mouse button + $mod.
        # Despite the name, also works for non-floating windows.
        # Change normal to inverse to use left mouse button for resizing and right
        # mouse button for dragging.
        floating_modifier $mod normal
    
        # Reload the configuration file
        bindsym $mod+Shift+c reload
    
        # Exit sway (logs you out of your Wayland session)
        bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
    #
    # Moving around:
    #
        # Move your focus around
        bindsym $mod+$left focus left
        bindsym $mod+$down focus down
        bindsym $mod+$up focus up
        bindsym $mod+$right focus right
        # Or use $mod+[up|down|left|right]
        bindsym $mod+Left focus left
        bindsym $mod+Down focus down
        bindsym $mod+Up focus up
        bindsym $mod+Right focus right
    
        # Move the focused window with the same, but add Shift
        bindsym $mod+Shift+$left move left
        bindsym $mod+Shift+$down move down
        bindsym $mod+Shift+$up move up
        bindsym $mod+Shift+$right move right
        # Ditto, with arrow keys
        bindsym $mod+Shift+Left move left
        bindsym $mod+Shift+Down move down
        bindsym $mod+Shift+Up move up
        bindsym $mod+Shift+Right move right
    #
    # Workspaces:
    #
        # Switch to workspace
        bindsym $mod+1 workspace number 1
        bindsym $mod+2 workspace number 2
        bindsym $mod+3 workspace number 3
        bindsym $mod+4 workspace number 4
        bindsym $mod+5 workspace number 5
        bindsym $mod+6 workspace number 6
        bindsym $mod+7 workspace number 7
        bindsym $mod+8 workspace number 8
        bindsym $mod+9 workspace number 9
        bindsym $mod+0 workspace number 10
        # Move focused container to workspace
        bindsym $mod+Shift+1 move container to workspace number 1
        bindsym $mod+Shift+2 move container to workspace number 2
        bindsym $mod+Shift+3 move container to workspace number 3
        bindsym $mod+Shift+4 move container to workspace number 4
        bindsym $mod+Shift+5 move container to workspace number 5
        bindsym $mod+Shift+6 move container to workspace number 6
        bindsym $mod+Shift+7 move container to workspace number 7
        bindsym $mod+Shift+8 move container to workspace number 8
        bindsym $mod+Shift+9 move container to workspace number 9
        bindsym $mod+Shift+0 move container to workspace number 10
        # Note: workspaces can have any name you want, not just numbers.
        # We just use 1-10 as the default.
    #
    # Layout stuff:
    #
        # You can "split" the current object of your focus with
        # $mod+b or $mod+v, for horizontal and vertical splits
        # respectively.
        bindsym $mod+b splith
        bindsym $mod+v splitv
    
        # Switch the current container between different layout styles
        bindsym $mod+s layout stacking
        bindsym $mod+w layout tabbed
        bindsym $mod+e layout toggle split
    
        # Make the current focus fullscreen
        bindsym $mod+f fullscreen
    
        # Toggle the current focus between tiling and floating mode
        bindsym $mod+Shift+space floating toggle
    
        # Swap focus between the tiling area and the floating area
        bindsym $mod+space focus mode_toggle
    
        # Move focus to the parent container
        bindsym $mod+a focus parent
    #
    # Scratchpad:
    #
        # Sway has a "scratchpad", which is a bag of holding for windows.
        # You can send windows there and get them back later.
    
        # Move the currently focused window to the scratchpad
        bindsym $mod+Shift+minus move scratchpad
    
        # Show the next scratchpad window or hide the focused scratchpad window.
        # If there are multiple scratchpad windows, this command cycles through them.
        bindsym $mod+minus scratchpad show
    #
    # Resizing containers:
    #
    mode "resize" {
        # left will shrink the containers width
        # right will grow the containers width
        # up will shrink the containers height
        # down will grow the containers height
        bindsym $left resize shrink width 10px
        bindsym $down resize grow height 10px
        bindsym $up resize shrink height 10px
        bindsym $right resize grow width 10px
    
        # Ditto, with arrow keys
        bindsym Left resize shrink width 10px
        bindsym Down resize grow height 10px
        bindsym Up resize shrink height 10px
        bindsym Right resize grow width 10px
    
        # Return to default mode
        bindsym Return mode "default"
        bindsym Escape mode "default"
    }
    bindsym $mod+r mode "resize"
    
    #
    # Status Bar:
    #
    # Read `man 5 sway-bar` for more information about this section.
    ##bar {
    ##    position top
    ##
    ##    # When the status_command prints a new line to stdout, swaybar updates.
    ##    # The default just shows the current date and time.
    ##    status_command while date +'%Y-%m-%d %X'; do sleep 1; done
    ##
    ##    colors {
    ##        statusline #ffffff
    ##        background #323232
    ##        inactive_workspace #32323200 #32323200 #5c5c5c
    ##    }
    ##}
    
    bar {
      swaybar_command waybar
    }
    
    bindsym $mod+Shift+f exec firefox
    bindsym $mod+Shift+t exec swaylock -c 000000
    bindsym $mod+Shift+p exec grimshot save area
    
    exec ~/Telegram/Telegram -startintray
    exec nm-applet --indicator
    exec mako
    exec blueman-applet
    
    bindgesture swipe:right workspace next
    bindgesture swipe:left workspace prev
    
    for_window [app_id = "org.gnome.Calculator"] floating enable
    
    include /etc/sway/config.d/*

    Ответ написан
    2 комментария