Re[6]: Убунта
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.12.19 05:05
Оценка:
Здравствуйте, CreatorCray, Вы писали:
BFE>>Переставить винду со всеми настройками занимает от двух дней
CC>Пара часов ващета. Где сама винда минут 10-15
На старом ноуте жены стояла семёрка. После нескольких лет работы она деградировала до невозможного совершенно уровня: от клика по иконке IE до его запуска проходило минут 15; оборудование типа флешек она детектила через раз (а safe remove не работала в принципе). И, как обычно в винде, хрен поймёт, почему так — никакой диагностики не предусмотрено.

Долго не решался на реинсталл — там накопилось за годы очень много разнообразного софта, который и не упомнишь, откуда был притащен. Включая 1С с корпоративной лицензией, который ставил их конторский админ, и я вообще хз где от него брать ключи и лицензию.

И вот внезапно! оказалось, что у винды есть такой режим реинсталла, когда она чинит существующую инсталляцию. Запустил, пару часов она там хрустела винтом — всё излечилось! При этом сохранились все настройки.
Сам удивился.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Убунта
От: Somescout  
Дата: 20.12.19 05:45
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Да пихон этот — вообще унылый пипец. Хрен с ним, что это два разных языка; на практике там какие-то адские отличия в минорных версиях. То, что работало под пихоном 2.6.2, при запуске под 2.6.4 падает. Там какую-то либу пересобрали с новым видением того, как она должна быть устроена — бутьте любезны соответствовать. Переписать под 2.6.4 — можно, но тогда не будет работать на 2.6.2.

Я не настолько с ним общался, чтобы наткнуться на такое (т.е. совсем мало).

S>Повершелл тоже писали отморозки; я с ним регулярно работаю уже года три, если не четыре, и он всё ещё периодически ставит меня в тупик. (Недавнее: с удивлением выяснил, что [Environment]::CurrentDirectory и Get-Location намеренно не совпадают. Убил час примерно на попытки запустить скрипт в Powershell ISE, потому что сползли пути к файлам.)

А они и не могут совпадать в общем случае: у powershell есть такие точки монтирования как HKLM:, AD: и прочие, которые [Environment]::CurrentDirectory не поддерживает по определению.

S>Тем не менее, он отличается завидной предсказуемостью: повершелльный скрипт, успешно отработавший на моей машине, с большой вероятностью отработает и на чужой машине, с другой версией винды и повершелла. "Вниз" он бывает плохо совместим, а вот "вверх" — норм.

В целом да, проблем с несовместимостью пока не встречал.
ARI ARI ARI... Arrivederci!
Re[5]: Убунта
От: Farsight СССР  
Дата: 20.12.19 05:52
Оценка: +3 :)
Здравствуйте, Sheridan, Вы писали:

S>Вкусившие гуглодоки перестают вспоминать про мсофис.

Ты всегда умел удачно шутить .
</farsight>
Re[14]: Убунта
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.12.19 05:54
Оценка:
Здравствуйте, Somescout, Вы писали:

N>>Ну хоть ма-аленький образчик того, что делается на PS лучше, чем на питоне?

N>>Или "То есть ответа не будет" ((c) Somescout)?

S>Да я же вроде написал "В питоне проблемы наступают уже при попытке запуска внешней программы и захвата её результата". Но если надо, вот подробнее:

S>python — https://stackoverflow.com/a/4760517
S>powershell:
$result = ls -l


Так я не понял, что не так с питоном? По каким-то причинам рекомендуют более новый подход, да, где он есть. Но весь старый работает без проблем — и через Popen с явным чтением из его stdout, и через check_output. Оба работают без проблем, и рекомендации только в стиле. Это, кстати, даже через проблемный переход 2->3, с которым действительно начудили, потому что не захотели сделать его более мягко.

Или не нравится необходимость выделять аргументы раздельно? Можно обойтись без этого через `shell = True`, но в общем случае это менее полезно, особенно при неизвестных аргументах.

S>И при этом как правильно запускать шелл-процесс (т.е. с разбором команды именно в стиле баша) в питоне без документации не разберёшься


В смысле, чтобы баш переразобрал команду? Тогда shell = True в вызове чего угодно из модуля subprocess, а чтобы не было проблем с инжекцией аргументов — shlex.quote(). А при чём тут "без документации", если запуск внешней команды тут будет проблемой с любым средством и стилем?

