LINUX.ORG.RU

Emacs 26.2

 , ,


4

3

В День Космонавтики случилось ещё одно радостное событие - релиз среды исполнения Lisp программ Emacs, наиболее известной лучшим (по мнению пользователей Emacs) редактором текста.

Предыдущий релиз состоялся чуть меньше года назад поэтому заметных изменений не так много:

  • поддержка 11 версии юникода
  • поддержка сборки модулей в произвольной директории
  • удобная команда сжатия файлов во встроенном файловом менеджере

Кроме того стоит отметить релиз 9.2.3 org-mode - режима управления заметками, таблицами, календарями и всем тем, что необходимо для организации продуктивной работы. Несмотря на то, что это часть Emacs, у неё отдельный цикл релизов.

Из личного опыта - даже org-mode https://orgmode.org/ уже достаточно для того, чтобы задуматься о переходе на Emacs.

В предверии неизбежных шуток за 300 про «отсутствующий редактор»: http://spacemacs.org/ - преднастроенный дистрибутив Emacs, созданный по мотивам vim.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 1)

Текстовый редактор там уже появился?

anonymous
()
Ответ на: комментарий от serioja

А что если руку сводит, нажимать ctrl

Наверно, у тебя одного руку сводит. Пользователи emacs над тобой смеются...

Odalist ★★★★★
()
Ответ на: комментарий от serioja

evil-mode тоже вариант. Но ещё лучше завести нормальную клавиатуру, типа Kinesis Advantage, ErgoDox или, на худой конец, Truly Ergonomic. Они, конечно, дорогие, но здоровье дороже.

anonymous
()
Ответ на: комментарий от Odalist

Я понимаю, что это личные проблемы. И такая проблема конечно же не только с emacs, а в принципе.

Смеются... это же хорошо, смех продливает жизнь :)

serioja
()
Ответ на: комментарий от DrRulez

Т.е. сие есть по сути своей lisp-система.

Да. Очень гибкая и с огромной кучей написанных за десятки лет специализированных программ, которых больше нигде нет. Один из примеров уже привёл raven_cler.

Дело конечно ваше, отговаривать я от него никого не собираюсь, но со стороны выглядит это монстродавно и неуклюже.

Да тебя никто слушать и не будет, учитывая что ты только «со стороны» это и видел.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо за совет.

Есть опыт использования MS Ergonomic 4000, даже оно лучше обычных плоских клавиатур.

Но долго держать кнопку, всё равно сводило руку и на ней(emacs не юзаю, а вот в консоли readline hotkeys регулярно).

serioja
()
Ответ на: комментарий от serioja

evil-mode, левый альт как модификатор, правый - escape, полет нормальный. ctrl использую раз в полгода.

Deleted
()
Ответ на: комментарий от yyk

Ну нельзя же так... Точной информации нет (к тому-же не относящейся напрямую к языку), но уже встревожился и остановился... ))

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

к тому-же не относящейся напрямую к языку

Напрямую или нет, но если я заведомо буду знать, что авторам единственной реализации доверять нельзя, то как мне прикажете пользоваться их детищем? Самому все исходники прочитать?

anonymous
()
Ответ на: комментарий от serioja

Есть опыт использования MS Ergonomic 4000
Но долго держать кнопку, всё равно сводило руку

На перечисленных мною клавиатурах расположение Ctrl принципиально другое. Посмотрите фотографии, хотя бы.

И потом, а зачем «долго держать»? Нажал-отпустил. Если для каких-либо действий приходится постоянно держать зажатым какой-то модификатор, значит вы что-то делаете не так. Даже при идеальном расположении модификатора (под большим палцем), мышцы всё равно сведёт рано или поздно от непрерывного усилия.

anonymous
()
Ответ на: комментарий от skvitek

Текст новости набирался тоже в Emacs?

Нет. Текст новости набирал тоже Emacs.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Я, если приходится пользоваться ублюдочными стандартными клавиатурами, ремаплю левый ctrl на caps lock, а правый — на enter. Если только левый ремапить, то неудобная асимметрия получается.

anonymous
()
Ответ на: комментарий от anonymous

