LINUX.ORG.RU

Избранные сообщения luka83

Мониторим газопоршневые установки под Linux

 fuxa, , , ,

Я очень долго искал какую-нибудь бесплатную, а лучше — свободную SCADA-систему для организации интерфейсов разных промышленных железяк. Пробовал Rapid SCADA — категорически не понравилось. Выразительные возможности никакие, логику приложения проектировали наркоманы под грибами, а самое фиговое — вся административная часть доступна только для оффтопика. Под Linux существует лишь среда исполнения.

Сидел я, смотрел на идиотские таблички редактора БД Rapid SCADA в Wine, унывал, и дёрнуло меня что-то попросить Qwen проанализировать, а что вообще есть сейчас на рынке в этой области. Кроме очевидных проприетарных вариантов, LLM предложила обратить внимание на проект FUXA: https://github.com/frangoteam/fuxa Оказалось, что он заруливает очень многие программы из всяких там важных реестров. Обладая человеческим интерфейсом, конфигурацией в виде JSON-файликов (которые можно спокойно править ИИшкой) и достаточно приятной SVG-графикой, FUXA закрыла почти все мои потребности.

На скринах — работа над проектом по мониторингу газопоршневых установок (ГПУ) на моём ноутбуке. Использую Debian Sid и любимую Plasma. Сама система сделана на базе промышленного безвентиляторного ПК с двумя сетевыми картами. К одной подключена изолированная сеть с оборудованием ГПУ, к другой — недоверенная сеть с интернетом. Между собой интерфейсы жёстко разделены файрволом (никакой сквозной маршрутизации).

Работает это всё на базе Debian 13. На этой же машинке крутится FUXA, которая опрашивает оборудование по Modbus TCP, ведёт архивацию параметров и организует веб-интерфейс. Наружу это всё смотрит исключительно через OpenVPN-туннель, который автоматически поднимается при появлении интернета.

Если кому-то требуется адекватная SCADA, которая ещё и СПО, рекомендую обратить внимание на FUXA. Я просто максимально ей доволен. Это один из удачных примеров того, как в АСУТП пришли айтишники и сделали в нашем болоте всё хорошо и правильно.

На скринах (извиняюсь за «срач» в хомяке):

  1. Web-интерфейс, который реализует FUXA, и fastfetch с «инженерного» ноутбука
  2. Локальная панель оператора, доступ к которой по VNC осуществляется через VPN туннель. Можно оценить потребление ресурсов для проекта с опросом и архивацией 126 тегов)
  3. Редактор экранов FUXA и fastfetch с машинки из «поля» на фоне
  4. Подключение к ПР из виртуалки с оффтопиком через VPN туннель (увы, Овен Лоджик под Вайном дико нестабилен)
Alden
()

Обзор консольных утилит для украшения Linux

 

Эти утилиты не про “боевую” продуктивность. Они про настроение, демонстрацию возможностей терминала, эстетическое удовольствие, ASCII/ANSI-арт и тот самый эффект, когда у человека рядом возникает вопрос: «А что это у тебя там такое красивое в консоли?» Многие из них живут на GitHub, часть доступна через пакеты популярных дистрибутивов, а некоторые стали почти культовыми в мире terminal eye-candy.

( читать дальше... )

unclestephen
()

Какую систему управления проектами вы используете?

 , ,

Если не затруднит, напишите какая функциональность оказалась киллер-фичей для вас и почему.

Для участия в опросе войдите или зарегистрируйтесь.

>>> Результаты

soomrack
()

FluidX3D v3.7

 fluidx3d, , ,

Группа Open Source

FluidX3D 3.7 – пакет для вычислительной гидродинамики, использующий метод решёточных уравнений Больцмана (LBM) и OpenCL. Проект позиционируется как высокопроизводительный и экономный по памяти CFD-пакет, способный работать на GPU и CPU разных производителей через OpenCL.

Главным изменением версии 3.7 стала оптимизация ядра отрисовки изоповерхности Q-критерия (graphics_q()), используемой для визуализации вихревых структур в потоке. В прежней реализации ядро загружало из видеопамяти тяжёлый шаблон из 32 трёхмерных скоростей для каждой ячейки сетки. Теперь рабочая группа потоков размером 8×8×8 загружает блок 11×11×11 скоростей в 16 КБ локальной памяти первого уровня, после чего соседние потоки переиспользуют эти данные. По оценке автора, это сокращает число загрузок из VRAM примерно в 12 раз — до 2,6 скоростей на ячейку — и переводит ядро из режима, ограниченного пропускной способностью памяти, в режим, ограниченный вычислениями.