Конечно, на примерах типа `ls -l` будет всё гладко, а вот различишь ли ты в нём ls -l $X и ls -l "$X" (тут и дальше — в синтаксисе B-шеллов, включая bash)?
ls -l $*, ls -l "$*" и ls -l "$@"? Что является аналогом в powershell, есть ли оно вообще? И сколько нужно читать документации на powershell, чтобы научиться тому, как в нём это делается?
Ответ прошу со ссылками и прочими важными деталями.

N>>На подобный домысел? Конечно, не будет — пока не будет нормального вопроса. А так — я уже отвечал в этой теме.

S>"То есть ответа не будет" ((c) Somescout)

Ну да, пока корректного вопроса не будет — ответа не жди.

S>>> регистрозависимость нужна потому что это стильно-модно-молодёжно, в отлиичии от устаревшей и используемой для совместимости регистронезависимой ФС.

N>>Ничего, что это "стильно-модно-молодёжно" появилось даже до FAT12?
S>Что же вы тогда про регистронезависимость говорите что "и только Windows занимается маразмом ради совместимости с древними ошибками", если ваша ошибка ещё древнее?

Именно потому, что ошибкой является CI в именах файлов, а не CS.
The God is real, unless declared integer.
Re[8]: Убунта
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.12.19 06:20
Оценка: :)
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Офигенная логика. А давай тогда имена и фамилии сделаем регистрозависимыми.


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

Если есть те, кто так ценят человеко-озвучиваемость имён файлов, то ограничений должно быть в разы больше, чем просто несовместимость вариантов, отличающихся только регистром. Почему в NTFS допустимо "Any Unicode except NUL, \, /, :, *, ", <, >, |"? Почему допустимы какие-нибудь no-break space (в нескольких вариантах), right-to-left override, одновременно допустимы ', ʼ, ’ и ′; A, А и Α? Если ставится вопрос об озвучиваемости, то вся подобная ерунда должна не допускаться.

Я бы понял, если бы по умолчанию ограничений не было, и можно было бы накладывать на каталоги свойство фильтра — например, тут только ASCII CI, тут ASCII+кириллица CS, и так далее. Но реально нафиг надо? Пусть софт за этим следит, а не ядро. Это только MS сначала делает херню ради совместимости с древними глюками (причём наиболее дебильным образом), а потом и не пытается думать её исправлять, даже когда давно уже можно.
The God is real, unless declared integer.
Отредактировано 20.12.2019 6:22 netch80 . Предыдущая версия .
Re[13]: Убунта
От: Danchik Украина  
Дата: 20.12.19 06:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Повершелл тоже писали отморозки; я с ним регулярно работаю уже года три, если не четыре, и он всё ещё периодически ставит меня в тупик. (Недавнее: с удивлением выяснил, что [Environment]::CurrentDirectory и Get-Location намеренно не совпадают. Убил час примерно на попытки запустить скрипт в Powershell ISE, потому что сползли пути к файлам.)

S>Тем не менее, он отличается завидной предсказуемостью: повершелльный скрипт, успешно отработавший на моей машине, с большой вероятностью отработает и на чужой машине, с другой версией винды и повершелла. "Вниз" он бывает плохо совместим, а вот "вверх" — норм.

Уж не $PSScriptRoot вам нужен был?
Re[13]: Убунта
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.12.19 07:13
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Да пихон этот — вообще унылый пипец. Хрен с ним, что это два разных языка;


Через 11.5 дней можно смело говорить, что один

S> на практике там какие-то адские отличия в минорных версиях. То, что работало под пихоном 2.6.2, при запуске под 2.6.4 падает. Там какую-то либу пересобрали с новым видением того, как она должна быть устроена — бутьте любезны соответствовать. Переписать под 2.6.4 — можно, но тогда не будет работать на 2.6.2.


Между 2.6.2 и 2.6.4 нету изменений ни в стандартной библиотеке, ни в ABI. Если кто-то завязался на какие-то частные особенности реализации — то кто ему доктор?

S>Я на это посмотрел — в общем, пихон категорически непригоден для написания чего-то повторно-используемого.