но если я заведомо буду знать, что авторам единственной реализации доверять нельзя, то как мне прикажете пользоваться их детищем?

«Маркетоидные игрища» - повод не доверять «технической составляющей»? И в отсутствии конкретных знаний любое «доверие» - не «100% уверенность» (прошу прощения за тавтологию). В смысле - а не всё ли равно?

yyk ★★★★★
()
Ответ на: комментарий от yyk

«Маркетоидные игрища» - повод не доверять «технической составляющей»?

Да. «Маркетоидные игрища» — повод не доверять людям, которые в них участвуют.

любое «доверие» - не «100% уверенность»

Верно. Начальный уровень доверия (при отсутствии какой-либо информации) — 50%. В случе с julia он уже слегка понижен и стоит пометка «проверить».

В смысле - а не всё ли равно?

Мне — нет. А вам?

anonymous
()
Ответ на: комментарий от EXL

использует ли VSCode для подсветки Language Server: https://langserver.org/

он вообще то для VSCode и разрабатывался, но оказался полезен и за его пределами

eternal_sorrow ★★★★★
()
Ответ на: комментарий от anonymous

Мне — нет. А вам?

А мне важнее развитие технической стороны. А скандалы/интриги/расследования находятся ниже того уровня, до которого может опуститься мой интерес.

Я осознаю, что джулия может так и не вырасти ни во что. Это больше всего меня волнует. А «социальный хайп», не смотря на то, что он тоже влияет на будущее языка, мне совершенно индифферентен.

yyk ★★★★★
()
Ответ на: комментарий от ptarh

ни разу не наблюдал что бы вим тормозил на подсветке кода. выясняйте что сборщики накомпилировали в ваших бинарных говнодистрибутивах или собирайте сами.

iluha16
()
Ответ на: комментарий от yyk

А мне важнее развитие технической стороны. А скандалы/интриги/расследования находятся ниже того уровня, до которого может опуститься мой интерес.
А «социальный хайп», не смотря на то, что он тоже влияет на будущее языка, мне совершенно индифферентен.

В какой-то степени я даже вам завидую. Я вот не могу окружающую реальность воспринимать не целостно. Если бы я мог закрывать глаза на некоторые явления вокруг меня, то, наверное, жизнь моя была бы более «успешена» в материальном и социальном смыслах.

Но, поскольку просто закрыть глаза у меня не получается, то включается простая логика: если мне известно, что разработчики выкатили заведомо нечестные бенчмарки, значит они готовы на нечестные поступки ради пиара своей программы. А раз они готовы на это, то повышается и вероятность, что в коде они тоже могут поступить нечестно. Например, использовать какой-нибудь алгоритм, который работает быстрее, но в некоторых редких случаях выдаёт некорректный результат.

Хотя, повторюсь, пока что разговор гипотетический. На данный момент мне julia не нужна, поэтому выяснять достоверность этих слухов я сейчас не собираюсь.

anonymous
()
Ответ на: комментарий от anonymous

всё потому что общая стагнация в понимании что есть интеллект покрылась практической выгодой от использования элементов моделирующих процессы мышления в чрезвычайно узких сферах. т.н. общего интеллекта никто формально не описал.

а что думаешь насчёт Mind.Forth AI announcement на форте?

начиналось всё со скрипта на Amiga Rexx

хистори

anonymous
()
Ответ на: комментарий от anonymous

сайлоны же — 13я колония кобола

История повторялась в прошлом, повторяется сейчас и будет повторятся в будущем...

всё это уже было и повторится снова...

anonymous
()
Ответ на: комментарий от no-such-file

форт он для маломощных машин

Всё равно что сказать, ассемблер - для маломощных машин. Уровень языка никак с мощностью не связан.

а язык форт — он какого уровня? если там можно писать слова на ассемблере, и писать макросы «компилирующие слова CREATE ... DOES», и свой синтаксис, почти как reader макросы, и прикрутить infix parser, ну или почти полноценный алгол/паскаль в форт транслировать

вот, кстати, реализация: holonforth HolonT — форт, компилирующийся в tcl шахматы instant literate programming гитхаб автора

