@ru_python

Страница 8467 из 9768
Aragaer
22.03.2019
21:10:52
а она в свою очередь опирается на системное tzdata

А
22.03.2019
21:19:09
Как тут использовать прокси? import smtplib toaddr = 'client@yandex.ru' text='Your code 123' server = smtplib.SMTP('smtp.mail.ru',587);server.starttls() server.login(mail,password) server.sendmail(mail,toaddr,text) server.close()

ilya
22.03.2019
21:29:04
кто в vim могет?

Михаил
22.03.2019
21:29:59
кто в vim могет?
Но зачем :)

Google
Artemis
22.03.2019
21:30:11
кто в vim могет?
Выйти не можешь?

ilya
22.03.2019
21:30:30
я просто думал кто подскажет плюшки чем он лучше ide кроме скорости

ilya
22.03.2019
21:31:40
принял

Михаил
22.03.2019
21:32:21
А тут был какой-то холивар на эту тему?

Deep Sea
22.03.2019
21:32:39
vi предустановлен почти везде и есть даже в busybox

ilya
22.03.2019
21:32:59
я его юзаю при деплое джанги

и все

Deep Sea
22.03.2019
21:34:07
при деплое лучше бы вообще никуда не лазить руками, но это мелочи жизни

f472_
22.03.2019
21:38:17
При завершении программы выполняются абсолютно все блоки finally, или только тот, в try которого была программа в момент завершения?

Tishka17
22.03.2019
21:47:08
При завершении программы выполняются абсолютно все блоки finally, или только тот, в try которого была программа в момент завершения?
Каждому блоку try соответствует finally. При выходе из try по любой причине выполняется соответствующий finally. Если ты одновременно из двух try вылетаешь, оба finally сработают. Всякие левые блоки естественно не работают

Google
Aragaer
22.03.2019
21:51:14
vi в busybox очень урезанный, аж до невозможности

Bogdan (SirEdvin)
22.03.2019
21:51:40
https://habr.com/ru/post/444594/ - мне интересно, я один не понимаю этого угорания по O-большому?

Aragaer
22.03.2019
21:52:07
угорания?

Artemis
22.03.2019
21:52:12
Bogdan (SirEdvin)
22.03.2019
21:52:31
Ну, уж явно не для применения в программировании

Aragaer
22.03.2019
21:52:54
ну да не для программирования

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

Artemis
22.03.2019
21:53:23
Смотря что ты имеешь в виду под словом программирование. Для того, чтобы сайты верстать, анализ алгоритмов не нужен

Bogdan (SirEdvin)
22.03.2019
21:54:07
Для того, что бы писать любой код - анализ алгоримтов не нужен. Потому что это не имеет практически ни какого отношения к реальности.

Хотя нет, анализ алгоримтов при помощи такой нотации

Aragaer
22.03.2019
21:54:40
когда ты смотришь на код и говоришь "но это же говно, оно работает за куб!"

"а задача же тривиальная, неужели нельзя сделать за квадрат?"

Artemis
22.03.2019
21:55:03
Для того, что бы писать любой код - анализ алгоримтов не нужен. Потому что это не имеет практически ни какого отношения к реальности.
Нет. Допустим, мы с коллегой придумали 2 алгоритма вычисления чего-либо. Сравнивать мы будем его по биг оу, потому что она показывает наихудшее время работы алго

Aragaer
22.03.2019
21:55:30
естессно

Artemis
22.03.2019
21:55:34
Aragaer
22.03.2019
21:55:50
не, понятно, что оценивать константу тоже можно

но просто "вот код, он должен вызываться 100500 раз в секунду"

Bogdan (SirEdvin)
22.03.2019
21:56:30
Слышал. К чему это?
К тому что *нельзя* сравнивать алгоримты по О большому. Если вы так далее, вы делаете неправильно. В качестве примера можно привести умножение матриц, где самый асимптотически быстрый алгоритм имеет слишком большую константу и не используется.

когда ты смотришь на код и говоришь "но это же говно, оно работает за куб!"
Почему не сказать "вместо трех вложенных циклов, можно сделать два?"

Google
Bogdan (SirEdvin)
22.03.2019
21:56:51
И будут примеры посложнее?

Aragaer
22.03.2019
21:56:58
и ты такой - "ну можно сделать просто за логарифм, но это потребует квадрат памяти, а можно сделать за квадрат, но зато константа памяти"

Bogdan (SirEdvin)
22.03.2019
21:57:11
Что-то в духе, у тебя тут O( n * log n + m * log m + s^3), а ведь можно ..."

Aragaer
22.03.2019
21:57:16
и надо просто попробовать то и другое

Aragaer
22.03.2019
21:57:32
естессно

Bogdan (SirEdvin)
22.03.2019
21:57:35
Потому что правильно высчитать константу у вас не получится