От 2.3 до 3.6, кроме главного перехода, 15 лет, без заметных проблем (и то — через six лечится, точечными правками). Сервис работает у сотен клиентов. Если у кого-то иначе... как обычно, руки выпрямлять.
The God is real, unless declared integer.
Re: Убунта
От: student__  
Дата: 20.12.19 07:29
Оценка: +2 :)))
Мои пункты, почему не венда:
1) Каждый раз они ломают GUI, и каждый раз надо заново переучиваться, как сделать элементарнейшие операции. В Убунте тоже креативят, но, к счастью, не так люто, как в венде; не окончательно еще из ума выжили;
2) Траходрома с установкой 10-ки не меньше, чем с GNU/Linux, какие-то отдельные билды с различным набором поддерживаемого софта, глюки и зависоны при установке;
3) С некоторых пор Windows практически не тестируется, поэтому такие жуткие баги, когда обновления удаляют пользовательские файлы — это полный финиш;
4) Геморрой с антивирусом и вирусами (была одна из главных причин, по которым я когда-то свалил с венды);
5) Зонды шлют непонятно какие данные непонятно куда. Как вообще можно использовать ОС, которая по определению — одна большая дыра, один большой бэкдор и троян, да еще и нахваливать, что тебя через эту дыру имеют.
Re[15]: Убунта
От: Somescout  
Дата: 20.12.19 08:06
Оценка: +3
Здравствуйте, netch80, Вы писали:

S>>Да я же вроде написал "В питоне проблемы наступают уже при попытке запуска внешней программы и захвата её результата". Но если надо, вот подробнее:

S>>python — https://stackoverflow.com/a/4760517
S>>powershell:
$result = ls -l


N>Так я не понял, что не так с питоном? По каким-то причинам рекомендуют более новый подход, да, где он есть. Но весь старый работает без проблем — и через Popen с явным чтением из его stdout, и через check_output. Оба работают без проблем, и рекомендации только в стиле. Это, кстати, даже через проблемный переход 2->3, с которым действительно начудили, потому что не захотели сделать его более мягко.


Давайте возьмём чуть более сложный код:
$result = ls -l | ? { $_ -like '*something*' } | sort

Вызываем внешнюю программу "ls" с параметром "-l", фильтруем средствами языка её вывод, по конвееру передаём результат внешней программе, ложим получившееся в переменную $result.
Можно пример как такое оформить на питоне?

N>Конечно, на примерах типа `ls -l` будет всё гладко, а вот различишь ли ты в нём ls -l $X и ls -l "$X" (тут и дальше — в синтаксисе B-шеллов, включая bash)?

powershell позволяет оба подхода.

N>ls -l $*, ls -l "$*" и ls -l "$@"? Что является аналогом в powershell, есть ли оно вообще? И сколько нужно читать документации на powershell, чтобы научиться тому, как в нём это делается?

& ls -l $args

& ls -l "$args"

Насчёт последнего — что значит $@?

N>Ответ прошу со ссылками и прочими важными деталями.

help about_Automatic_Variables
help about_Parameters
help about_Operators


S>>>> регистрозависимость нужна потому что это стильно-модно-молодёжно, в отлиичии от устаревшей и используемой для совместимости регистронезависимой ФС.

N>>>Ничего, что это "стильно-модно-молодёжно" появилось даже до FAT12?
S>>Что же вы тогда про регистронезависимость говорите что "и только Windows занимается маразмом ради совместимости с древними ошибками", если ваша ошибка ещё древнее?

N>Именно потому, что ошибкой является CI в именах файлов, а не CS.


Почему? Именно регистрозависимость вносит дополнительную бесполезную сущность. От правильность заводить файлы различающиеся только регистром вы отнекиваетесь выше, но при этом отстаиваете необходимость считать имена с разным регистром — разными. В чём смысл этого?
ARI ARI ARI... Arrivederci!
Отредактировано 20.12.2019 8:07 Somescout . Предыдущая версия .
Re[3]: Убунта
От: Dym On Россия  
Дата: 20.12.19 08:20
Оценка:
Здравствуйте, SergeyIT, Вы писали:

SIT>Я знаю еще одну тему, которая соберет за это время даже больше сообщений — это "Дельфи"

Да не, о покойниках либо ничего, либо хорошо.


Ой
Счастье — это Glück!
Re[4]: Убунта
От: Буравчик Россия  
Дата: 20.12.19 08:37
Оценка:
Здравствуйте, 13akaEagle, Вы писали:

E>Мне гном нравится своей минималистичностью, но при этом достаточной функциональностью. А kde какой-то замороченный и всё постоянно крашилось, хотя может это из-за того, что я его натянул на fedora workstation, который по-умолчанию c gnome.