алсо, нашелся MLWorks 2.0 reboot release (от авторов LispWorks/Dylan/MLWorks).

Классическая работа с лисп-машиной это работа с образом, т.е. там не нужны, например, файлы и файловая система, ведь все переменные сохраняются. Все «программы» в лисп-системы - это функции этой лисп-системы, ну и т.д. Редакторы, браузеры, WM и всё, всё, всё будет у тебя внутри этой системы, её частью.

да даже более того. эта система может в БД храниться, например. например, тот же picolisp с демоном отношений для БД и персистентными символами. или персистентные ООСУБД на Common Lisp.

либо, по частям подгружаться из БД.

собсно, в том же holonforth идея — слова/символы хранятся в БД, подгружаются по необходимости.

а в PumpkinDB на Rust написали СУБД в которой Forth-подобный язык PumpkinScript. сама СУБД чем-то МУМПС напоминает, только на форте и расте.

в смоллтоках и лиспах, тоже. обычно образ монолитный, но в каком-нибудь newspeak пытаются делать модульный функциональный смоллток, в каком-нибудь factor можно запилить свой смоллток на полстраницы на PEG парсерах, в каком-нибудь 3-lisp можно эти пространства имён в модульные namespaces упорядочить.

либо запилить свой модульный лисп на MLWorks, с «не платите за то, чего не используете» фичей.

алсо, mal — «запили свой лисп с примерами на 72 языках программирования»

Это следствие закрытости, и да, это фича. Классическая работа с лисп-машиной это работа с образом, т.е. там не нужны, например, файлы и файловая система, ведь все переменные сохраняются

тащем-та, это не мешает запилить в образе себе свой файлсервер.

например, какой-нибудь гоферсервер, правда там с upload файлов не всё просто (вроде бы в Gopher+ протоколе есть ASK запросы, через которые можно запилить REST).

или запилить веб-сервер с REST API.

или в духе Plan9 запилить P9 fileserver или FUSE сервер, который бы имитировал docker skydns.

или вот, на вебсокетах: вебсокетд. почти как CGI (собсно, в примерах и CGI есть), только наоборот: теперь браузер асинхронно читает через websocket проксю и обновляет выхлоп из обычного скрипта через STDOUT/STDIN.

то есть, можно прикрутить практически любой язык и его REPL. в том числе, и который «в образе»

anonymous
()
Ответ на: комментарий от no-such-file

Такие бы таблички в org-mode завезли бы, была бы сказка.

вроде было в THE, редакторе со встроенным Rexx-ом.

anonymous
()
Ответ на: комментарий от Deleted

и если на октрытость был спрос, под тем как ты это понимаешь, почему лисп, почти самый популярный язык в конце 80х, просто не развили в нужном направлении?

да развит же. интеграция с си работает в обе стороны через ffi, что ещё надо?

ecl, mkcl, lush, txrlisp — трансляция в си, сборка сгенерированного си компилятором, подгрузка .so .dll сгенерированного, генерация обёрток полуавтоматическая.

cl: 2 пространства имён. scheme: 1 пространство имён, более компактная стандартная библиотека, лучшая модульность. islisp: 2 пространства имён как в cl, лучшая модульность, минимизированы стандартные формы, почти всё остальное можно сделать макросами, ILOS/CLOS интегрирован с языком получше, почти все типы заодно и объекты.

kernel, vau expressions: 1 пространство имён на fexprs, ещё меньше стандартных форм, макросы first class objects.

часть того, что вы хотите — вопросы просто лучшей модульности.

алсо, был вроде на лоре некто, писал свой 3-lisp. вроде бы не дописал.

вообще, 3-lisp с 3 пространствами имён как бы не получше модульностью чем 1-lisp схема или 2-lisp cl.

например, запилить не eval-apply, а eval-apply-locus. чтобы locus выдавал нужные контексты, с пространствами имён, нужным образом соорганизованные. и вычислялись не только объекты — данные и функции, но и их нужные контексты (например, персистентные в БД).

anonymous
()
Ответ на: комментарий от no-such-file

Чтобы понять, что такое лисп, как закрытая система можешь попробовать написать на лиспе библиотеку и прикрутить её к программе не на лиспе