Aragaer
22.03.2019
21:57:40
и не надо

Bogdan (SirEdvin)
22.03.2019
21:57:45
Тогда зачем думать в терминах O-большого?

Aragaer
22.03.2019
21:57:45
конечно бенчмарки

но бенчмарк не даст готового ответа

Artemis
22.03.2019
21:57:56
И тут на помощь приходят бенчмарки
Дополнительное время для кодинга - проеб по деньгам. Можно подумать, и оценить биг оу

Aragaer
22.03.2019
21:58:07
и если бенчмарк говорит "это хреново", то ты начинаешь думать, а можно ли сделать лучше

Bogdan (SirEdvin)
22.03.2019
21:58:13
Дополнительное время для кодинга - проеб по деньгам. Можно подумать, и оценить биг оу
И получить абсолютно такой же проеб по деньгам. Ой. Потому что вы не можете оценить константу.

Artemis
22.03.2019
21:58:29
Тогда зачем думать в терминах O-большого?
Потому что в 95% О(логН) лучше чем О(н)

Aragaer
22.03.2019
21:58:43
"да, тут хреново, потому что квадрат.... а вообще, может есть способ сделать хотя бы за н лог н?... Требует переделать все структуры данных. Пробуем?"

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

Google
Bogdan (SirEdvin)
22.03.2019
21:59:55
Кормен в помощь
У него там есть пруф, где он посчитал все алгоритмы и такой "ну вот, в 95% случаев все ок"? Сомневаюсь

Aragaer
22.03.2019
22:00:03
лайн профайлер покажет тебе, что на обработке массива в 1000 элементов ты пробегаешь по некоторой строке миллион раз.

Bogdan (SirEdvin)
22.03.2019
22:00:05
потому что это разговоры, которые я реально регулярно слышу на работе
Страшные люди у вас на работе, я не знаю, мне завидно или нет

Bogdan (SirEdvin)
22.03.2019
22:01:29
А можно было бы сесть и погрустить, но орать оно проще, да. Ведь О-большое для ора всего-то log n?

Aragaer
22.03.2019
22:01:58
не, я не понимаю, чего не так в о-большом. Не рокет сайнс же

ты смотришь на код и видишь его о-большое.

Bogdan (SirEdvin)
22.03.2019
22:02:20
Ну, я не понимаю, зачем оно нужно, если есть бенчмарки

Aragaer
22.03.2019
22:02:25
их надо запускать

Bogdan (SirEdvin)
22.03.2019
22:02:35
Окей

Aragaer
22.03.2019
22:02:44
а на всяком эмбеддед оборудовании в дальних полях это бывает делать не очень удобно

Bogdan (SirEdvin)
22.03.2019
22:02:53
Какое будет О-большое от доставания элемента из словаря?

И в догонку, такой же вопрос про добавление элемента в конец обычного списка

Aragaer
22.03.2019
22:03:12
формально считается за константу, реально зависит от размера хэша

добавление в конец односвязного списка - линия от длины списка. Циклического - константа

Bogdan (SirEdvin)
22.03.2019
22:03:51
На самом деле, формально - O(m), где m - это максимальное количество коллизий

Google
Aragaer
22.03.2019
22:04:16
константа+время на аллокацию

потому что списки в питоне циклические и из связанных блоков

Artemis
22.03.2019
22:05:11
К тому же, ты понимаешь, что словарь это абстрактная структура данных и ее как следствие нельзя анализировать с помощью О?

Aragaer
22.03.2019
22:05:14
На самом деле, формально - O(m), где m - это максимальное количество коллизий
это если при коллизии идет линейный поиск. Но есть другие споосбы

Bogdan (SirEdvin)
22.03.2019
22:05:44
Эм. Чуть сложнее
Окей, еще сложнее

Кстати, не расскажешь как? А то я буду очень долго ковырять код

Aragaer
22.03.2019
22:06:16
для словаря там есть где-то логарифмы, но эти логарифмы ограничены сверху какими-то размерами, поэтому "не больше константы"

Tishka17
22.03.2019
22:06:53
https://m.habr.com/ru/post/247843/

Там хитро коллизии считаются

Deep Sea
22.03.2019
22:08:33
на дворе ж уже 3.7, а в нём словари упорядочены

Aragaer
22.03.2019
22:08:37
а у нас на работе кстати один человек действительно занимается тем, что пишет код для быстрого перемножения матриц, опираясь на какие-то там оптимизированные алгоритмы

но я не математик, деталей не знаю

Bogdan (SirEdvin)
22.03.2019
22:09:57
Такое же замечание как у человека выше, походу надо таки читать доку в коде :(

Что?)
Ну, вы же понимаете, что сложность алгоримтов должна как бы складывается? Если вы оцениваете алгоримт сверху, чисто по циклу, то это как-то очень странно

Страница 8467 из 9768