Раньше, в plasma 4 мне тоже все не нравилось, ломучее было, поэтому сидел на xfce. Потом попробовал plasma 5 (текущая версия) — все норм. Притормаживает немного при настройке.

Гном3 мне наоборот не нравится своей минималистичность. Вообще ничего не настроить под себя — ни виджетов, ни панелей. Только красивости, а мне нужен функционал.

Б>>Используй NoMachine. Она для персонального использования бесплатно.

Б>>Этот как NX, только намного надежнее и удоюнее
E>Именно он мне машину и вешал. Хотя опять же, может это проблема с gnome.

Странно. У меня работало вроде с gnome и unity. И NoMachine официально завляет их поддержку. Ранее использовал x2go — вот с ним были проблемы.

С NoMachine вообще особых проблем не было. У меня сейчас основной инструмент — удаленный десктоп на kde + nomachine.

Хотя, надо отдать должное, RDP в windows чуть удобнее, чуть надежнее. Хотя видео не посмотришь, даже на хорошем канале, а вот в NoMachine — можно.
Best regards, Буравчик
Re[14]: Убунта
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.12.19 08:54
Оценка:
Здравствуйте, Somescout, Вы писали:

S>>Повершелл тоже писали отморозки; я с ним регулярно работаю уже года три, если не четыре, и он всё ещё периодически ставит меня в тупик. (Недавнее: с удивлением выяснил, что [Environment]::CurrentDirectory и Get-Location намеренно не совпадают. Убил час примерно на попытки запустить скрипт в Powershell ISE, потому что сползли пути к файлам.)

S>А они и не могут совпадать в общем случае: у powershell есть такие точки монтирования как HKLM:, AD: и прочие, которые [Environment]::CurrentDirectory не поддерживает по определению.
Ну, прочитав факу, я теперь это тоже понимаю. Но блин понять, что происходит — крайне тяжело. Пишешь в командной строке ISE .\MyScript.ps1 .\SubFolder\test.csv — вылетает fail to open file С\Users\Sinclair\SubFolder\test.csv
Я там блин всю голову сломал — сначала пытаясь понять систему, по которой оно то ли работает, то ли нет (с учётом того, что ls .\SubFolder\test.csv оттуда же прекрасно работает), а потом пытаясь понять, что именно гуглить.
Теперь как бы знаю, что во избежание сурпризов желательно делать предварительные ласки [Environment]::Currentdirectory = Get-Location.

S>В целом да, проблем с несовместимостью пока не встречал.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[14]: Убунта
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.12.19 08:57
Оценка:
Здравствуйте, netch80, Вы писали:
N>Через 11.5 дней можно смело говорить, что один
Агащаз.
N>Между 2.6.2 и 2.6.4 нету изменений ни в стандартной библиотеке, ни в ABI. Если кто-то завязался на какие-то частные особенности реализации — то кто ему доктор?
Ну значит там были какие-то другие минорные номера. Я не знаю, кто кому доктор, но у меня ни разу питоновый скрипт сходу не завёлся. То ему уникодность не та, то что-то в библиотеках отломали, то для доступа к постгре надо что-то там скомпилировать из исходников на С. При этом как правило "в новой версии мы перестали поставлять устаревшие драйвера потому, что они устарели — все переходим на новые", а в предыдущей версии новых драйверов ещё не завезли.

N>От 2.3 до 3.6, кроме главного перехода, 15 лет, без заметных проблем (и то — через six лечится, точечными правками). Сервис работает у сотен клиентов. Если у кого-то иначе... как обычно, руки выпрямлять.

Отлично. Приходите к нам на работу, инсталляторы писать. А то все наши специалисты, как один криворуки.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[16]: Убунта
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.12.19 09:01
Оценка: :)
Здравствуйте, Somescout, Вы писали:

S>>>Да я же вроде написал "В питоне проблемы наступают уже при попытке запуска внешней программы и захвата её результата". Но если надо, вот подробнее:

S>>>python — https://stackoverflow.com/a/4760517
S>>>powershell:
$result = ls -l


N>>Так я не понял, что не так с питоном? По каким-то причинам рекомендуют более новый подход, да, где он есть. Но весь старый работает без проблем — и через Popen с явным чтением из его stdout, и через check_output. Оба работают без проблем, и рекомендации только в стиле. Это, кстати, даже через проблемный переход 2->3, с которым действительно начудили, потому что не захотели сделать его более мягко.