а такая штука вообще может решаться каким-нибудь немодным нынче CORBA или шинами сообщений, тысячи их.

anonymous
()
Ответ на: комментарий от ugoday

А какая разница делать докер на лиспе или на го?

лучше на plan9 либо на inferno, limbo. файлсервер в 10 строк. файлсервер = клиент-сервер объектов = объектный сервер.

Это же просто обвязка вокруг ядерных cgroups

??? треды в plan9 через настраиваемый rfork

и разных пространств имён.

в plan9/inferno из коробки.

anonymous
()
Ответ на: комментарий от anonymous

«org-mode .. Несмотря на то, что это часть Emacs, у неё отдельный цикл релизов»

Рулит! И это одна из причин, почему я стал пользоваться сабжем

+1. а tangle для org-mode есть и отдельные, на nim ntangle (ad-libitum, TTEM.org) или rust noweb-rs, cl : literate-lisp.

c: worgle

bash: mdsh

anonymous
()
Ответ на: комментарий от anonymous

Я вот не могу окружающую реальность воспринимать не целостно.

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

Утрируя: хам, пьяница, последняя скотина в общении с товарищами может оказаться отличным сварщиком и больше всего дорожить результатом своей работы. Всё условно. Или наоборот - обходительный и тактичный человек может оказаться совершенно бесполезным в области применения рук и головы.

Ханс Райзер - как относиться к его программам?

yyk ★★★★★
()
Ответ на: комментарий от anonymous

может решаться каким-нибудь немодным нынче CORBA или шинами сообщений, тысячи их

В том то и дело что это может решаться тысячей разных способов, а не каким-то одним стандартным. В итоге каждый пилит свою закрытую ни с чем не совместимую «вещь в себе», в 1000 раз переизобретая колесо.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

а язык форт — он какого уровня? если там можно писать слова на ассемблере, и писать макросы «компилирующие слова CREATE ... DOES», и свой синтаксис, почти как reader макросы, и прикрутить infix parser, ну или почти полноценный алгол/паскаль в форт транслировать

В чистом виде Forth слишком низкоуровневый, и 'create ... does> ...' от этого не спасают. Попробуйте поймать разбаланс стека в Форт-программе на пару тысяч строк. Надо либо что-менять в базовой парадигме, либо обвешиваться библиотеками. Второй путь применяется наиболее часто, но требует значительных трудозатрат на собственно библиотеки. Трансляция других языков в Форт, IMHO, не выход, т.к. теряется гибкость форта завязанная на те самые create does> и парсинг входного потока.

Darkman ★★★
()
Ответ на: комментарий от yyk

С учётом того, что любое восприятие содержит ошибки, чем оно шире, тем более оно ошибочно.

Содержит ошибки не восприятие, а его интерпретация. Безусловно, чем восприятие шире, тем сложнее его эффективно и адекватно интерпретировать. Но учиться расширять границы восприятия, в которых такая интерпретация возможна, можно и нужно. Иначе, как вы верно написали, останутся одни укурки.

И оценивать следует не всю картину, а только интересующие характеристики (надеюсь, те, в которых хоть немного компетентен).

Оценивать следует, конечно же, всю картину. Вот только к оценкам должны быть, условно говоря, приписаны веса относительно того, для какого дела вы человека оцениваете. А бинарно рассуждать, в стиле, «жену бьёт => плохой семьянин => плохой человек => значит и программу плохую напишет», конечно, глупо.

Ханс Райзер - как относиться к его программам?

Вот, знаете, если бы кто-то из разработчиков julia убил и закопал жену, это бы практически никак не отразилось на моём мнении о julia. А вот замуж за него я выходить бы поостерёгся. В случае с нечестными бенчмарками ситуация обратна: моё мнение относительно возможного брака с разработчиками почти никак не изменится, а вот к julia я буду относиться более осторожно. Понимаете разницу?

anonymous
()
Ответ на: комментарий от Darkman

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

