@spbpython

Страница 148 из 785
Zart
24.09.2016
09:07:18
from calendar import monthcalendar в помощь :)
he_IL локаль выставлять? 8))

Andrey
24.09.2016
09:07:45
Да, в го вообще исключений нет. Збс выход

И бойлерплейт при каждом вызове

Zart
24.09.2016
09:09:28
решили путем "насрать и посмотреть на реакцию"?

Google
Jonh
24.09.2016
09:11:16
тем не менее, неплохо получилось

Eugene
24.09.2016
09:12:04
Набросал вот. Не проверял, правильно или нет :) days = 0 for year in range(2016, 2097): for month in range(1, 13): days += len([d for d in calendar.monthcalendar(year, month) if d[5] != 0])

Zart
24.09.2016
09:12:46
индус

Eugene
24.09.2016
09:13:10
Сойдёт :)

Vitali K.
24.09.2016
09:14:10
Эти вы посчитали количество суббот?

Eugene
24.09.2016
09:14:16
Наверное

Danil
24.09.2016
09:14:43
Эти вы посчитали количество суббот?
ага, тех которые канули в никуда )

Vitali K.
24.09.2016
09:15:17
? у меня вот намечается такая суббота после пятницы

Eugene
24.09.2016
09:15:26
?

Я даже не запускал, хз, что оно там считает

Zart
24.09.2016
09:15:58
>>> (datetime.datetime(2096, 1, 1) - datetime.datetime(2016, 1, 1)) / 7 datetime.timedelta(4174, 24685, 714285) все равно выходит 4174...

>>> import calendar >>> days = 0 >>> for year in range(2016, 2096): ... for month in range(1, 13): ... days += len([d for d in calendar.monthcalendar(year, month) if d[5] != 0]) ... >>> days 4175

Eugene
24.09.2016
09:19:06
Запустил, у меня получилось 4227

Google
Zart
24.09.2016
09:19:20
потому что ты считаешь 81 год

Andrey
24.09.2016
09:19:22
Везёт тебе

Eugene
24.09.2016
09:20:05
точна, долбаный матлаб

Постоянно ошибаюсь в индексации по срезам после матлаба, там индексы с 1 и срезы включают последний элемент.

Zart
24.09.2016
09:22:50
IT has only two hard problems: naming things, cache validation and off-by-one errors

Eugene
24.09.2016
09:23:30
создатели Go с вами не согласны, для них оказалось всё сложным, в том числе отрицательные индексы в срезах

Zart
24.09.2016
09:24:14
странно что про Vala никто и нигде не упоминает в срачах

Eugene
24.09.2016
09:24:23
да там тоже с 1 же

просто на нём никто не пишет :)

Michael
24.09.2016
10:33:59
Блин в четверг ?

Serge
24.09.2016
11:09:58
Ну, это мы видим в другом языке, именно по этим причинам...

решили путем "насрать и посмотреть на реакцию"?
Решили вторым возвращаемым значением err

Andrey
24.09.2016
12:06:08
Это классический вопрос на собеседовании. Чем отличаются исключения и возвращаемые значения и когда что лучше

Vitali K.
24.09.2016
12:16:35
Какой правильный ответ?

Serge
24.09.2016
12:19:01
Какой правильный ответ?
Ну, однозначного ответа что что-то лучше нет. В разных случаях разное

Andrey
24.09.2016
12:22:08
да. а в го одного из вариантов нет

Serge
24.09.2016
12:24:33
да. а в го одного из вариантов нет
Потому что они не могут себе позволить исключения. Ровно по тем же причинам, что Рому беспокоят

Остановить все потоки и собирать трейсбэк? Да охренеть

Google
Serge
24.09.2016
12:28:16
Исключение и отрицательный ответ - разные вещи. Настоящее исключение - это всё, амба. Дальше программа не может делать ничего, потому что она работает не так, как планировалось.

Исключения IO - это просто отрицательный ответ. Типа, я бы открыл файлик, но его нет. Такую ситуацию можно предусмотреть и обработать. Для этого трейсбек не нужен.

Zart
24.09.2016
12:31:29
с какого хуя нужно трейсбак собирать со всех потоков, а не текущего?

Jonh
24.09.2016
12:32:35
Это классический вопрос на собеседовании. Чем отличаются исключения и возвращаемые значения и когда что лучше
Имеется в виду, что исключения выгоднее по производительности, когда ошибки случаются редко? И обратная ситуация, соответственно

Serge
24.09.2016
12:32:46
Ты не можешь собрать честный трейсбэк, не остановив всех потоков.

Zart
24.09.2016
12:32:48
Shared memory
отмазка не засчитана о.О

Serge
24.09.2016
12:34:03
Zart
24.09.2016
12:34:33
я пока не вижу смысла дампить стеки всех потоков сразу

погуглил инфу про го и его ошибки выглядит как типичное си говно 80х

прогресс, хули