S>Давайте возьмём чуть более сложный код:

S>
$result = ls -l | ? { $_ -like '*something*' } | sort

S>Вызываем внешнюю программу "ls" с параметром "-l", фильтруем средствами языка её вывод, по конвееру передаём результат внешней программе, ложим получившееся в переменную $result.
S>Можно пример как такое оформить на питоне?

Ну если sort сделать внутренним (рекомендуется), то что-то типа:

rec_something = re.compile('*something*')
r1 = [x.rstrip() for x in subprocess.check_output(['ls', '-l'])]
result = sorted([x for x in r1 if rec_something.match(x)])


Если внешним, и объём данных большой, то это получится что-то типа

rec_something = re.compile('*something*')
r1 = [x.rstrip() for x in subprocess.check_output(['ls', '-l'])]
otext1 = '\n'.join([x for x in r1 if rec_something.match(x)]) + '\n'
result = [x.rstrip() for x in subprocess.check_output(['sort'], input = otext1)]


Да, чуть-чуть более громоздко. Но питон не рассчитывается на управление конвейером, как обычные шеллы, и позволяет больше гибкости в правилах обработки ввода-вывода (например, делить на строки или нет) — за это приходится платить дополнительными строками.

Сделать промежуточную библиотеку для таких операций просто, и я уверен, что они есть, но искать сейчас облом.
В общем, я, кажется, понял — тебе нравится одновременное сочетание прямых shell-like подходов, вплоть до конвейеров, и объектного управления за его пределами.
Смысл в этом есть, но если оба варианта нормально реализованы, между ними есть адекватный интерфейс и они нормально разделяются в синтаксисе. Со вторым и третьим проблемы, наверно, нет (ну кроме регистра, концов строк и прочего виндового маразма), а вот с первым будут очень серьёзные проблемы (и по отзывам людей, которые это трогали лет 5 назад, было неюзабельно в плане объектного доступа в Unix).

N>>ls -l $*, ls -l "$*" и ls -l "$@"? Что является аналогом в powershell, есть ли оно вообще? И сколько нужно читать документации на powershell, чтобы научиться тому, как в нём это делается?

S>
& ls -l $args

S>
& ls -l "$args"

S>Насчёт последнего — что значит $@?

"$@" — все номерные аргументы без переразложения.
"$*" — все номерные аргументы, склеенные в один аргумент, текущим разделителем.
$* — все номерные аргументы, переразобранные согласно текущему разделителю.

N>>Ответ прошу со ссылками и прочими важными деталями.

S>
help about_Automatic_Variables
S>help about_Parameters
S>help about_Operators


Не катит, на убунте по умолчанию не присутствует в репах.

S>>>>> регистрозависимость нужна потому что это стильно-модно-молодёжно, в отлиичии от устаревшей и используемой для совместимости регистронезависимой ФС.

N>>>>Ничего, что это "стильно-модно-молодёжно" появилось даже до FAT12?
S>>>Что же вы тогда про регистронезависимость говорите что "и только Windows занимается маразмом ради совместимости с древними ошибками", если ваша ошибка ещё древнее?

N>>Именно потому, что ошибкой является CI в именах файлов, а не CS.


S>Почему? Именно регистрозависимость вносит дополнительную бесполезную сущность.


Не доказана её бесполезность.

S> От правильность заводить файлы различающиеся только регистром вы отнекиваетесь выше,


Не распарсил это утверждение. Я нигде не говорил, что неправильно заводить файлы, отличающиеся только регистром.
Я говорил и говорю, что есть контексты, где CS не создаёт проблемы, и потому то, что выглядит по-разному, должно различаться в хранении; а есть контексты, где правильнее CI, но при этом в этих контекстах есть масса других проблем, которые CI не решает (и поэтому делать только CI, но не решать другие проблемы, это костыльная глупость).
The God is real, unless declared integer.
Re[15]: Убунта
От: Somescout  
Дата: 20.12.19 09:01
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>А они и не могут совпадать в общем случае: у powershell есть такие точки монтирования как HKLM:, AD: и прочие, которые [Environment]::CurrentDirectory не поддерживает по определению.