Что, если добавить к форту своеобразную «типизацию» — в определении каждого слова добавить необходимость указывать состояние стека до и после. (Это и так уже общепринятый стиль.) А компилятор пусть автоматически проверяет выполнение этого инварианта. Не было ли уже попыток так сделать? А то я за развитием форта и стековых языков не слежу, честно говоря.

anonymous
()
Ответ на: комментарий от anonymous

указывать состояние стека до и после. (Это и так уже общепринятый стиль.) А компилятор пусть автоматически проверяет выполнение этого инварианта. Не было ли уже попыток так сделать?

Были уже такие попытки, и вполне рабочие. Но всё равно базовую парадигму надо менять - иначе вот от таких кадавров никуда не деться:

: >INCLUDE 0 swap dup                                                                                                 
    >R open                                                                                                           
    dup -1 = if                                                                                                       
     drop                                                                                                             
     DATA/ BUFFER DATA/ #S 1+ cmove                                                                                   
     ?R BUFFER S+ 0 swap open                                                                                         
     dup -1 = if " bfcd3: error open file." type CR ABORT then                                                        
    then                                                                                                              
    R> drop                                                                                                           
    STDIN @ FSTACK @ ! CELL FSTACK +!                                                                                 
    TIB_SIZE alloc                                                                                                    
     dup if else ." bfcd3: memory allocation failed." CR ABORT then                                                   
     dup TIB-STACK @ ! CELL TIB-STACK +!                                                                              
     TIB swap TIB_SIZE cmove                                                                                          
    #TIB @ #TIB-STACK @ ! CELL #TIB-STACK +!                                                                          
    >IN @ >IN-STACK @ ! CELL >IN-STACK +!                                                                             
    0 #TIB ! STDIN ! ;  

Не сильно читабельно, не так ли ?

Понятно что после кучи библиотек получается что-то типа:

Class CGtkDialog type GtkDialog is child GtkWindow                                                                    
        INT             -- position                                                                                   
messages                                                                                                              
        position setPosition                                                                                          
        show                                                                                                          
        modal                                                                                                         
        enddecl                                                                                                       
        CGtkWindow virtual                                                                                            
endc                                                                                                                  
                                                                                                                      
CGtkDialog constructor                                                                                                
        @self CGtkWindow [constructor]                                                                                
        GTK_WIN_POS_CENTER $position !                                                                                
endm                                                                                                                  
                                                                                                                      
CGtkDialog destructor                                                                                                 
        @self CGtkWindow [destructor]                                                                                 
endm                                                                                                                  
                                                                                                                      
msg: position           $position @ endm                                                                              
msg: setPosition        $position ! @self endm                                                                        
                                                                                                                      
msg: show                                                                                                             
        $position @ @self :widget gtk_window_set_position drop                                                        
        true @self :modal CGtkWindow class>> show drop                                                                
        @self                                                                                                         
endm        

Но вот эти библиотеки ещё написать надо. Хочется сразу нормальный уровень.

Darkman ★★★
()
Ответ на: комментарий от anonymous

Вот только к оценкам должны быть, условно говоря, приписаны веса относительно того, для какого дела вы человека оцениваете.

«Вес» равный нулю не означает отсутствие необходимости оценивать эту сферу? Зачем получать какую-то величину, дабы потом умножить её на ноль?

В случае с нечестными бенчмарками...

надо точно знать, что ситуация была, что была именно такая, а не какая-то другая, что 100% была умышлена, а не получилась случайно, что умышленно она возникла именно по решению и указанию «главных разработчиков», а не по недосмотру. недомыслию, или еще чему-нибудь. Ей же право, при таком количестве неизвестных ситуация не стоит и 5% уже потраченного на её обсуждение времени, но от вас по прежнему веет негативом...

yyk ★★★★★
()
Ответ на: комментарий от yyk

«Вес» равный нулю не означает отсутствие необходимости оценивать эту сферу?

«Вес» равный нулю означает отсутствие какой-либо информации в этой сфере. Вес, близкий к нулю, в принципе можно приравнять к нулю. Например, вес информации о взаимоотношениях Ганса Рейзера с покойной женой при оценке полезности для меня reiserfs я, как раз, приравниваю к нулю в силу его незначительности. Так же, как гипотетическую информацию о взаимоотношениях разработчиков julia со своими семьями при оценке полезности julia. А вот вес возможного участия разработчиков julia в «маркетинговых игрищах» про julia для меня достаточно значим, чтобы отличать его от нуля.

