
Zart
24.09.2016
09:07:18

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
Ну, это мы видим в другом языке, именно по этим причинам...

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
с какого хуя нужно трейсбак собирать со всех потоков, а не текущего?

Serge
24.09.2016
12:32:25

Jonh
24.09.2016
12:32:35

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

Zart
24.09.2016
12:32:48

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]

Sergey
24.09.2016
12:46:56

Serge
24.09.2016
12:48:06

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

Serge
24.09.2016
13:47:04

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

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 пусть будет