S>Ну, прочитав факу, я теперь это тоже понимаю. Но блин понять, что происходит — крайне тяжело. Пишешь в командной строке ISE .\MyScript.ps1 .\SubFolder\test.csv — вылетает fail to open file С\Users\Sinclair\SubFolder\test.csv
S>Я там блин всю голову сломал — сначала пытаясь понять систему, по которой оно то ли работает, то ли нет (с учётом того, что ls .\SubFolder\test.csv оттуда же прекрасно работает), а потом пытаясь понять, что именно гуглить.
S>Теперь как бы знаю, что во избежание сурпризов желательно делать предварительные ласки [Environment]::Currentdirectory = Get-Location.

А можете привести скрипт, с которым были проблемы и условия в которых они возникали? Просто так как вы описали, проблемы быть не должно.
ARI ARI ARI... Arrivederci!
Re[15]: Убунта
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.12.19 09:06
Оценка:
Здравствуйте, Sinclair, Вы писали:

N>>Через 11.5 дней можно смело говорить, что один

S>Агащаз.
N>>Между 2.6.2 и 2.6.4 нету изменений ни в стандартной библиотеке, ни в ABI. Если кто-то завязался на какие-то частные особенности реализации — то кто ему доктор?
S>Ну значит там были какие-то другие минорные номера. Я не знаю, кто кому доктор, но у меня ни разу питоновый скрипт сходу не завёлся. То ему уникодность не та, то что-то в библиотеках отломали, то для доступа к постгре надо что-то там скомпилировать из исходников на С. При этом как правило "в новой версии мы перестали поставлять устаревшие драйвера потому, что они устарели — все переходим на новые", а в предыдущей версии новых драйверов ещё не завезли.

С "ни разу" это или особенность вашей обстановки (непонятно, в чём, но особо и неинтересно), или таки подход.
Проблемы есть, да. Но отношение частоты "становится и само работает" к "надо что-то подтачивать", навскидку, не менее 10:1.

N>>От 2.3 до 3.6, кроме главного перехода, 15 лет, без заметных проблем (и то — через six лечится, точечными правками). Сервис работает у сотен клиентов. Если у кого-то иначе... как обычно, руки выпрямлять.

S>Отлично. Приходите к нам на работу, инсталляторы писать. А то все наши специалисты, как один криворуки.

Кхм... меня не интересуют ни инсталляторы, ни Россия, ни Windows (угадал?), но спасибо за предложение
The God is real, unless declared integer.
Re[14]: Убунта
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.12.19 09:12
Оценка: +2
Здравствуйте, Danchik, Вы писали:
D>Уж не $PSScriptRoot вам нужен был?
О, и он тоже нужен.
Это когда я хочу проинклудить скрипт, который лежит рядом с моим скриптом (а не в текущем фолдере, откуда я запускаю скрипт).

А по теме — нет, нужно просто принудительно обновить CurrentDirectory.
Вот штука, на которую я напоролся:
# // C:\Users\Sinclair\Documents\Reports\Billing\fail.ps1
param([Parameter(Mandatory=$true, Position=0)][System.IO.FileInfo]$fileName)
$fileName.FullName


Теперь делаем так:
  1. Запускаем powershell ISE.
    Он открывается в PS C:\Users\Sinclair
  2. Делаем cd Documents\Reports\Billing
  3. Делаем очевидную вещь: .\fail.ps1 .\2019\December.csv
  4. Неожиданно получаем C:\Users\Sinclair\2019\December.csv вместо C:\Users\Sinclair\Documents\Reports\Billing\2019\December.csv
Я там блин половину оставшихся волосьев выдрал, пока понял, что происходит. Причём когда я скрипт из фара выполняю, делая powershell .\fail.ps1 .\2019\December.csv, то всё работает нормально.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[17]: Убунта
От: Somescout  
Дата: 20.12.19 09:18
Оценка: +2
Здравствуйте, netch80, Вы писали:

S>>Давайте возьмём чуть более сложный код:

S>>
$result = ls -l | ? { $_ -like '*something*' } | sort

S>>Вызываем внешнюю программу "ls" с параметром "-l", фильтруем средствами языка её вывод, по конвееру передаём результат внешней программе, ложим получившееся в переменную $result.
S>>Можно пример как такое оформить на питоне?

N>Ну если sort сделать внутренним (рекомендуется)

Нет. Sort здесь чисто для примера внешней программы.

N>Если внешним, и объём данных большой, то это получится что-то типа