надо точно знать

Нет, конечно. Да и невозможно это, знать что-то абсолютно точно, на 100%. Надо как-то учиться рассуждать и делать выводы на основе неполной информации.

не стоит и 5% уже потраченного на её обсуждение времени

Ну, у нас тут развлекательный ресурс. Да и не держу я вас, в любой момент можете отказаться от обсуждения. Кстати, хочу напомнить ещё раз, что я обсуждаю не столько саму julia, сколько подход к оценке её (и не только её) нужности и полезности.

но от вас по прежнему веет негативом...

А вам как-то особенно нравится julia? Поэтому вы настроены позитивно и мой негатив вас задевает? Тогда бы уж лучше рассказали, чем она вам так понравилась.

anonymous
()
Ответ на: комментарий от ptarh

Эта хрень жрет как VSCode

Вот ни разу не сомневался, чтоу виндузятников даже емакс криво встанет. Я ж говорю - место (откуда руки растут) проклятое.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от bvn13

ждать секунда 5, пока оно загрузит все модули

Прочитай уже про daemon mode что-ли. К тому же в прошлом релизе добавили поддержку socket activation, так что под systemd всё совсем хорошо стало.

zabbal ★★★★★
() автор топика
Ответ на: комментарий от EXL

и наверняка оно будет без проблем работать в терминале на сервере.

На кой хрен запускать емакс в терминале, да ещё и на сервере?

zabbal ★★★★★
() автор топика
Ответ на: комментарий от zabbal

Почему ты спрашиваешь об этом меня, а не человека по нити выше, который говорил что мы сравниваем несравнимые вещи, так как Emacs и Vim умеют в терминал, а VS Code – нетю

EXL ★★★★★
()
Ответ на: комментарий от serioja

В spacemacs очень эргономичные биндинги, в «голом» evil не то. Попробуй. Я бы не использовал emacs, если бы не было такого решения.

vyazovoi ★★★
()
Ответ на: комментарий от anonymous

«Вес» равный нулю означает отсутствие какой-либо информации в этой сфере.

С какой радости?

Вес, близкий к нулю, в принципе можно приравнять к нулю.

Сам себя на ноль делишь?

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

...отдавая себе отчёт, что все выводы вероятностны и при уточнении информации могут оказаться неверными.

А вам как-то особенно нравится julia?

Да: живой язык с почти удобоваримой макросистемой.

мой негатив вас задевает?

Меня задевает алогичность и безосновательность неоднократно высказываемых опасений на базе неподтверждённых слухов. «Ложечки нашлись, но осадочек остался.»

yyk ★★★★★
()
Последнее исправление: yyk (всего исправлений: 2)
Ответ на: комментарий от no-such-file

buratino

Слово и Дело: и графические режимы, и таблицы с калькуляцией

В своё время это был просто топчик! Такие бы таблички в org-mode завезли бы, была бы сказка.

spreadsheet функции там есть, вы про что именно?

https://www.youtube.com/watch?v=xQz-k6Cty-s

отображается красиво разве что, ну и столбиком вниз считает, я что-то пропустил?

Deleted
()
Ответ на: комментарий от vyazovoi

В spacemacs очень эргономичные биндинги, в «голом» evil не то.

а что именно? когда-то тыкал, запомнился только весьма раздражающий биндинг на SPC с helm'ом.

Deleted
()
Ответ на: комментарий от Deleted

Ну вот как раз то, что leader из коробки это SPC, и очень много удобных биндингов через него. Жать SPC большим пальцем — самый удобный модификатор. Гораздо удобнее, чем мизинцем в caps и return (левый и правый ctrl).

vyazovoi ★★★
()
Ответ на: комментарий от vyazovoi

есть такое, SPC я себе тоже лидером через general сделал. наверное мне двойное нажатие или что-то в этом духе не понравилось, запомнил только, что постоянно helm вылазил когда не надо.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.