18:47:25 From Mike Deruygin : вечер добрый 18:47:40 From Елена Граховац : Здравствуйте! 18:56:01 From andrei : всем привет 18:56:12 From Dmitry : Привет 18:57:05 From andrei : звука нету пока? 18:57:22 From andrei : + 18:57:23 From Dmitry : + 18:57:26 From Ivan Lemeshev : + 18:57:26 From Григорий Заводов : + 18:58:07 From denis : + 19:00:42 From Dmitry : + 19:00:42 From Ivan Lemeshev : + 19:00:46 From Eugene Klimov : + 19:00:46 From Vyacheslav.Sitnikov : + 19:00:46 From denis : + 19:00:49 From Nikolay Yakubitskiy : + 19:00:58 From Mike Deruygin : + 19:01:02 From Nikolay Yakubitskiy : + 19:01:03 From Ivan Lemeshev : + 19:01:03 From denis : + 19:01:12 From Vyacheslav.Sitnikov : Можно чат в видео показывать? 19:01:52 From Ivan Lemeshev : это чтобы в записи было) 19:01:54 From andrey : Просто в записи видео не будет 19:02:08 From andrey : А подкаст живой? Дайте ссылку 19:02:14 From Vyacheslav.Sitnikov : Иван знает 19:02:16 From denis : Там настройки есть какие-то 19:02:28 From Dmitry : Отдельно окно открывали рядом 19:02:43 From Dmitry : Нет 19:02:43 From andrei : - 19:02:45 From denis : Нет, он скрыт от нас 19:02:45 From Nikolay : нет 19:02:46 From Sergey Olisov : - 19:03:31 From Dmitry : Либо просто читать вопросы полностью из чата, если вывести не получится. 19:04:17 From Dmitry : Голосом? Обычно просят голосом не вмешиваться. 19:04:22 From Елена Граховац : https://forms.gle/ypkdg1i1s63o3a1i9 19:05:55 From Mike Deruygin : на всем есть смысл фокусироваться ) 19:07:03 From Denis Saburov : Вы же будете вести след. занятие? 19:07:19 From andrei : Все преподаватели на mac'ах там магия)? 19:10:53 From Vyacheslav.Sitnikov : А можете озвучить все вопросы, которые импользуете при собеседовании? :) 19:12:35 From Даурен : Слайды быстро переключаются ) 19:13:52 From Sergey Olisov : а как-то можно гарантировать последовательность выполнения? 19:14:32 From Vyacheslav.Sitnikov : на разных ядрах 19:14:45 From Artem Shtykov : Только numa 19:15:51 From Vyacheslav.Sitnikov : + 19:15:52 From Ivan Lemeshev : + 19:15:52 From andrei : + 19:15:52 From Mikhail Zelenkin : + 19:15:53 From Dmitry : + 19:15:53 From alexey : + 19:15:53 From Sergey Olisov : + 19:15:53 From Dmitry Pavlov : + 19:15:54 From Denis Saburov : + 19:15:58 From Nikolay Yakubitskiy : + 19:16:09 From Denis Saburov : в кубере 19:16:20 From Denis Saburov : Там реально нужно у нас в компании например 19:16:40 From Vyacheslav.Sitnikov : _ 19:16:45 From Denis Saburov : - 19:16:45 From Ivan Lemeshev : - 19:17:27 From Dmitry Pavlov : 1 19:17:28 From andrei : 0 19:17:29 From Ivan Lemeshev : 1 19:17:29 From Sergey Olisov : 1 19:17:30 From Eugene Klimov : 1 19:17:30 From Nikolay Kom : 1 19:17:30 From Vyacheslav.Sitnikov : 2 19:17:30 From Григорий Заводов : 1 19:17:30 From Mike Deruygin : 1 19:17:30 From Denis Saburov : 1 19:17:31 From alexey : 0 19:17:33 From Nikolay Yakubitskiy : 0 19:17:33 From Даурен : 1 19:17:35 From Dmitriy Tselinko : 1 19:17:35 From Mikhail Zelenkin : 0 19:17:36 From andrey : 2 19:17:36 From Artem Shtykov : 0 19:17:54 From Елена Граховац : https://play.golang.org/p/TK1zEBfJAAL 19:18:12 From Григорий Заводов : главная 19:18:14 From Dmitry Pavlov : Главаня 19:18:43 From Ivan Lemeshev : ничего 19:18:45 From andrei : - 19:18:47 From Nikolay Kom : ничего 19:18:49 From Даурен : Возможно ничего 19:18:50 From Eugene Klimov : ничего 19:18:51 From Dmitry Pavlov : не успеет 19:18:52 From Denis Saburov : Hello 19:18:52 From Vyacheslav.Sitnikov : ошибку, из-за кавычек 19:18:55 From Nikolay Kom : мгновенно завершится 19:19:01 From Mikhail Zelenkin : Hello 19:19:03 From Ivan Lemeshev : не будет условия отработки горутины, ничего 19:20:08 From Григорий Заводов : waitGroup? 19:20:16 From Даурен : почему сразу каналы? 19:21:45 From glebarez : указатели в каналах ок? 19:22:02 From glebarez : thread-safe отдельно 19:22:04 From glebarez : обсудим 19:24:05 From Dmitry Pavlov : - 19:24:06 From Ivan Lemeshev : да 19:24:07 From andrei : - 19:24:09 From Sergey Olisov : 0 19:24:10 From Artem Shtykov : нет 19:24:10 From Ivan Lemeshev : 0 19:24:11 From Eugene Klimov : нет 19:24:11 From glebarez : про внутрянку, небуфиризованный, это размер 1 ? 19:24:12 From Nikolay Kom : да 1 емкость 19:24:13 From Dmitriy Tselinko : - 19:24:14 From Даурен : 1 19:25:35 From Vyacheslav.Sitnikov : Закрыт канал или нет 19:25:36 From Denis Saburov : открыт закр 19:25:36 From Dmitry Pavlov : Если что-то в канале 19:25:37 From Ivan Lemeshev : закрыт/открыт 19:25:40 From Sergey Olisov : не пуст 19:26:43 From Vyacheslav.Sitnikov : выведется 19:27:04 From Dmitry Pavlov : Hello 19:27:07 From Ivan Lemeshev : Hello 19:28:22 From Denis Saburov : Можно еще раз какая будет очередность? 19:28:34 From Елена Граховац : https://play.golang.org/p/XFSYdyzqZ1C 19:28:48 From alexey : Поесть читать из канала не обязательно в переменную? 19:29:05 From andrey : в каком месте он будет ожидать? на шаге чтения/записи из канала? Или вызова горутины? 19:29:16 From Vyacheslav.Sitnikov : а покажите трассировщик 19:29:27 From Denis Saburov : Сперва запишется в канал, а потом прочитается 19:29:29 From Denis Saburov : ? 19:30:05 From Denis Saburov : Если не будем читать, то программа зависнет? 19:30:18 From Vyacheslav.Sitnikov : да 19:30:20 From andrei : если не писать то ошибка 19:30:44 From vitaly : а если надо только читать из канала? 19:30:47 From Dmitry Pavlov : Главная горутина вышла и все (1 случай) 19:31:02 From Denis Saburov : А почему наоборот не deadlock? 19:31:16 From Vyacheslav.Sitnikov : давайте в IDE проверим 19:31:16 From mialinx : ^^ выше написали 19:31:18 From Dmitry Pavlov : ну потому что главная горутина вышла 19:31:18 From Даурен : Ну там же не main goroutine 19:31:22 From mialinx : главная горутина просто выходит 19:33:00 From Dmitry Pavlov : (вот и ответ на броадксатинг сообщение?) 19:34:26 From Елена Граховац : https://play.golang.org/p/DmQr2WBJTMB, 19:35:29 From Елена Граховац : https://play.golang.org/p/s3p9rQmCT68 19:36:45 From Елена Граховац : https://play.golang.org/p/XFSYdyzqZ1C 19:37:10 From Даурен : Внутри горутины закрыть 19:37:20 From Даурен : 12 19:38:34 From Denis Saburov : То есть при закрытии - происходит запись в канал? 19:38:56 From Mike Deruygin : закрытие канала тоже блокирует? 19:40:51 From andrei : panic? 19:40:53 From Eugene Klimov : ошибка при компиляции 19:40:54 From Dmitry Pavlov : не скопмилится 19:40:54 From Denis Saburov : ничего 19:40:57 From Ivan Lemeshev : паника? 19:40:58 From Vyacheslav.Sitnikov : разрыв шаблона 19:41:20 From Vyacheslav.Sitnikov : а как она только на чтение, если никто туда писать не может? 19:41:30 From Vyacheslav.Sitnikov : чего ей читать? 19:41:43 From Denis Saburov : На практике используют ли это? И для чего? 19:41:50 From Dmitry Pavlov : это некое типизация канала, для строгоости 19:42:36 From Mike Deruygin : если я только читаю из канала, что я оттуда прочитаю? 19:43:12 From Елена Граховац : https://play.golang.org/p/t6bVfgg6BTu 19:44:28 From Vyacheslav.Sitnikov : а есть разница 5 -> chan или chan <- 5 ? 19:45:39 From Mike Deruygin : то есть каналы только на чтение и на запись это типизация принимающих параметров в функции, но не при создании канала? 19:45:54 From glebarez : + 19:45:55 From Denis Saburov : Можно ссылку на этот код 19:46:32 From Mike Deruygin : ага, спасибо 19:46:35 From Елена Граховац : https://play.golang.org/p/CehXOQ-KhmI 19:48:58 From andrei : Когда какие использовать? 19:49:46 From Mike Deruygin : таки да 19:49:52 From Denis Saburov : Посмотреть заполнен или нет 19:49:53 From Vyacheslav.Sitnikov : возможно 19:49:55 From Dmitry Pavlov : В тестах 19:49:57 From Даурен : Когда не хочешь заблокироваться 19:50:19 From Vyacheslav.Sitnikov : снимать статистику для мониторинга 19:50:35 From Denis Saburov : Вы сказали если канал пуст - то тоже блокируется, но почему? 19:51:30 From Dmitry Pavlov : не пуст, а именно заполненный 19:51:41 From Dmitry Pavlov : а, ок 19:51:59 From Vyacheslav.Sitnikov : а так можно писать? for i; ? 19:52:12 From alexey : дефолт вылью же 19:52:21 From Vyacheslav.Sitnikov : а типа нет для инициализации 19:53:19 From Vyacheslav.Sitnikov : это три раза, а не 4 19:53:21 From Denis Saburov : Как проверить что он заполнен? 19:53:35 From Даурен : len() 19:54:35 From Vyacheslav.Sitnikov : а через сколько дедлок срабатывает? Может правдв долго в канал никто не пишет 19:55:07 From Denis Saburov : То есть len все так нужен в проде? 19:56:45 From Dmitry : зачем len? я select пользовал.. для записи, по крайней мере. 19:56:50 From Vyacheslav.Sitnikov : ну да, когда чтение не успевает за записью, можно отследить 19:57:07 From Denis Saburov : Как не поймать deadlock в этом примере при записи более 4-х раз? 19:57:41 From Даурен : Сделать между чтениями 5 сек 19:57:47 From Nikolay Kom : разве лен не помогает читать пачкой (в цикле), например считал пачкой , обработал, потом еще пачкой считал, обработал 19:57:50 From Nikolay Kom : ? 19:57:50 From Denis Saburov : Если мы хотим подождать пока там прочитают 19:57:58 From Елена Граховац : https://play.golang.org/p/eTfKZ1MFu6R 19:59:45 From Dmitry : а range не будет постоянно len определять? как это на производительности скажется.. 20:00:09 From Dmitry Pavlov : врядли проверяет 20:00:48 From Denis Saburov : Если какой-то период туда не пишут, но и не закрывают, range заблокирует выполнение? 20:00:48 From Даурен : тут ведь речь пр 20:00:58 From Даурен : Про закрытие а не про пустоту 20:01:44 From Dmitry : Ок, спасибо 20:01:49 From Vyacheslav.Sitnikov : да 20:01:51 From Ivan Lemeshev : да 20:01:51 From Mike Deruygin : нет 20:01:52 From Denis Saburov : да 20:01:52 From alexey : да 20:02:11 From Denis Saburov : А как узнать что значение закончились? 20:02:44 From Denis Saburov : range же по закрытию выходить или пока данные не кончаться? 20:02:55 From Dmitry Pavlov : по закрытию 20:02:57 From Даурен : тогда в предыдущем слайде два кода не одинаковы 20:03:13 From Даурен : Если range выйдет при пустоте 20:04:24 From Dmitry Pavlov : range дочитает все значения и потом выйдет, если успеет (пока main не вышел) 20:05:14 From Mike Deruygin : а если не закрывать канал ? 20:05:56 From Mike Deruygin : ага, спасибо 20:06:01 From Vyacheslav.Sitnikov : как трассировку посмотреть? 20:08:01 From Vyacheslav.Sitnikov : а есть таймаут? 20:08:12 From Dmitry Pavlov : заблокируется возможно 20:08:15 From andrei : ошибка 20:08:20 From alexey : ошибка 20:08:24 From Даурен : + 20:08:33 From Даурен : ужас 20:09:12 From Dmitry Pavlov : на первое апреля от коллег) 20:10:16 From Vyacheslav.Sitnikov : а если при создании 99 горутины уже сработает закрытие? 20:10:27 From Vyacheslav.Sitnikov : 99999 20:10:49 From alexey : А смысл создавать их на чтение и закрывать сразу? 20:10:55 From Vyacheslav.Sitnikov : вы же сказали, что последовательность не гарантируется 20:11:11 From Dmitry Pavlov : сразу запустить пачку горутин 20:11:24 From andrei : а как теперь дождаться выполнения всех горутин 20:11:27 From Vyacheslav.Sitnikov : на 99999 горутине канал закроется когда 100000 ещё не успеет создаться 20:11:31 From glebarez : то есть закрытие это классный кейс когда все рутины вычитывают одно значение, пусть и техническое 20:12:03 From alexey : это например для нагрузочного тестирования используется? 20:12:34 From alexey : а какие еще кейсы? 20:12:42 From Denis Saburov : Про загадачную waitGroup будем говорить? 20:14:04 From Vyacheslav.Sitnikov : да у нас полно времени, не переживайте :) 20:14:16 From Григорий Заводов : + 20:14:21 From andrey : + 20:14:26 From Mikhail Zelenkin : + 20:14:30 From Denis Saburov : ++++++ 20:14:47 From Mike Deruygin : согласен, на параллельном курсе по субд сидели до 10-30 ~ 11 практически каждый раз 20:15:44 From Mike Deruygin : и никто никуда никогда не спешил 20:16:00 From Vyacheslav.Sitnikov : а пожно правый пример на практике 20:16:11 From Даурен : тикер ведь не ждёт delay программы? 20:16:37 From Даурен : Например в case time.sleep 20:17:18 From Vyacheslav.Sitnikov : А можно в веб морде? play.golang не зависнет? :) 20:17:39 From Vyacheslav.Sitnikov : давайте завесим гугл! 20:18:26 From Denis Saburov : Забанит просто ) 20:18:30 From alexey : Не зависнет) 20:18:45 From Vyacheslav.Sitnikov : Давайте 100 штук запустим 20:19:36 From Vyacheslav.Sitnikov : > Забанит просто ) Знаю я некоторых, которых в гугле забанили... :) 20:20:58 From Nikolay Kom : рандом 20:20:58 From Denis Saburov : 1 20:21:01 From alexey : не известно 20:21:02 From Dmitry Pavlov : рандом 20:21:04 From andrei : rand 20:21:05 From Vyacheslav.Sitnikov : ставки на спорт... 1иксбед 20:21:12 From Mikhail Zelenkin : рандом 20:21:40 From Nikolay Kom : + 20:21:40 From Vyacheslav.Sitnikov : + 20:21:41 From Dmitry Pavlov : + 20:21:42 From Григорий Заводов : + 20:21:43 From alexey : - 20:21:43 From Sergey Olisov : + 20:21:43 From Mikhail Zelenkin : - 20:21:56 From andrei : no 20:22:31 From Denis Saburov : на windows разве нет сигналов? 20:22:40 From Eugene Klimov : кстати эта конструкция и в виндоус сработает, недавно пробовал 20:22:41 From Елена Граховац : https://play.golang.org/p/ROnMBbgiwDP 20:22:56 From Григорий Заводов : да сработает 20:22:59 From Eugene Klimov : просто там как-то компилятор шаманит под капотом 20:23:11 From Vyacheslav.Sitnikov : работает точно 20:25:14 From mialinx : BTW, а кто должен закрывать канал ? читатель или писатель ? Или без разницы ? 20:25:34 From Ivan Lemeshev : писатель 20:25:34 From andrei : gписарь 20:25:38 From Григорий Заводов : кто создавал 20:25:40 From Dmitry : писатель 20:25:40 From Denis Saburov : или создатель 20:25:41 From Ivan Lemeshev : это же было с сайдах 20:25:42 From Nikolay Kom : тот кто открыл 20:25:44 From Dmitry Pavlov : тот из писателей, кто создал 20:26:25 From Dmitry Pavlov : У меня под виндой висит просто 20:26:27 From Denis Saburov : 9 20:26:32 From Denis Saburov : 15 20:27:09 From Даурен : Зачем там канал если сигнал передается программе? 20:27:13 From andrey : Блин, всю жизнь думал что sigint и sigterm это одно и тож. Оказалось что нет Ж) 20:27:56 From Denis Saburov : Приятно когда преподаватель готовиться к уроку! 20:28:00 From Vyacheslav.Sitnikov : если сам себе шлёшь, то нормально, на винде нормально компилируется следующее: // Навешиваем обработчик Ctrl+C, затем запускаем горутину-функцию, читающую из обработчика и осуществляющую корректную остановку // Следом запускаем вторую горутину-функцию, также читающую из этого же обработчика, но осуществляющую аварийный выход ctrlC := make(chan os.Signal) signal.Notify(ctrlC, syscall.SIGINT) go stop(ctrlC) go emergency(ctrlC) 20:28:39 From Denis Saburov : 15 20:29:15 From Denis Saburov : debug включать удобно 20:29:19 From Mike Deruygin : прикольно, полезная штука, спасибо 20:29:23 From Eugene Klimov : вот реальный пример на винде 20:29:26 From Eugene Klimov : https://www.screencast.com/t/3arTP4jVc8n6 20:31:27 From Елена Граховац : https://play.golang.org/p/I0c7heYneBy 20:31:36 From Vyacheslav.Sitnikov : чёпопало 20:31:43 From alexey : 55555 20:31:45 From Sergey Olisov : + 20:31:46 From Dmitry Pavlov : 5 20:31:53 From alexey : Как в js 20:31:54 From Григорий Заводов : 44444 20:31:54 From Dmitry Pavlov : Ну 5 раз 5 20:31:58 From Dmitriy Tselinko : 55555 20:31:59 From Denis Saburov : 01234 20:32:36 From Григорий Заводов : в замыкание переменная по ссылке ушла 20:32:54 From Eugene Klimov : да, что-то невнятное будет, i надо передавтать в рутины 20:33:02 From alexey : А почему 4 в конце? 20:33:18 From alexey : типо в рандомном порядке? 20:33:21 From Denis Saburov : Разве не значение передается? 20:33:33 From Denis Saburov : А да понял 20:33:39 From Dmitry Pavlov : go func() {} (i) 20:33:44 From Denis Saburov : передать в канал 20:33:45 From Vyacheslav.Sitnikov : убрать go 20:33:46 From Dmitry : в круглые скобки 20:33:46 From andrei : параметр в функции 20:33:49 From Dmitry : передать 20:33:49 From Григорий Заводов : передать параметром 20:33:56 From Ivan Lemeshev : параметром 20:34:02 From Eugene Klimov : go func (i int) {}(i) 20:34:16 From Ivan Lemeshev : но порядок не будет гарантирован 20:35:21 From Dmitry Pavlov : причем упадет ночью) 20:36:09 From Vyacheslav.Sitnikov : трассировка 20:36:54 From Dmitry Pavlov : для синхронизации 20:36:56 From Denis Saburov : Когда необходимо просто получить сигнла 20:37:33 From Vyacheslav.Sitnikov : всегда 20:37:53 From Ivan Lemeshev : - 20:37:55 From Mikhail Zelenkin : - 20:37:56 From andrei : - 20:37:56 From Dmitry Pavlov : - 20:37:57 From Sergey Olisov : - 20:37:57 From Mike Deruygin : - 20:37:59 From Nikolay Kom : - 20:38:06 From Denis Saburov : А если канал буфер с cap = 1 чем отличается от не буфер? 20:38:16 From Dmitry Pavlov : буфер размера 1 20:39:24 From Denis Saburov : Выйдем не ожидая? 20:44:39 From Vyacheslav.Sitnikov : := утьрать 20:44:50 From Dmitry : Да, придумывание название переменных у меня может занимать до 30% всего времени на написание программы.. 20:45:14 From Mike Deruygin : а это шутка? 20:45:20 From Denis Saburov : Это правда) 20:45:41 From andrei : ждать 20:45:42 From Nikolay Kom : дедлок? 20:45:42 From Vyacheslav.Sitnikov : Вторая зависнет, если первая с ошибкой 20:45:49 From Sergey Olisov : блокировка 20:46:35 From Denis Saburov : Можно потом скинуть этот пример 20:47:07 From Mike Deruygin : классный и полезный пример, спасибо) 20:48:16 From Елена Граховац : https://play.golang.org/p/OF7HZ3L7poa 20:48:39 From andrei : HT 20:49:32 From Eugene Klimov : а в этом примере не зависнет на range навсегда? 20:49:38 From Artem Shtykov : Можно еще ссылку на подкаст 20:50:03 From Vyacheslav.Sitnikov : Когда про трассировку ждать? 20:50:10 From Dmitry : А range можно прервать же? Корректно получится? 20:50:43 From Vyacheslav.Sitnikov : в слаке напишете про трассировку или у нас ещё урок будет? 20:50:43 From Mikhail Zelenkin : IMHO там надо чтобы рутины писали результат (ошибка/успех) 20:50:44 From Denis Saburov : Можно будет презентацию скинуть в ЛК 20:51:13 From Елена Граховац : Подкаст: golangshow.com 20:51:54 From Denis Saburov : Задания самим придумать? 20:52:09 From Dmitry Pavlov : Они абстракты 20:52:58 From glebarez : регулировать параллельность через канал? 20:53:01 From glebarez : дайте хинт ) 20:53:13 From Mikhail Zelenkin : а как такое правильно тестировать? 20:53:18 From andrei : без wait? 20:53:20 From glebarez : а в проме другие техники? 20:53:44 From glebarez : прод ) 20:53:46 From glebarez : акшн) 20:53:53 From glebarez : для параллельности 20:53:56 From glebarez : в продакшне 20:54:02 From Mike Deruygin : приостановить это мягко или жестко? 20:54:20 From Даурен : + 20:54:39 From Denis Saburov : Мягко с ожидаем завершения заданий?? 20:54:46 From Vyacheslav.Sitnikov : Елена, переходите на светлую сторону, нафиг слак, у нас есть телеграм канал 20:55:18 From Denis Saburov : Салак для работы, тоже ближе 20:55:19 From Mike Deruygin : я ведь могу очень разные задачи подать на вход, одни выкинут ошибки, а в этот момент будет происходить обработка - дать им завершится остальным? 20:55:41 From Dmitry Pavlov : как ссылки 20:55:51 From Vyacheslav.Sitnikov : когда это один и тот же канал 20:56:03 From Vyacheslav.Sitnikov : один указатель на другой 20:56:28 From Dmitry Pavlov : лучше мягко) 20:56:29 From Vyacheslav.Sitnikov : точнее два указателя на один и тот де канал 20:56:39 From Даурен : мягко сложнее ) 20:56:40 From Mike Deruygin : ага, спасибо 20:57:07 From Denis Saburov : Спасибо огромное за урок! 20:57:16 From andrei : супер! 20:57:24 From Mike Deruygin : да, урок отличнейший! 20:57:27 From andrei : Ремень отдыхает) 20:57:33 From Vyacheslav.Sitnikov : а что там про рефлексию? 20:57:40 From Mike Deruygin : в принципе, вообще все новое и поезное) 20:57:44 From Vyacheslav.Sitnikov : :) 20:57:45 From Dmitry Pavlov : )) 20:57:48 From Mikhail Zelenkin : Спасибо за урок! 20:57:54 From Eugene Klimov : Спасибо, на самом деле много нового! 20:58:03 From vitaly : Все супер, спасибо) 20:58:04 From Denis Saburov : Оставайтесь с нами - урок классный!!! 20:58:05 From Ivan Ivanov : Спасибо, хороший урок, понравился) 20:58:09 From Ivan Lemeshev : спасибо 20:58:11 From Dmitry Pavlov : По моему лучший урок so far 20:58:13 From Dmitry : Спасибо! 20:58:15 From Nikolay Kom : спасибо 20:58:27 From Vyacheslav.Sitnikov : а скажите что-нить на немецком 20:58:37 From Denis Saburov : )) 20:59:41 From Елена Граховац : https://clck.ru/JHCzG 20:59:47 From Denis Saburov : Auf Wiedersehen, danke für die Lektion! 20:59:52 From Vyacheslav.Sitnikov : чптик сохраните плз 21:00:05 From Елена Граховац : https://otus.ru/polls/4898/ 21:00:06 From Vyacheslav.Sitnikov : это гугл трансоейт 21:00:30 From Vyacheslav.Sitnikov : спасибо! 21:00:31 From Denis Saburov : Хорошего вечера! 21:00:32 From Nikolay Kom : спасибо 21:00:35 From Ivan Lemeshev : спасибо 21:00:36 From Dmitriy Tselinko : спасибо 21:00:38 From Dmitry Pavlov : Спасибо, всего доброго 21:00:41 From Mike Deruygin : спасибо большое, хорошего вечера!