Andrey
24.09.2016
12:35:29
Имеется в виду, что исключения выгоднее по производительности, когда ошибки случаются редко? И обратная ситуация, соответственно
код ответа ты можешь увидеть только на уровень выше. если его надо прокинуть дальше, надо кучу бойлерплейта писать. а исключение разматывает стек само. но в общем случае дороже

Serge
24.09.2016
12:36:40
Блин, вот были бы легкие исключения, которые ничего не делают, а просто есть альтернативный возврат. Как в ноде, типа колбэк на другой ивент

Zart
24.09.2016
12:38:29
еррбаки это по сути return error ? errback : callback;

Serge
24.09.2016
12:38:47
Есть исключения, а есть err return

И, ловить отдельно, не поймал, ушло на предыдущий уровень. Но не более жрёт, чем return на том же месте

Zart
24.09.2016
12:41:27
Defensive coding vs Exception handling - выбирайте свой яд

Google
Serge
24.09.2016
12:41:58
Zart
24.09.2016
12:43:05
еще есть героический стиль - никаких проверок и ебись оно всё конем 8]

Vitali K.
24.09.2016
13:06:25
Мне нравится использовать исключения чтобы вернуться на N вызовов наверх и залогировать проблему

Serge
24.09.2016
13:47:04
Мне нравится использовать исключения чтобы вернуться на N вызовов наверх и залогировать проблему
Ну, это понятно, но это хорошо, если это конец, а не промежуточное действие логики. Когда это проблема, то да, логгировать и падать. Ну, типа, завершать программу/тред/процесс/корутину, на выбор

Andrey
24.09.2016
14:33:17
ну рекавери какой-нибудь тоже вполне прокатит. ретраи там всякие

И что в таком контексте ты думаешь о том, как реализована в питоне итерация?

Zart
24.09.2016
14:45:23
а что с итерацией?

Andrey
24.09.2016
14:48:56
StopIterationException. под сережины критерии, что эксепшены только для проблем не попадает

Admin
ERROR: S client not available

Zart
24.09.2016
14:50:09
не было б исключений, оно было бы гвардом наверное

Andrey
24.09.2016
14:51:30
ну реализовать можно по разному

Zart
24.09.2016
14:52:32
вообще изначальный протокол итерации в питоне использовал IndexError

вот так: >>> class A: ... def __getitem__(self, i): ... if i > 5: raise IndexError(i) ... return i ... >>> a = A() >>> list(a) [0, 1, 2, 3, 4, 5]

позже добавили __iter__/next + StopIteration вариант

Serge
24.09.2016
15:07:37
StopIterationException. под сережины критерии, что эксепшены только для проблем не попадает
И это очень анноит меня.:) Его хотя бы из генераторов выпиливают, и то хорошо

Zart
24.09.2016
15:08:01
кого выпиливают? там же GeneratorExit исключение? 8)

Serge
24.09.2016
15:09:16
Вроде там не исключение было, даже pep был. Мы радовались. Надо снова посмотреть внимательно...

Zart
24.09.2016
15:09:40
я чтото за мыслью не поспеваю

Google
Serge
24.09.2016
15:11:49
Мысль одна. Херачить логику на исключениях - лютое зло.

Zart
24.09.2016
15:12:32
до исключений то же самое говорили про goto

Serge
24.09.2016
15:13:28
"Исключение" - достаточно вдуматься в значение этого слова, чтобы понять, что это всё, хана, амба, крышка, тупик, конец, жопа, после этого неизвестно что.

Zart
24.09.2016
15:15:16
жаль

Serge
24.09.2016
15:15:49
Завершение итерации - исключительная ситуация... Да, долбанитесь. Типа, мы не планировали её завершать, ага.

Zart
24.09.2016
15:16:42
предложи другой механизм останова?

(при этом у нас их уже два и оба на исключениях)

Serge
24.09.2016
15:17:21
Я предложил.

Zart
24.09.2016
15:17:26
где?

Serge
24.09.2016
15:17:43
Вот серединку бы

Zart
24.09.2016
15:17:56
и рыбку съесть...

Serge
24.09.2016
15:18:01
Блин, вот были бы легкие исключения, которые ничего не делают, а просто есть альтернативный возврат. Как в ноде, типа колбэк на другой ивент

Zart
24.09.2016
15:18:20
вот в пизду коллбэки. в полную

кто не согласен - приговаривается к 5 годам твистеда

Andrey
24.09.2016
15:18:49
при коллбеке ты стек не разматываешь. это проблема

Serge
24.09.2016
15:18:49
Не зря же люди stdout и stderr придумали. Неспроста.

вот в пизду коллбэки. в полную
Это аналогия. Не прямая

Andrey
24.09.2016
15:19:30
но не для ошибок

Zart
24.09.2016
15:20:29
Это аналогия. Не прямая
т.е. альтернативного механизма ты не придумал

Serge
24.09.2016
15:20:30
Я имею в виду альтернативный возврат. Не return и не raise, а между, типа throw пусть будет

Страница 148 из 785