( читать дальше... )

>>> Источник (github.com)

unclestephen
()

В чём делать презентации?

 , powerpoint,

LO Impress ужасен.

Ставить PowerPoint в Wine или есть ещё альтернативы?

Harliff
()

Veusz 4.0 — программа графического представления научных данных

 , , ,

Veusz 4.0 — программа графического представления научных данных
Группа Мультимедиа

1 июня выпущена новая версия программы Veusz – приложения с графическим интерфейсом, предназначенного для представления научных данных в виде 2D- и 3D-графиков при подготовке публикаций.

Основное изменение – переход на Qt6. Остальное – дополнение документации, исправление ошибок.

>>> Подробный список изменений (veusz.github.io)

greenman
()

Что эффективней: работающий от солнечной энергии двигатель Стирлинга, сопряженный с генератором, или солнечные панели?

 

Ведь зеркало, стирлинг и генератор технологически проще, чем солнечные батареи.

Перемещено hobbit из talks

hateWin
()

Нужна сложная версионность для word

 , , ,

Здравствуйте.
Есть группа организаций (больше 10, а потом их будет еще больше).
Требуется для них вести документацию по системе. Система имеет некоторые отличия от организации к организации.
При этом требуется чтобы:
1. Каждая организация видела только общую для всех часть документации и ту, которая относится только к ней;
2. Чтобы была возможность контролировать новые версии документации, что-то вроде git.

К примеру в word, аналоги рассмотрю.
В документации кроме описания приводятся примеры запросов, кода, скриншоты.

Наверняка такое есть, подскажите, пожалуйста.

NoName
()

Истинное real-time .md редактирование

 , , ,

Я не отрицаю, это изврат as is, но, мало ли у кого какие фетиши да развлечения, даже более – потребности. ИИТ я кричу о помощи и надеюсь соискать товарищей по беде/интересам.

Уже несколько лет с изрядной переодичностью я натыкаюсь на личную необходимость использования .md, так как plain/text скуден до форматирования в человекочитаемом виде, built-in костыли aka csv-like семейство несколько не про это, xml как с пушки по пчелам, html, выжимкой которого и является сабж перегружен для ввода.

Все бы ничего, но по какой - то неведомой мне причине разработчики софта для, а возможно и пользователи, .md воспринимают его так что изначально необходимо использование only plain/text, и только затем рендер красивенько и удобно читаемо во все что угодно, ну в тот же html. Почему же эти преимущества не использовать и в момент создания/редактирования документа, сохраняя при этом формат хранения читаемым (да и потенциально редактируемым), при острой необходимости, чем угодно, что может в plain/text ?

Суть .md в том чтобы с легкостью и удобством сообщать о форматировании, чтобы форматирование поддерживалось но при этом не выходило на первый план, не мешало что - ли. А то как это форматирование реализовано (какой - стиль там и т.д) это уже вопросы изменяемой реализации отображения этого форматирования.

Почему бы не парсить вводимое и не выводить результат in real-time, позволяя сразу оценить вносимые изменения ? Синтаксис ведь достаточно прост и регулярен. Я понимаю в CLI редакторах это не реализуемо, да и не очень надо, но, неужели в полноценном редакторе невозможно реализовать отображение/рендер simple html-like форматирования ? В том же браузере, можно на коленке ипользуя contenteditable страницу и JS на лету принимать во внимание синтаксис и вносить CSS, но то браузер, почему я должен делать это в браузере ?

Есть множество конкретно ориентированных для .md решений, открытых и закрытых, с разными интересными и не очень фишками. Но, изрядная доля из них все равно продолжает традицию, изложенную мной выше, когда в отдельном окне происходит редактирование информации в plain/text и в отдельном окне/приложении ее рендеринг.

Давно приглядываюсь e.g к Typora, моя концепция там снискала отклик, но это electron, да еще и проприетарщина, отдельное приложение для редактирования .md, которое завтра может испортиться или вообще загнуться. Хотелось бы более универсально-эффективного решения. Редактора текста as default с возможности реализации мной описанного за счет, ну, скажем плагина или дополнения. Все таки скакать нужно от основания.

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

