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