N>
N>rec_something = re.compile('*something*')
N>r1 = [x.rstrip() for x in subprocess.check_output(['ls', '-l'])]
N>otext1 = '\n'.join([x for x in r1 if rec_something.match(x)]) + '\n'
N>result = [x.rstrip() for x in subprocess.check_output(['sort'], input = otext1)]
N>


N>Да, чуть-чуть более громоздко. Но питон не рассчитывается на управление конвейером, как обычные шеллы, и позволяет больше гибкости в правилах обработки ввода-вывода (например, делить на строки или нет) — за это приходится платить дополнительными строками.


Правильно я понимаю, что этот код сначала читает весь вывод, затем обрабатывает его, потом отправляет внешней программе? Потому что это не то, что делает код на powershell — там именно конвейер.

N>В общем, я, кажется, понял — тебе нравится одновременное сочетание прямых shell-like подходов, вплоть до конвейеров, и объектного управления за его пределами.

N>Смысл в этом есть, но если оба варианта нормально реализованы, между ними есть адекватный интерфейс и они нормально разделяются в синтаксисе. Со вторым и третьим проблемы, наверно, нет (ну кроме регистра, концов строк и прочего виндового маразма), а вот с первым будут очень серьёзные проблемы (и по отзывам людей, которые это трогали лет 5 назад, было неюзабельно в плане объектного доступа в Unix).

"Рабинович напел"?

N>>>ls -l $*, ls -l "$*" и ls -l "$@"? Что является аналогом в powershell, есть ли оно вообще? И сколько нужно читать документации на powershell, чтобы научиться тому, как в нём это делается?

S>>
& ls -l $args

S>>
& ls -l "$args"

S>>Насчёт последнего — что значит $@?

N>"$@" — все номерные аргументы без переразложения.

В смысле строка аргументов в raw-виде? Только если через хаки ($MyInvocation.Line — команда целиком).

N>>>Ответ прошу со ссылками и прочими важными деталями.

S>>
help about_Automatic_Variables
S>>help about_Parameters
S>>help about_Operators


N>Не катит, на убунте по умолчанию не присутствует в репах.


И что? А у меня питон не установлен в винде. Или ставьте powershell, или гуглите — гугль первым результатом выдаёт ссылку на онлайновую документацию.

S>>Почему? Именно регистрозависимость вносит дополнительную бесполезную сущность.

N>Не доказана её бесполезность.
Нет, не доказана её полезность.

S>> От правильность заводить файлы различающиеся только регистром вы отнекиваетесь выше,

N>Не распарсил это утверждение. Я нигде не говорил, что неправильно заводить файлы, отличающиеся только регистром.
N>Я говорил и говорю, что есть контексты, где CS не создаёт проблемы, и потому то, что выглядит по-разному, должно различаться в хранении; а есть контексты, где правильнее CI, но при этом в этих контекстах есть масса других проблем, которые CI не решает (и поэтому делать только CI, но не решать другие проблемы, это костыльная глупость).

Можно примеры случаев, когда проблемы от CI в файловой системе не были бы вызваны плохой архитектурой приложения? Потому что файловая система не предназначена для хранения произвольных данных в именах файлов, а вы, насколько я понимаю, защищаете именно возможность не сохранить именованые данные, а сохранить данные в имени.
ARI ARI ARI... Arrivederci!
Re: Убунта
От: СвободуАнжелеДевис СССР  
Дата: 20.12.19 09:28
Оценка: +2 -1
LK>Тема, понятно, не новая. Но всё-таки.

LK>Чем не устраивает Убунта? Зачем в 2019 году кто-то платит за винду?


а кто платит за винду?
айтишники как правило имеют мсдн подписку где берут тьму ключей на шару. остальные получают ОЕМ вместе с железом.

вопрос скорее в другом, зачем нужна убунта?

LK>Но остальные-то? Почему на Убунту не пересели мировые ширнармассы?


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

LK>Не понимаю.


само собой.
Нет времени на раскачку!
Re[8]: Убунта
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.12.19 09:37
Оценка: +1 :))
Здравствуйте, novitk, Вы писали:

N>Имеется ввиду математические модели с многоэтажными формулы, а не Visio.

N>линуксоиду должно быть стыдно не знать, что такое ТеX :_

Шередиан не настоящий линуксоид. Он потомственный сисадмин.

Впрочем, TeX — удел не линуксоидов, а мать их, матиков. А поскольку все мать их, матики, по убеждению являются коммунистами, они назло капиталисту Гейтсу используют линух вместо венды.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.