В любом случае, благодарю за уделенное мне внимание.

oOoOo
()

Сочетания клавиш (выжимка из руководства)

 

Приветствую.
Осваиваю vim, проштудировал справку, образовалась таблица с командами/сочетаниями клавиш. С высокой долей вероятности - они самые ходовые. Сделаю бумажную версию, буду пытаться прирости. Оставляю здесь, надеюсь, будет полезно.

#----------------- Перемещение ------------------------------------------------
* h j k l
* 0 ^
* $
* gM                     Середина строки.
* [N]|                   Переход к столбцу с номером N, 1 по умолчанию.
* [N]f{char} [N]F{char}  К N'му символу char справа/слева.
* [N]t{char} [N]T{char}  До символа.
* [N]; [N],              Повтор f F t T в прямом/обратном напр-ии.
* g0 g^ g$ gm gk gj      Оперируют с экранными линиями.
* gg [line num]G
* {N}%                   На строку, являющуюся N % файла.
* w e b ge
  W E B gE               Границы слов - только пробелы.
* [N][* [N]]*            К /* или к */.
* gd gD                  К локальному/глобальному объявлению.
* {N}go                  К N байту буфера.
* CTRL-{U|Y|B}           Прокрутка назад на половину/строку/экран.
* CTRL-{D|E|F}           Прокрутка вперёд на половину/строку/экран.
* zz zt zb               Сдвиг окна так, что курсор в центре/в верху/в низу.
* [# ]# %                Перемещение по препроцессорным директивам.
* [[ ][                  К внешней {/};
  [{ ]}                  К текущей {/};
  [m ]m                  К предыдущей/следующей старту функции-члену;
  [] ]]                  Переход между функциями.
* [( ])                  К текущей (/).
* [/ ]/                  К /* /  */.
#----------------- Модификация, копирование -----------------------------------
* i I                    Добавление перед курсором/в начало строки.
* a A                    Добавление за курсором/в начале строки.
* x X                    Удалить под курсором/слева.
* i_CTRL-A i_CTRL-@      Вставить текст введённый в предыдущем insert режиме/
                         с выходом из insert режима.
* i_CTRL-Y i_CTRL-E      Скопировать символ со строки выше/ниже.
* ["x]d{pos} dd [N]D     Удалить до pos/всю строку/до конца строки;
                         Регистр X - добавить в x.
* i_CTRL-R[_CTRL-R]{reg} Вставка из регистра; [не вып-ть команды, <BS> и т.п.].
* ["x]y[pos] yy          Копирование объекта/всей строки.
* ["x]p P                Вставка после/перед курсором.
* o O                    Вставка пустой строки выше/ниже курсора.
* J gJ                   Удалить \n. В vis режиме - у всех выд-ых строк;
                         gJ - без пробелов.  
* r gr R gR              Замена одного/нескольких символов, с g - виртуальная;
                         В виз-ом ре-ме заменит блок символом.
* c{pos} cc C s          Замена объекта/строки/до конца строки/одного сивола.
* ~ v_{~|u|U}            Изменение регистра;
  {g~|gu|gU}{pos}        Всю строку - g~~, guu, ...
* i_CTRL-V{int|kstroke}  Вставить символ литерально.
* [N]CTRL-A [N]CTRL-X    Увеличить/уменьшить число под курсором на N.
#----------------- Поиск, поиск с заменой -------------------------------------
* %                      Поиск парных скобок.
* # *                    Поиск слова под курсором назад/вперёд.
  g# g*                  Находить и частичные совпадения.
* /txt[\c] ?txt[\c]      Поиск верёд/назад; n N продолжить вперёд/назад;
                         CTRL-I CTRL-O переходы вперёд/назад; \c иг-ть рег-тр.
* [range][%]s/было/стало/[g|c|e]  % - во всём файле; g не только первое;
                                  с - с запросом; e - отсут-ие совпад-ий не
                                  ошибка.
* :[range]g/{ptrn}/{cmd} Выполнить cmd на строках, подходящих под ptrn.
* :grep x *.cc
  :cnext :cprev :clist
* :set ic hls is         Нечувствительность к регистру/подсветка/инкр-ый поиск;
  :wrapscan               Для отключения префикс no (noic, ...).
* gf :find nm :sfind     Найти и открыть файл под курсором/nm в текущей
  CTRL-W f               директории и в path директориях.
  :set path+=
#----------------- Метки ------------------------------------------------------
* CTRL-{O|I}             Перемещение по меткам.
* ``                     Переход на последюю, тек-ая позиция - последняя метка.
* :jumps :clearjumps
* m{a-z} {`|'}{a-z}      Именованные метки; Создать/перейти/список;
  :marks [abc]           a-z локальные, A-Z глобальные.
* `" `.                  Поз-ия при выходе из файла/модификация перед выходом.
#----------------- Кодинг, фолдинг, отступы -----------------------------------
* zf zo zc               Фолдинг, создать/развернуть/свернуть;
  zr zm                  Уровень свёрнутости меньше/больше;
  zR zM                  Развернуть/свернуть всё;
  zn zN zt               Убарать фолдинг/вернуть/переключение между ними;
  zO zC                  Развернуть/свенруть всё под курсором;
  zd zD                  Удалить фол-г под курсором/весь;
  :set foldmethod=syntax
  :set foldopen=all      Автофолдинг.
       foldclose=all
* CTRL-X_CTRL-O          omni completion, CTRL-{P|N} для перемещения.
* set makeprg            Задать команду, выполняемую при :make;
  :c{next|previous|
     first|last}
  :cc[n] :clist[!]       Описание ошибок/список ошибок;
  :colder :cnewer        К старому/к новому списку ошибок;
  :compiler              Выбрать формат ошибок (set errorformat).
* set shiftwidth=4
  set softtabstop=4
  =                      Форм-вать текст (отступы); ==, v_=, gg=G весь файл;
  CTRL-T CTRL-D          Добавить/удалить один shiftwidth в строке;
  > <  << >>             Добавить/удалить отступ в норм-ом или виз-ом реж-ме;
  :set cinoptions        Настройка отступов.
#----------------- Файлы ------------------------------------------------------
* :w                     Сохранение части файла в виз-ом режиме/всего в об-ом.
* :e!                    Переоткрыть файл.
* ZZ                     Выход с сохранением или из справ-го окна.
* [range]r{file | !cmd}  Вставка файла/вывода cmd.
* :w :wa :w>>name
  :saveas :file :edit
  :hide edit
  :args [other*.txt]
  :[N]next :prev :last
  :first 
* CTRL-^                 Переход между последними файлами;
  CTRL-w CTRL-^          Переход с разделением окна.
* $ view file            Открыть read-only.
* :oldfiles :e #<2       История файлов/ссылка на второй.
* :buffers :ls
  :[s]buffer 3
  :bnext :bprevious
  :bdelete 3
#----------------- Окна, вкладки ----------------------------------------------
* :close :only :[v]new
* :[sz][v]split {name}
  :[vertical]all
* [sz]CTRL-W _           Изменить размер окна.
  CTRL-W +
  CTRL-W -
* CTRL-W {H|J|K}L}       Переход между окнами.
  CTRL-W w
* tab split [file]
  tabedit {file}
* gt :tabonly            Переход по вкладкам/закрыть кроме текущей.
#----------------- vimdiff ----------------------------------------------------
* zo zc                  Фолдинг в vimdiff.
* [vertical] diffsplit
* ]c [c                  Переход по изменениям.
* dp do                  Прменить изменение в/из другой/го файла.
* :diffupdate            Обновить подсветку.
#----------------- Командная строка -------------------------------------------
* <S-Right> <S-Left>     Перемещение
  CTRL-B CTRL-E
* CTRL-W CTRL-U CTRL-C   Удалить слово/всю строку/выйти.
* <Tab> CTRL-{P|N}       ctrl комбинации после Tab;
  CTRL-D                 Список совпадений;
  CTRL-L                 Дополнить слово длиннейшим однозначным вар-то.
* history [/] 
  <Up> <Down>
  CTRL-{P|N}             В отличие от up down, не учитывает префикс.
* :q                     Command line window.
* gQ                     Ex mode, похож на cmd mode, но многокомандный.
* :!{cmd}                Выполнить внешнюю команду.
* :shell
#----------------- Отмена изменений -------------------------------------------
* u U                    Отмена посл-го/всех изм-ий в пос-ей редакт-мой строке;
  CTRL-R                 Отмена отмены; Проходят по активной ветке.
* g- g+                  К более ранней/поздней версии текста, активность ветки
                         неважна.
* :undolist              Показать листья в дереве изменений.
* :undo 2                Перейти на ветку с номером 2.
* :earlier 1f            Переход к версиям файла, которые были на момент
  :later 1f              сохранения; Необязательно на 1 шаг.
* :earlier 10{s|m|h|d}   Переход к версии файла в указанный момент.
* :later 1m  
#----------------- Разное -----------------------------------------------------
* q{reg} ... q           Записать макрос в reg (REG - добавить);
  @reg @@                Выполнить макрос/повторить.
* .                      Повторить последюю редактирующую команду.
* :{range}!cmd           Выполнить внешнюю команду над диапазоном.
  !{motion}cmd
* {vis block} {A|I|c|C|  + выделение строк блока через $.
  ~|u|U|r|<|>}
* text-objects           На месте {pos} и виз-ом реж-ме. :h text-objects.
* !{motion}{program}     Пропустить блок через внешнюю команду.
* v V CTRL-V             Визуальный режим/визуальная строка/виз-ый блок;
  v_o v_O                Смена угла;
  gv                     Перевыделить.
* CTRL-G                 Инфа о местоположении.
  g CTRL-G
* gq                     Форматировать текст (ширина строк, set textwidt).
* i_CTRL-{U|W}           Удалить слово слева/всё слева кроме отступа.
* i_CTRL-O               insert normal mode.
* CTRL-H                 Backspace.
* CTRL-I                 Tab.
* CTRL-[                 Esc.
* "* "+                  Primary selection/clipboard.
* :options
* :set {option}&         Вернуть значение по умолчанию.
* :set [no]number        Номера строк.
* :set [no]ruler
* :set textwidth
* :set viminfo
  :wviminfo! fnm         Перекинуть инфу между разными
  :rviminfo! fnm         vim экземплярами.
* :set sessionoptions
  :mksession f.vim       Сохранить/
  :source f.vim          загрузить сессию.
* :mkview :loadview      Как сессия, но для одного окна.
* Modelines              Установка опций для файла (спец строка в файле).
* :edit .                Открыть netrw file browser.
* :pwd :cd :cd -
  :lcd :tcd              Локальная директория окна/вкладки.
* vim -b datafile        Hex редактор; -b запрещает потенциальные
  :%!xxd :%!xxd -r       автокорректировки.
* :{i|c}abbrev           Создание аббревиатур.
  :abbreviate
* :argdo :windo :bufdo   Выполнить cmd на всех файлах-аргумента/окнах/буферах.
#----------------- Справка ----------------------------------------------------
* K                      Найти man для слова под курсором.
* :helgrep               Поиск по справке.
  :cnext :copen
* :help langmap
* :help ft-<filetype>-<functionality>    Пример: help ft-c-syntax.

pavlick
()

Как в LaTeX сделать документ для печати в виде книги (с двух сторон, чтоб можно было листать)?

 ,

Собственно сабж. Нужно получить документ в виде книжки. Как сделать это автоматически?

Deleted
()

LaTeX to MS Word

 ,

Собственно, м*дакам из журнала нужен файл doc. А у меня латех с кучей формул.

Согласен, чтоб формулы были картинками даже.

Кто-нибудь решал такую проблему?

UPD

Результаты таковы: GrindEQ не встал вообще на мой Word 2013; tex2rtf работает неплохо, но вообще не умеет affil и subequations; tex2word оказался чемпионом, хотя не умеет нумерацию с буковками в тех же subequations и криво отображает affil. Последние два зато одинаково хорошо справились с библиографией (но там только самые простые ссылки), ну и у tex2word даже не поехала нумерация уравнений (только номеров стало больше из-за отсутствия буковок). Выравнивание в align не работает. Всё же лучше, чем перебивать руками.

Ещё tex2rtf сначала отказывался работать, но помогло http://sergevideo.blogspot.ru/2014/04/fixed-latex2png-error-eps2eps-failed-to...

Резюме: как же убог Ворд для всего, кроме служебных записок с табуляцией пробелами.

Спасибо всем, особенно Evgueni, sehellion.

knovich
()