From: Nil Alexandrov 2:5015/46 02 May 2020 20:17 +0300
To: Yevgeny Zolotnitsky 2:5015/147
Subject: perl, python, ..
* Originally in nino.046.local * Crossposted in ru.perl * Crossposted in ru.python Hello, Yevgeny! Saturday May 02 2020 01:06, from Yevgeny Zolotnitsky -> Nil Alexandrov: YZ> Я вот хоть не пограмист, но в какие-то скрипто-языки интересуюсь по YZ> верхам, чтобы читать код уметь. И меня натурально добивает именно YZ> мода, что сейчас "все носят двухбортный", т.е. на питоне лабают. А YZ> "однобортный", который на перле -- уже фу-фу-фу. Хотя решают одни и YZ> теже задачи. Как у нас говорят, "horses for courses" (эх тупой гугл траслейт). > An allusion to the fact that a racehorse performs best on a racecourse to > which it is specifically suited. Вера в то что, что скаковая лошадь лучше всего выступает на ипподроме, для которого она специально предназначена. Кароч, дело было так. Был типичный юникс сисадмин, тот, что с бородой, а не как виндовзный гладко выбритый [unix_vs_windows_admin.jpg], и не тот, что мышкой в виндовзе двигает MCSA (Microsoft Certified Systems Administrator), а прям натурально сидит в текстмоде, и все свои рутинные операции по максимуму автоматизирует с помощью шел скриптов. Шел скрипты - это такие комбинации из grep, sed, awk,.. через пайп прописанные. И родился тогда скриптовый язык перл, и совместил он в себе все эти grep+sed+awk и был заточен под парсенье текстовых логов, читай регекспы, и прочей сисадминской рутины, типа завести нового юзверя, прописал его в разных файлах. Но мир не стоял на месте, и стало модно-молодёжно пейсать не процедурно, а объетко-ориентировано (орфография сохранена). А так как питон изначально был "птичьим языком", типа нажимаешь шифт и по всем цифиркам пальцем туда-сюда [~!@#$%^&*()(*&^%$#@!~], вот так он примерно выглядит, то добавление ООП к перлу стало не читаемым от слова совсем. Питон изначально разрабатывался как функциональный, так и ООП. Синтаксис у него без всех этих @#$->&%, и даже ; не надо ставить в конце строки, и даже говно-код вынужден быть выровнен из-за блоков, что придаёт читаемости. На этом месте адепты ООП закидают питон тухлыми помидорами, ведь ни с того ни с сего тип объекта может меняться на ходу, но это и его плюс/минус питона, в его динамической типизации. Кстати, есть всякие рестриктыд-питон синтаксисы, читай подмножество языка, когда нельзя походу действия менять тип для одной и той же переменной, и тогда такой "кастрированный" питон легко транслируется из-языка-в-язык, например, в C++ или просто JIT на этом участке кода ускоряется в стопицот раз, если мы использует pypy. В последнее время питон, кроме написания скриптов так таковых, стал использоваться как R&D тул всякими ресёрчерами (умные дядьки с магистратурами), которые на нём могут что-то попрототипировать, покрутить туда-сюда и всё это с минимальным количеством строк кода. Как это стало возможным? Всё благодаря обёрткам вокруг C++ кода/библиотек. Получается, что ты пишешь одну/две строчки взять данные по такому-то URL (пример urllib, код работает быстро со скоростью C), второй строчкой парсим XML/JSON/.. тоже C библиотечным вызовом, а дальше скармливаем нашей статистической модели или нейронке, библиотек для (глубокого) машинного обучения (мы в шутку называет deep shit learning), и, пальцем в небо (но с умным выражением лица), прогнозируем когда закончится карантин, сколько будет стоить акции, когда доллару хана, и прочее прочее. Естесссно, что на перле этого всего не завезли, и это хорошо. Best Regards, Nil
From: Denis Mosko 2:5023/24.1315 03 May 2020 18:58 +0300
To: Vitold Sedyshev 2:5030/1081.102
Subject: RE: Example
Hello, Vitold! Это записать в file.py: ? VS> ``` VS> class Application(object): VS> """ Program For tea-pot VS> """ VS> def __init__(self): VS> pass VS> def step1(self): VS> print('WHISPER DOG FOOD') VS> for i in range(10): VS> pass VS> #i = 5 VS> def step2(self): VS> print('IS GOOD AND') VS> for i in range(10): VS> print(i) VS> #i = 5 VS> def step3(self): VS> print('MEALY AND CHEAP.') VS> for i in range(10): VS> print(i) VS> #i = 5 VS> def step4(self): VS> print('IT HAS LOTS OF VITAMINS,') VS> for i in range(10): VS> print(i) VS> #i = 5 VS> def step5(self): VS> print('LOTS OF BOUNCE') VS> for i in range(10000000): VS> pass VS> #i = 5000000 VS> def step6(self): VS> print('AND SEND YOUR DOG TO SLEEP') VS> for i in range(10): VS> print(i) VS> #i = 5 VS> def run(self): VS> self.step1() VS> self.step2() VS> self.step3() VS> self.step4() VS> self.step5() VS> self.step6() VS> if __name__ == "__main__": VS> app = Application() VS> app.run() VS> ``` Cпасибо за ответ. С наилучшими пожеланиями, Denis Mosko.
From: Vitold Sedyshev 2:5030/1081.102 28 Apr 2020 00:32 +0300
To: Denis Mosko 2:5064/54.1315
Subject: RE: Example
DM> How to change program with BASIC's "GOSUB"-operator? GOSUB jumps to a subroutine at the indicated label. This call is placed onto the stack. The subroutine finalizes using a RETURN command. You may provide GOSUB equivalent on Python by function. See more on https://www.w3schools.com/python/python_functions.asp Let's I show you how to use OOP with refactor you simple example. ``` class Application(object): """ Program For tea-pot """ def __init__(self): pass def step1(self): print('WHISPER DOG FOOD') for i in range(10): pass #i = 5 def step2(self): print('IS GOOD AND') for i in range(10): print(i) #i = 5 def step3(self): print('MEALY AND CHEAP.') for i in range(10): print(i) #i = 5 def step4(self): print('IT HAS LOTS OF VITAMINS,') for i in range(10): print(i) #i = 5 def step5(self): print('LOTS OF BOUNCE') for i in range(10000000): pass #i = 5000000 def step6(self): print('AND SEND YOUR DOG TO SLEEP') for i in range(10): print(i) #i = 5 def run(self): self.step1() self.step2() self.step3() self.step4() self.step5() self.step6() if __name__ == "__main__": app = Application() app.run() ``` As you can see in source below I split you code on steps and you may reuse pice of code simple by invoke ```self.stepN()``` a few times. Or you try to broke Python virtual machine by change ```i``` variable? I think that in that case you should make you own mutable iterator with state. But no idea why you does not use ```while``` statement.
From: Sergey Dorofeev 2:5020/12000 01 May 2020 00:00 +0300
To: All
Subject: Ресурсы
Русскоязычные ресурсы в интернете http://ru-python.livejournal.com/ http://pep8.ru/ http://python.su/ https://plus.google.com/communities/103624658452637344893 http://pythondigest.ru/ Присылайте интересные ссылки модератору, будем пополнять список. Фидо на питоне https://github.com/larsks/python-ftn/wiki https://github.com/fidoman/PyFTN Jam headers http://www.vlzn.nl/fmail/files/jhrprint.py
From: Vitold Sedyshev 2:5030/1081.102 07 May 2020 03:41 +0300
To: Denis Mosko 2:5023/24.1315
Subject: RE: RE: Example
DM> Это записать в "file.py" ? Вообще на мой взгляд лучше использовать какие-то сразу понятные названия Я бы назвал этот файл "example_01.py", так как он явно относиться к примерам, а имена вроде file может ты модуль какой-то решил написать работы с файлами. Вообще что-то было в PEP8 про названия файлов и модулей.
From: Denis Mosko 2:5064/54.1315 02 Apr 2020 21:32 +0300
To: Sergey Dorofeev 2:5020/12000
Subject: Ресурсы
Привет, Sergey! Который месяц здесь нет изменеиий. Советуют посмотреть https://colab.research.google.com/notebooks/intro.ipynb . На что обратить внимание? С уважением - Denis
From: Sergey Dorofeev 2:5020/12000 01 Apr 2020 00:00 +0300
To: All
Subject: Ресурсы
Русскоязычные ресурсы в интернете http://ru-python.livejournal.com/ http://pep8.ru/ http://python.su/ https://plus.google.com/communities/103624658452637344893 http://pythondigest.ru/ Присылайте интересные ссылки модератору, будем пополнять список. Фидо на питоне https://github.com/larsks/python-ftn/wiki https://github.com/fidoman/PyFTN Jam headers http://www.vlzn.nl/fmail/files/jhrprint.py
From: Sergey Dorofeev 2:5020/12000 01 Apr 2020 00:00 +0300
To: All
Subject: Rules of RU.PYTHON
Правила эхоконференции RU.PYTHON 1. Тематика. Эха посвящена одному из самых мощных на сегодняшний день интерпретируемых языков программирования - Python. В этой эхе обсуждаются новости разработок, тенденции развития языка, особенности использования в различных областях, сам язык и его стандартные библиотеки, различные библиотеки расширения - прикладные и системные и многое другое. Также эхоконференция предназначена для обмена личным опытом использования Python и публикации текстов программ. При желании подписчиков и по согласованию с модератором может быть настроен постинг сообщений из форумов, списков рассылки и конференций, посвящённых Питону. 2. Распространение. Конференция может свободно распространяться по сети Fidonet. Гейтование в другие сети возможно, если при этом не нарушаются никакие пункты данных правил. 3. Доступ. Помещать сообщения в эху могут все узлы сети FidoNet, их поинты, пользователи BBS и участники сетей, в которые гейтуется эта конференция. Оператор BBS или гейта должен проследить за тем, чтобы в исходящих с его системы письмах был корректный обратный адрес для связи нетмейлом с отправителем. 4. Требования к форме сообщений. Текст сообщения должен быть в кодировке CP866. Текст сообщения должен быть на русском языке. При помещении текстов на других языках их необходимо сопровождать русским переводом. Тексты на английском языке допускается постить без перевода. При использовании псевдонима желательно указание реального имени в кладже RealName. Указание чужого имени в кладже RealName недопустимо. Крайне нежелательно использование в качестве псевдонима реального имени кого-то из подписчиков. Использование матерных слов в этой конференции неуместно. Цитирование кладжей и темплейта не допускается. Hежелательно цитирование более двух уровней ответов или более 7 строк в одном блоке квоты, если это не необходимо для понимания смысла письма. Размер сообщения не должен превышать 31 килобайт. Hе рекомендуется постинг сообщений объёмом больше 64 килобайт за сутки. Hе рекомендуется использовать пользовательские кладжи, приветствие, подпись в суммарном объёме больше семи строк. 5. Постинг текстовых и кодированных файлов. Постинг сообщений с вставленными текстовыми файлами и кодированными данными допускается в пределах, установленных для обычных сообщений. Способ кодирования должен позволять произвести полное раскодирование любому подписчику с использованием только общедоступных бесплатных утилит. 6. Постинг коммерческих сообщений. Постинг коммерческой и некоммерческой рекламы допускается, если она имеет отношение к языку Python (книги, диски, конференции или что-то другое). 7. Модерирование. За соблюдением данных правил следят модератор и комодераторы. Правила постятся модератором ежемесячно. Модератор и комодератор при нарушении правил могут делать предупреждение нарушителю ([*] - предупреждение, [+] - строгое предупреждение) или производить перевод его в режим только-чтение ([!]). При игнорировании модераториалов к нарушителю принимаются меры согласно эхополу. Модератор может отменять вынесенные предупреждения и отключения, если они были сделаны достаточно давно. Модератор имеет право вносить изменения в правила. В случае исчезновения модератора из нодлиста, модерирование производится комодераторами. При отсутствии модератора более года, эхокоординатор назначет в конференции выборы для определения нового модератора. Модератор эхоконференции - Sergey Dorofeev, 2:5020/12000
From: Sergey Dorofeev 2:5020/12000 29 Feb 2020 23:00 +0200
To: All
Subject: Ресурсы
Русскоязычные ресурсы в интернете http://ru-python.livejournal.com/ http://pep8.ru/ http://python.su/ https://plus.google.com/communities/103624658452637344893 http://pythondigest.ru/ Присылайте интересные ссылки модератору, будем пополнять список. Фидо на питоне https://github.com/larsks/python-ftn/wiki https://github.com/fidoman/PyFTN Jam headers http://www.vlzn.nl/fmail/files/jhrprint.py
From: Sergey Dorofeev 2:5020/12000 29 Feb 2020 23:00 +0200
To: All
Subject: Rules of RU.PYTHON
Правила эхоконференции RU.PYTHON 1. Тематика. Эха посвящена одному из самых мощных на сегодняшний день интерпретируемых языков программирования - Python. В этой эхе обсуждаются новости разработок, тенденции развития языка, особенности использования в различных областях, сам язык и его стандартные библиотеки, различные библиотеки расширения - прикладные и системные и многое другое. Также эхоконференция предназначена для обмена личным опытом использования Python и публикации текстов программ. При желании подписчиков и по согласованию с модератором может быть настроен постинг сообщений из форумов, списков рассылки и конференций, посвящённых Питону. 2. Распространение. Конференция может свободно распространяться по сети Fidonet. Гейтование в другие сети возможно, если при этом не нарушаются никакие пункты данных правил. 3. Доступ. Помещать сообщения в эху могут все узлы сети FidoNet, их поинты, пользователи BBS и участники сетей, в которые гейтуется эта конференция. Оператор BBS или гейта должен проследить за тем, чтобы в исходящих с его системы письмах был корректный обратный адрес для связи нетмейлом с отправителем. 4. Требования к форме сообщений. Текст сообщения должен быть в кодировке CP866. Текст сообщения должен быть на русском языке. При помещении текстов на других языках их необходимо сопровождать русским переводом. Тексты на английском языке допускается постить без перевода. При использовании псевдонима желательно указание реального имени в кладже RealName. Указание чужого имени в кладже RealName недопустимо. Крайне нежелательно использование в качестве псевдонима реального имени кого-то из подписчиков. Использование матерных слов в этой конференции неуместно. Цитирование кладжей и темплейта не допускается. Hежелательно цитирование более двух уровней ответов или более 7 строк в одном блоке квоты, если это не необходимо для понимания смысла письма. Размер сообщения не должен превышать 31 килобайт. Hе рекомендуется постинг сообщений объёмом больше 64 килобайт за сутки. Hе рекомендуется использовать пользовательские кладжи, приветствие, подпись в суммарном объёме больше семи строк. 5. Постинг текстовых и кодированных файлов. Постинг сообщений с вставленными текстовыми файлами и кодированными данными допускается в пределах, установленных для обычных сообщений. Способ кодирования должен позволять произвести полное раскодирование любому подписчику с использованием только общедоступных бесплатных утилит. 6. Постинг коммерческих сообщений. Постинг коммерческой и некоммерческой рекламы допускается, если она имеет отношение к языку Python (книги, диски, конференции или что-то другое). 7. Модерирование. За соблюдением данных правил следят модератор и комодераторы. Правила постятся модератором ежемесячно. Модератор и комодератор при нарушении правил могут делать предупреждение нарушителю ([*] - предупреждение, [+] - строгое предупреждение) или производить перевод его в режим только-чтение ([!]). При игнорировании модераториалов к нарушителю принимаются меры согласно эхополу. Модератор может отменять вынесенные предупреждения и отключения, если они были сделаны достаточно давно. Модератор имеет право вносить изменения в правила. В случае исчезновения модератора из нодлиста, модерирование производится комодераторами. При отсутствии модератора более года, эхокоординатор назначет в конференции выборы для определения нового модератора. Модератор эхоконференции - Sergey Dorofeev, 2:5020/12000