Home
Обсуждение программирования на любых платформах
codingteam@conference.jabber.ru
Четверг, 21 февраля 2019< ^ >
m4n71k0r установил(а) тему: C, C#, C++, Clojure, Cobol, Common Lisp, D, Erlang, F#, Go, Groovy, Haskell, Java, JavaScript, Kotlin, MATLAB, OCaml, PowerShell, Python, R, Racket, Refal, Ruby, Rust, Scala, Scheme, TypeScript
Telegram channel: https://t.me/codingteam
HQ, логи: https://codingteam.org.ru/
Код постить сюда: http://lpaste.net/
Юным погромцам сюда: http://e-maxx.ru/algo/ , а ещё читать Кнутца, Корменца, Седжвикца и др.
Let's Dev (когда Капитан на мостике): http://www.youtube.com/playlist?list=PLK6mcZkmN4QTusFvp_0GVtscQbCiIg81Y
Tsoding: https://tsoding.github.io/schedule.html
http://i.imgur.com/slnyI6a.jpg
Упоминания о Flash, PHP, Pascal/Delphi/Borland, Basic, 1С караются съедением поциента.
Конфигурация комнаты
Участники комнаты

GMT+3
[01:04:32] codenull вышел(а) из комнаты
[01:17:48] <tg> <@ingvarjackal> [Sticker 😠]
[04:43:46] matraskin вошёл(а) в комнату
[04:44:14] matraskin вышел(а) из комнаты
[05:25:57] HazardPointer вышел(а) из комнаты
[06:22:21] Славный капитан вошёл(а) в комнату
[06:48:28] portnov вошёл(а) в комнату
[07:40:52] portnov вышел(а) из комнаты
[08:07:31] ma1uta вошёл(а) в комнату
[09:53:48] m4n71k0r вошёл(а) в комнату
[09:56:22] <tg> <@ttldtor> >> <Devel29A> Не умею переносить :(
емнип, форвардишь тудой и удаляешь тут
[09:56:24] <tg> <@ttldtor> утро
[09:56:28] <tg> <@ttldtor> как настроение?
[10:03:59] <tg> <@Air_0> [Sticker 😏]
[10:04:00] <tg> <@Air_0> [Sticker 😑]
[10:04:04] <tg> <@Air_0> Вот так
[10:05:25] <tg> <@sarakerrigan> [Sticker 😴]
[10:05:28] <tg> <@sarakerrigan> такое
[10:05:59] <tg> <@ttldtor> проснули и сгорели на работе?! НИЧЕГО СТРАШНОГО!
[10:06:00] <tg> <@Air_0> [Sticker 👊]
[10:06:06] <tg> <@ttldtor> попробуйте водку!
[10:06:22] <tg> <@sarakerrigan> не, сегодня уборка - так что поваляться не удалось
[10:06:51] <tg> <@Air_0> Рано ещё урожай убирать
[10:07:03] <tg> <@Air_0> Если ты про озимые
[10:07:34] <tg> <@sarakerrigan> в квартире блин
[10:08:01] <tg> <@Air_0> Гидропоника.
[10:08:29] <tg> <@sarakerrigan> мусор
[10:08:38] <tg> <@sarakerrigan> я заказываю уборку квартиры раз в месяц
[10:08:47] <tg> <@Air_0> А, богатый урожай?
[10:09:02] <tg> <@Air_0> И сколько это выходит?
[10:09:05] <tg> <@sarakerrigan> эндер, выпей таблетки плз
[10:09:06] <tg> <@sarakerrigan> 2к
[10:09:11] <tg> <@Air_0> Лол
[10:10:04] <tg> <@Air_0> *ушёл искать номера телефонов местных клининговых контор*
[10:10:17] <tg> <@sarakerrigan> >> <Air_0> *ушёл искать номера телефонов местных клининговых контор*
ты где там территориально?
[10:10:23] <tg> <@ttldtor> а кто это у нас тут маленький агроном?
[10:10:38] <tg> <@Air_0> >> <ttldtor> а кто это у нас тут маленький агроном?
Не пали
[10:10:49] <tg> <@sarakerrigan> я уже джва года qlean юзаю, могу промокод отсыпать
[10:11:52] <tg> <@winged_pegasus> >> <sarakerrigan> я уже джва года qlean юзаю, могу промокод отсыпать
Фига ты)
[10:12:06] <tg> <@sarakerrigan> >> <winged_pegasus> Фига ты)
ну блэт, снимаю 3 года уже
[10:19:19] <tg> <@Devel29A> А сам не?
[10:19:50] <tg> <@ttldtor> тян заведи - никакая клининговая не поможет квартиру убрать
[10:20:11] <tg> <@sarakerrigan> >> <ttldtor> тян заведи - никакая клининговая не поможет квартиру убрать
вполне убирают
[10:20:20] <tg> <@sarakerrigan> но
[10:20:26] <tg> <@sarakerrigan> одно большое но
[10:20:49] <tg> <@sarakerrigan> я делаю эту в первую очередь, чтобы лендлорды не бомбили и хаос не разрастался
[10:21:20] <tg> <@Devel29A> Стремно как-то левых людей пускать перебирать грязные трусы
[10:21:32] <tg> <@sarakerrigan> lolwto
[10:21:48] <tg> <@a1batross> Стрёмно как-то левых людей убираться в твоей крепости. Пусть и съёмной.
[10:21:56] <tg> <@Devel29A> Да!
[10:21:58] <tg> <@sarakerrigan> мне пылесосят ковер, застилают всё тама и моют кухню с санузлом
[10:22:05] <tg> <@Devel29A> Нароют троянских тоннелей!
[10:22:17] <tg> <@sarakerrigan> >> <a1batross> Стрёмно как-то левых людей пускать убираться в твоей крепости. Пусть и съёмной.
это не моя крепость, лел
[10:22:40] <tg> <@a1batross> Съёмная же.
[10:34:17] <tg> <@Air_0> >> <ttldtor> тян заведи - никакая клининговая не поможет квартиру убрать
Не факт
[10:34:39] <tg> <@sarakerrigan> сильно зависит от
[10:34:46] <tg> <@winged_pegasus> >> <ttldtor> тян заведи - никакая клининговая не поможет квартиру убрать
Всё-то ты на тян спихиваешь.
[10:41:57] <tg> <@Devel29A> Мантикоры они такие
[10:42:08] <tg> <@Devel29A> будешь бузить - съедят вообще
[10:43:05] <tg> <@ingvarjackal> >> <a1batross> Стрёмно как-то левых людей пускать убираться в твоей крепости. Пусть и съёмной.
чужаки? в моей обители? нестерпимо!
[10:43:11] <tg> <@winged_pegasus> >> <Devel29A> будешь бузить - съедят вообще
Плохо быть тян мантикора.
[10:43:19] <tg> <@ingvarjackal> *очень территориальный*
[10:43:44] <tg> <@winged_pegasus> >> <ingvarjackal> *очень территориальный*
Шакалы разве территориальны?
[10:44:11] <tg> <@no111u3> >> <winged_pegasus> Шакалы разве территориальны?
у шакалов доминирование самок, тако что не шакалы
[10:44:21] <tg> <@ingvarjackal> >> <winged_pegasus> Шакалы разве территориальны?
ну, очевидно, что я -- да :D
[10:44:27] <tg> <@Devel29A> >> <winged_pegasus> Плохо быть тян мантикора.
Хоть так. А мне тян не разрешают вообще :(
[10:44:28] <tg> <@ingvarjackal> [Sticker 😒]
[10:44:32] <tg> <@sarakerrigan> вот когда у меня будет своя квартира....
[10:44:43] <tg> <@sarakerrigan> где я могу поставить кучу оборудования
[10:44:46] <tg> <@no111u3> >> <Devel29A> Хоть так. А мне тян не разрешают вообще :(
вот так вот
[10:44:48] <tg> <@sarakerrigan> и развесить паутину проводов
[10:44:53] <tg> <@winged_pegasus> >> <Devel29A> Хоть так. А мне тян не разрешают вообще :(
Не разрешают уборку делать?
[10:44:57] <tg> <@Devel29A> >> <sarakerrigan> вот когда у меня будет своя квартира....
то ты будешь вызывать уже проверенную клининговую компанию?
[10:45:07] <tg> <@Devel29A> >> <winged_pegasus> Не разрешают уборку делать?
Уборку можно, а тян - нет
[10:45:10] <tg> <@sarakerrigan> вот тогда доверять уборку можно будет только отдельным людям(мне)
[10:45:13] <tg> <@winged_pegasus> >> <Devel29A> Уборку можно, а тян - нет
xD
[10:45:21] <tg> <@no111u3> >> <sarakerrigan> вот когда у меня будет своя квартира....
своя, отдельно от семьи?
[10:45:35] <tg> <@sarakerrigan> >> <no111u3> своя, отдельно от семьи?
у родителей нет квартиры
[10:45:58] <tg> <@sarakerrigan> я родился в коммуналке
[10:46:05] <tg> <@Devel29A> Керригана вскормили бомжи?
[10:46:08] <tg> <@Devel29A> А-а-а
[10:46:10] <tg> <@Devel29A> Тю
[10:56:06] <tg> <@ttldtor> >> <winged_pegasus> Плохо быть тян мантикора.
поэтому у меня нет тян
[10:56:59] <tg> <@ttldtor> >> <sarakerrigan> я родился в коммуналке
вот за это я ненавижу урбанизацию
[10:59:43] <tg> <@sarakerrigan> >> <ttldtor> вот за это я ненавижу урбанизацию
коммуналки это не производное урбанизации
[10:59:48] <tg> <@sarakerrigan> а скорее раскулачивания
[11:00:41] <tg> <@ttldtor> кулаков в городах не было
[11:00:58] <tg> <@ttldtor> для этого было другое название
[11:01:18] <tg> <@sarakerrigan> сорта
[11:01:21] <tg> <@ttldtor> но суть понятна. Нужно было размещать рабочий класс
[11:01:44] <tg> <@ttldtor> сначала хозяев убеждали потесниться, а потом расстреливали
[11:03:16] <tg> <@ttldtor> при этом коммуналки прекращали быть временным решением жилищной проблемы
[11:04:33] <tg> <@ttldtor> ок, не урбанизации, а просто нежелания решать проблемы
[11:04:46] <tg> <@sarakerrigan> >> <ttldtor> ок, не урбанизации, а просто нежелания решать проблемы
суть всей страны, лел
[11:05:07] <tg> <@sarakerrigan> место проклятое наверное
[11:05:17] <tg> <@ttldtor> проклятое ленью
[11:05:42] <tg> <@sarakerrigan> >> <ttldtor> проклятое ленью
жуть
[11:06:51] <tg> <@ttldtor> но забавно, что тех, кто хоть что-то пытается делать начинают обвинять в превышении служебных полномочий
[11:06:56] <tg> <@ttldtor> растратах итд
[11:08:06] <tg> <@folexeyy> звучит так как будто только их
[11:08:17] <tg> <@folexeyy> но что это за политота-тим?
[11:08:46] <tg> <@folexeyy> путин путин коммуналки расстрелы кулаки тян
[11:09:20] <tg> <@sarakerrigan> >> <ttldtor> но забавно, что тех, кто хоть что-то пытается делать начинают обвинять в превышении служебных полномочий
говорю же, место проклятое
[11:09:33] <tg> <@sarakerrigan> не особо это зависело от людей
[11:12:15] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[11:12:16] uıʃɐɟ∀ вошёл(а) в комнату
[11:18:37] <tg> <@ttldtor> >> <folexeyy> путин путин коммуналки расстрелы кулаки тян
всё перепуталось
[11:24:44] <tg> <@ttldtor> извини, болше не будем
[11:24:48] <tg> <@ttldtor> больше*
[11:24:56] <tg> <@ttldtor> сейчас начнём говорить за программирование
[11:25:42] uggur вышел(а) из комнаты: Replaced by new connection
[11:25:43] uggur вошёл(а) в комнату
[11:27:47] <tg> <@Devel29A> >> <ttldtor> проклятое ленью
Когда успели?
[11:28:26] <tg> <@sarakerrigan> programmatic politosrach
[11:28:31] <tg> <@ttldtor> есть мнение, что уже несколько сотен лет людей программируют
[11:28:47] <tg> <@ttldtor> сказками, правилами, свои поведением
[11:28:57] <tg> <@Devel29A> Это нормально
[11:29:00] <tg> <@sarakerrigan> >> <ttldtor> есть мнение, что уже несколько сотен лет людей программируют
если людей программируют, значит несколько сотен лет есть программисты
[11:29:33] <tg> <@Devel29A> Незапрограммированный человек - овощь/животное. Нужное подчеркнуть
[11:30:38] <tg> <@folexeyy> Люди в принципе животные
[11:31:05] <tg> <@folexeyy> Хотя меня как-то раз чуть не побили за такие слова
[11:31:13] <tg> <@ttldtor> если поменять программу "приложить минимальное количество усилий и добиться успеха" на "необходимо трудиться и стараться, чтобы добиться успеха", то может что-то и выйдет
[11:31:39] <tg> <@folexeyy> >> <ttldtor> если поменять программу "приложить минимальное количество усилий и добиться успеха" на "необходимо трудиться и стараться, чтобы добиться успеха", то может что-то и выйдет
это противоествественно
[11:31:45] <tg> <@ttldtor> >> <folexeyy> Люди в принципе животные
люди - это животные. Я ребёнку т оже это говорю.
[11:31:54] <tg> <@folexeyy> >> <ttldtor> люди - это животные. Я ребёнку т оже это говорю.
а потом достаешь ружье?
[11:32:13] <tg> <@ingvarjackal> >> <sarakerrigan> если людей программируют, значит несколько сотен лет есть программисты
10 FROM the(weakness of the mind) := Omnissiah.save(us);
20 FROM the(lies of the Antipath) := circuit.preserve(us);
30 FROM the(rage of the Beast) := iron.protect(us);
40 FROM the(temptations of the Fleshlord) := silica.cleanse(us);
50 FROM the(ravages of the Destroyer) := anima.shield(us);
60 FROM this.(rotting cage of biomatter) :=
      (Machine God).set(us) => free;
[11:32:30] <tg> <@ingvarjackal> :)
[11:32:59] <tg> <@folexeyy> Fleshlord -- отличная надпись на футболке, как раз к кепке FBI
[11:33:25] <tg> <@ingvarjackal> [Document]
[11:33:47] <tg> <@folexeyy> Кабы в ТГ хоть капельку работали сервера с изображениями...
[11:33:48] <tg> <@ttldtor> кккирби?
[11:44:09] <tg> <@winged_pegasus> >> <ttldtor> если поменять программу "приложить минимальное количество усилий и добиться успеха" на "необходимо трудиться и стараться, чтобы добиться успеха", то может что-то и выйдет
Давно пора.
[11:45:03] <tg> <@winged_pegasus> Правда на «слыш работать» некоторые ругаются.
[11:45:15] <tg> <@ingvarjackal> Работа для рабов
[11:45:19] <tg> <@ingvarjackal> :)
[11:47:26] <tg> <@ttldtor> всё так
[11:47:33] <tg> <@ttldtor> человек не должен работать
[11:47:47] <tg> <@ttldtor> он должен заниматься тем, что у него лучше всего получается
[11:48:08] <tg> <@ttldtor> дело, хобби, бизнес...но не работа
[11:48:18] <tg> <@ttldtor> работа для роботов)
[11:48:23] <tg> <@winged_pegasus> Ок, «слыш, трудись»
[11:48:25] <tg> <@folexeyy> ...лежать жирным на кровати, смотря сёнены
[11:49:21] <tg> <@ttldtor> >> <folexeyy> ...лежать жирным на кровати, смотря сёнены
ну, долго не полежишь
[11:49:25] <tg> <@folexeyy> чойт
[11:49:29] <tg> <@ttldtor> часа 3
[11:49:33] <tg> <@folexeyy> пфффф
[11:49:35] <tg> <@ttldtor> потом жрать захочется
[11:49:55] <tg> <@folexeyy> это очевидно
[11:50:00] <tg> <@folexeyy> то же самое с делом, хобби, бизнесом
[11:50:07] <tg> <@folexeyy> долго не позанимаешься, жрать захочется
[11:50:14] <tg> <@folexeyy> и чо?
[11:50:18] <tg> <@ttldtor> я же занимаюсь любим делом
[11:50:25] <tg> <@ttldtor> любимым
[11:50:35] <tg> <@ttldtor> и мне ещё и деньги дают
[11:50:38] <tg> <@folexeyy> поэтому жрать не хочется?
[11:50:50] <tg> <@folexeyy> ну, не за каждое хобби дают деньги
[11:50:54] <tg> <@Air_0> А как сделать так что бы std::hex писало 01 вместо 1
[11:50:56] <tg> <@folexeyy> и не за каждое лежание на кровати их не дают
[11:51:02] <tg> <@folexeyy> но надо уходить в talks
[11:51:34] <tg> <@ttldtor> >> <Air_0> А как сделать так что бы std::hex писало 01 вместо 1
использовать fmt
[11:51:40] <tg> <@Air_0> Отстань
[11:51:41] <tg> <@Air_0> Ну
[11:51:55] <tg> <@Air_0> Просто скажи, как называется эта хуйня
[11:52:04] <tg> <@Air_0> setw или как там
[11:52:16] <tg> <@ttldtor> я этой хернёй страдал в технаре
[11:52:31] <tg> <@ttldtor> потом просто стал юзать printf? f gjnjv epyfk ghj аье
[11:52:40] <tg> <@ttldtor> а потом узнал про fmt
[11:53:51] <tg> <@ttldtor> %02x
[11:54:24] <tg> <@Air_0> sYkABlietSfSmprintf("%хуйпизда",малафья)
[11:54:44] <tg> <@Air_0> Я этой хернёй страдал в 9м классе
[11:55:09] <tg> <@Air_0> А сейчас мне нужно 2 минуты попользоваться ебучими стрелочками и стрингстримом
[11:55:11] <tg> <@Air_0> И забыть
[11:55:26] <tg> <@Air_0> Мне лень с телефона искать
[12:16:03] ma1uta вышел(а) из комнаты: Replaced by new connection
[12:16:04] ma1uta вошёл(а) в комнату
[12:18:45] matraskin вошёл(а) в комнату
[12:45:55] m4n71k0r вышел(а) из комнаты
[13:02:36] <tg> <@ttldtor> а я тупо не помню модификаторы потока
[13:02:48] <tg> <@ttldtor> boolalpha вот помню
[13:03:08] <tg> <@Devel29A> >> <ttldtor> а я тупо не помню модификаторы потока
Нахера их помнить
[13:03:18] <tg> <@ttldtor> а вдруг тырнет отключат?)
[13:03:37] <tg> <@Devel29A> У тебя нет пдф драфта? Не верю
[13:03:54] <tg> <@Devel29A> Или архива cppref
[13:04:22] <tg> <@ttldtor> может и есть, но в драфте искать неудобно
[13:04:29] <tg> <@ttldtor> а цппреф...хм
[13:10:15] <tg> <@no111u3> >> <ttldtor> а вдруг тырнет отключат?)
неправильно ты дядя фёдр на сайты ходишь. Ты это делаешь через прокси, а надо из другой страны
[13:12:38] <tg> <@Air_0> >> <no111u3> неправильно ты дядя фёдр на сайты ходишь. Ты это делаешь через прокси, а надо из другой страны(с)
А ты из какой страны ходишь?
[13:12:59] <tg> <@ttldtor> мне кажутся странными предложения валить из страны, где я никому не нужен в страну, где я никому не нужен и ещё буду иметь языковой и культурный барьер, который невозможно преодолеть. Сдохнуть, взрывая кортеж, как-то больше имеет смысл
[13:13:25] <tg> <@folexeyy> ну, новые ощущения зато
[13:13:27] <tg> <@ttldtor> ой, опять не тот чат
[13:13:32] <tg> <@folexeyy> плюс, меньше риск получить электрошокером в яйца
[13:14:37] <tg> <@winged_pegasus> >> <ttldtor> ой, опять не тот чат
Ты слишком толст)
[13:14:56] <tg> <@folexeyy> к толстым ТАМ тоже получше относятся
[13:15:03] <tg> <@folexeyy> так что сплошные плюсы
[13:15:53] <tg> <@folexeyy> У меня одна из четырех совершенно одинаковых нетдат потеряла 2 жс библиотеки %) как так вообще лол
[13:17:12] <tg> <@folexeyy> Вот бывают такие дни, когда весь софт ломается с самого утра
[13:18:05] <tg> <@folexeyy> Докер кидает какие-то странные ошибки, и отказывается запускать sh в контейнере. Нетдата теряет жс библиотеки. Этереум библиотека решила, что корректный адрес неправильной длины. Скала компилятор падает с error: null. ЧТО ДАЛЬШЕ-ТО
[13:18:23] <tg> <@ttldtor> скоро пятница
[13:18:33] <tg> <@folexeyy> вот именно
[13:18:36] <tg> <@folexeyy> время идет
[13:20:58] <tg> <@Air_0> >> <ttldtor> мне кажутся странными предложения валить из страны, где я никому не нужен в страну, где я никому не нужен и ещё буду иметь языковой и культурный барьер, который невозможно преодолеть. Сдохнуть, взрывая кортеж, как-то больше имеет смысл
Ну. Если тебя никак не напрягает то, что у нас тут скоро чебурнет разведут и будут сажать на бутылку за использование телеграмма, а программировать в России можно будет только под атсралинукс - то ок.
[13:21:46] <tg> <@ttldtor> >> <Air_0> Ну. Если тебя никак не напрягает то, что у нас тут скоро чебурнет разведут и будут сажать на бутылку за использование телеграмма, а программировать в России можно будет только под атсралинукс - то ок.
у бабули спроси, как это было. Вся разница в том, что тогда не было интернета.
[13:22:40] <tg> <@Air_0> Если напрягает - можешь по крайней мере взять в кредит квартирку в какой-нибудь ламповой стране, если есть лишние деньги и неспешно учить язык и готовиться к перекату
[13:22:43] <tg> <@folexeyy> спросил, она говорит было оч плохо
[13:22:47] <tg> <@folexeyy> надо было валить
[13:22:54] <tg> <@Air_0> >> <ttldtor> у бабули спроси, как это было. Вся разница в том, что тогда не было интернета.
Что было-то?
[13:23:01] <tg> <@folexeyy> >> <ttldtor> у бабули спроси, как это было. Вся разница в том, что тогда не было интернета.
что дальше?
[13:23:06] <tg> <@ttldtor> моя бабуля мне посоветовала начать революцию
[13:23:14] <tg> <@folexeyy> В штанах что ли
[13:23:17] <tg> <@folexeyy> (простите)
[13:23:20] <tg> <@ttldtor> только мне евреев жалко, опять пострадают
[13:23:40] <tg> <@ttldtor> простите
[13:23:56] <tg> <@ttldtor> ой, слишком тонко, никто не поймёт
[13:24:05] <tg> <@Air_0> У меня бабуля умерла, когда я в 4м классе учился, по ошибке врачей, судя по всему. Это был самый лучший человек на свете. Какая разница как было, если оно скатилось в сраное говно. Верно?
[13:24:14] <tg> <@Air_0> Опять не тот чат, да что такое
[13:24:31] <tg> <@folexeyy> Надо просто в том чате обсуждать всякие глупости вроде программирования
[13:24:33] <tg> <@folexeyy> а тут серьезные темы
[13:24:45] <tg> <@ttldtor> разницы нет, т-ц полковник читает и там и тут
[13:24:47] <tg> <@sarakerrigan> типа табов против пробелов
[13:25:15] <tg> <@ttldtor> >> <folexeyy> Надо просто в том чате обсуждать всякие глупости вроде программирования
сарказм?
[13:25:32] <tg> <@folexeyy> нет, ты что
[13:25:47] <tg> <@ttldtor> всё серьёзно надо обсуждать на кухне
[13:25:52] <tg> <@folexeyy> я на кухне щас
[13:26:04] <tg> <@ttldtor> как там Москва?
[13:26:19] <tg> <@Air_0> >> <sarakerrigan> типа табов против пробелов
Даже гедит умеет менять "\t" на
"    "
.
[13:26:45] <tg> <@folexeyy> >> <ttldtor> как там Москва?
покрыло снегом опять
[13:30:04] <tg> <@ttldtor> >> <folexeyy> покрыло снегом опять
а у нас тут, видимо, весна
[13:30:27] <tg> <@ttldtor> в серьёзных чатах принято о  погоде говорить
[14:08:51] matraskin вышел(а) из комнаты
[14:11:20] <tg> <@noktoborus> мантикора
[14:11:55] <tg> <@noktoborus> >> <Air_0> У меня бабуля умерла, когда я в 4м классе учился, по ошибке врачей, судя по всему. Это был самый лучший человек на свете. Какая разница как было, если оно скатилось в сраное говно. Верно?
а бекапная бабуля где?
[14:12:09] <tg> <@folexeyy> Побилась
[14:12:17] <tg> <@folexeyy> забыли написать тесты на накатывание бэкапа
[14:12:24] <tg> <@folexeyy> лежит кирпичом теперь
[14:12:38] <tg> <@folexeyy> ток место на S3 занимает
[14:13:12] <tg> <@folexeyy> правильный ответ "ахаха, фолекс, ахаха."
[14:13:39] <tg> <@noktoborus> >> <ttldtor> мне кажутся странными предложения валить из страны, где я никому не нужен в страну, где я никому не нужен и ещё буду иметь языковой и культурный барьер, который невозможно преодолеть. Сдохнуть, взрывая кортеж, как-то больше имеет смысл
ты можешь потратить весь остаток жизни на преодоление берьера
[14:13:56] <tg> <@noktoborus> и умереть в надежде, что твои дети смогут ассимилироватсья
[14:15:48] <tg> <@fvnever> Мантикор взрывает тупли
[14:16:44] <tg> <@ttldtor> я кажись стал понимать что такое монада
[14:18:13] uıʃɐɟ∀ вышел(а) из комнаты
[14:18:13] <tg> <@fvnever> >> <ttldtor> я кажись стал понимать что такое монада
http://razinamuratova.ru/monada-i-kto-eto-i-chto-eto/
[14:18:34] <tg> <@ttldtor> не, философские варианты я не рассматриваю
[14:18:37] <tg> <@ttldtor> но в курсе
[14:19:57] uıʃɐɟ∀ вошёл(а) в комнату
[14:21:56] <tg> <@ttldtor> являются ли плюсы результатом монадического вычисления с использованием си?
[14:22:16] <tg> <@fvnever> Монадического суть духовного?
[14:22:22] <tg> <@fvnever> Да.
[14:22:24] <tg> <@folexeyy> МО-НА-ДИ-ЧЕ-СКИ-Е ВЫ-ЧИ-СЛЕ-НИ-Я
[14:22:29] <tg> <@ttldtor> божественного
[14:22:35] <tg> <@folexeyy> Бывают ли вычисления не монадическими?
[14:22:38] <tg> <@fvnever> Духовное переосмысление, философский подъём
[14:22:49] <tg> <@fvnever> А результат его есть плюсы, то есть суть кресты
[14:22:52] <tg> <@ttldtor> >> <folexeyy> Бывают ли вычисления не монадическими?
да, в аду
[14:22:54] <tg> <@fvnever> Высокодуховно
[14:23:01] <tg> <@folexeyy> Предлагаю искать не монадические вычисления, и подло объявлять вокруг них какую-нибудь монадку
[14:23:09] <tg> <@fvnever> >> <ttldtor> да, в аду
Напомню, там на батниках всё.
[14:23:27] <tg> <@ttldtor> я тут вручную транслировал батники в sh
[14:23:34] <tg> <@ttldtor> пару дней назад
[14:23:42] <tg> <@ttldtor> неприятно
[14:23:53] <tg> <@folexeyy> этот языковой барьер тебя не смущает значит
[14:23:55] <tg> <@ttldtor> но баш приятно удивил отсутствием goto
[14:24:02] <tg> <@folexeyy> а со шведом пообщатсья влом
[14:24:17] <tg> <@ttldtor> ты утрируешь
[14:24:21] <tg> <@fvnever> >> <ttldtor> я тут вручную транслировал батники в sh
А у нас есть батники-перевёртыши, которые умеют и под cmd, и под sh работать.
[14:24:24] <tg> <@ttldtor> есть ещё культурный барьер
[14:24:33] <tg> <@ttldtor> скрепы разного диаметра итд
[14:24:38] <tg> <@folexeyy> он точно меньше чем между тобой и автором батника с goto
[14:24:43] <tg> <@fvnever> >> <ttldtor> но баш приятно удивил отсутствием goto
Ну с cmd не сравнить, конечно, баш намного лучше.
[14:25:51] <tg> <@ttldtor> >> <fvnever> А у нас есть батники-перевёртыши, которые умеют и под cmd, и под sh работать.
кхм... что-то у  меня воображение сбоит
[14:29:11] <tg> <@ttldtor> надо все эти скрипты переписать на ди...
[14:31:53] <tg> <@folexeyy> Чтобы поддерживать могли только избранные!
[14:40:54] <tg> <@folexeyy> Блядь, какой же ублюдок придумал джаваскрипт
[14:40:55] <tg> <@folexeyy> Object.defineProperty
[14:40:57] <tg> <@folexeyy> что это ЗА ПИЗДЕЦ
[14:41:03] <tg> <@folexeyy> СУКА. НЕНАВИЖУ. ДЖАВАСКРИПТ.
[14:41:22] <tg> <@winged_pegasus> [Sticker 😾]
[14:41:42] <tg> <@sarakerrigan> >> <winged_pegasus> [Sticker 😾]
от мехового ублюдка слышу
[14:42:48] <tg> <@folexeyy> Код на тайпскрипте был написан несколько недель назад, и не менялся. В коде есть 1 функция, принимающая 3 параметра, и прокидывающая их дальше в джаваскриптовые недра ада.
Сегодня, именно сегодня, ВДРУГ непонятно почему, первый аргумент начал приходить в джаваскрипт как 0x0000000
[14:43:16] <tg> <@folexeyy> Почему? Как понять? Где код? Сорс мапы? Вебпак? Почему код всех зависимостей в ноде_модулес в одном файле?
[14:43:29] <tg> <@folexeyy> Как будто сел на осколки стекла
[14:43:33] <tg> <@folexeyy> и елозишь
[14:43:35] <tg> <@folexeyy> елозишь
[14:43:37] <tg> <@folexeyy> ЕЛОЗИШЬ
[14:46:17] <tg> <@sarakerrigan> >> <folexeyy> ЕЛОЗИШЬ
и жалеешь о стуле с пиками, он хотя бы не разбивался в осколки?
[14:46:57] <tg> <@winged_pegasus> >> <sarakerrigan> от мехового ублюдка слышу
Хехе
[14:49:59] <tg> <@folexeyy> >> <sarakerrigan> и жалеешь о стуле с пиками, он хотя бы не разбивался в осколки?
там хотя бы что-то можно было понять, да
[14:50:10] <tg> <@folexeyy> очень хочется писать на расте, и никуда никогда больше не вылезать
[15:05:46] <tg> <@noktoborus> кто о чём, а сара о стульях
[15:13:48] <tg> <@sarakerrigan> раст это стул с жестко зафиксированными обсидиановыми пиками
[15:14:46] <tg> <@ttldtor> в виде членов?
[15:14:59] <tg> <@ttldtor> божественные лингамы
[15:15:12] <tg> <@ttldtor> все нарвится же раст
[15:15:45] <tg> <@winged_pegasus> >> <ttldtor> все нарвится же раст
А говорил, что не нравится.
[15:16:21] <tg> <@ttldtor> >> <winged_pegasus> А говорил, что не нравится.
да, он похож на плюсы
[15:16:27] <tg> <@ttldtor> и го
[15:16:31] <tg> <@ttldtor> го + плюсы
[15:16:45] <tg> <@ttldtor> и щепотка ди
[15:17:17] <tg> <@ttldtor> mut`& mut[]
[15:54:34] Ender вошёл(а) в комнату
[15:58:03] <tg> <@sarakerrigan> Кроссовки Nike с автошнуровкой за $350 перестали работать из-за нового приложения для Android
[16:02:04] Птичка:D вышел(а) из комнаты
[16:40:19] <tg> <@Devel29A> Док Браун закоммитил?
[16:42:02] <tg> <@AlexFails> >> <sarakerrigan> Кроссовки Nike с автошнуровкой за $350 перестали работать из-за нового приложения для Android
лол
[16:47:54] <tg> <@Air_0> Как мне короче сократить такую запесь
[16:50:00] <tg> <@Air_0> sizetype I = 0; for(auto govnorecord:json["govno"]) vectorwithstructures[I++] = it;
[16:51:26] <tg> <@Air_0> it поменять на govnorecord, кто из джаббера
[16:51:54] <tg> <@Air_0> И да, точнее так.
[16:52:43] <tg> <@Air_0> vectorwithstructures[I++].govnofield
[16:52:58] <tg> <@Air_0> Я просто с телефона пешу
[16:53:08] <tg> <@Air_0> Мне ниудобна
[16:58:23] HazardPointer вошёл(а) в комнату
[17:02:23] <tg> <@Devel29A> Ниудобна на потолке спать
[17:13:31] <tg> <@noktoborus> >> <Devel29A> Ниудобна на потолке спать
Соседи сверху спят на потолке, им норм
[17:13:54] <tg> <@Devel29A> >> <noktoborus> Соседи сверху спят на потолке, им норм
Просто хвастуны
[17:16:05] portnov вошёл(а) в комнату
[17:18:19] Птичка:D вошёл(а) в комнату
[17:43:19] <tg> <@AlexFails> >> <Air_0> sizetype I = 0; for(auto govnorecord:json["govno"]) vectorwithstructures[I++] = govnorecord;
Ну норм
[17:52:18] <tg> <@ttldtor> >> <Air_0> sizetype I = 0; for(auto govnorecord:json["govno"]) vectorwithstructures[I++] = govnorecord;
Я тупо заюзал перебор по индексу, так как даже с Boost.Range indexed выглядит стрёмно
[17:54:26] ma1uta вышел(а) из комнаты
[17:55:00] <tg> <@ttldtor> Можно свой враппер написать типа indexed, который выдаст итераторы, которые будут отдавать пару индекс-ссылка или константная ссылка, но у тебя тяму не хватит, Эндер
[17:55:34] <tg> <@ttldtor> Можешь загуглить, такого добра валом
[17:55:38] <tg> <@fvnever> >> <ttldtor> Можно свой враппер написать типа indexed, который выдаст итераторы, которые будут отдавать пару индекс-ссылка или константная ссылка, но у тебя тяму не хватит, Эндер
Утром мантикор не любил итераторы, а тут вдруг возлюбил.
[17:56:05] <tg> <@ttldtor> >> <fvnever> Утром мантикор не любил итераторы, а тут вдруг возлюбил.
Я борюсь со своей шизой как могу
[17:57:25] <tg> <@ttldtor> Я их не люблю юзать просто
[17:59:56] <tg> <@Devel29A> Ну, они костыль, конечно
[18:41:10] <tg> <@AlexFails> а шо плохого-то в итераторах
[19:00:37] <tg> <@Devel29A> Ничего, просто они дополняют контейнеры
[19:01:10] <tg> <@Devel29A> Но если по-нормальному, то контейнеры должны предоставлять интерфейс, чтобы не было нужды в итераторах
[20:21:39] Minoru вошёл(а) в комнату
[20:25:13] <Minoru> утро!
[20:49:59] <tg> <@ttldtor> >> <AlexFails> а шо плохого-то в итераторах
я хочу их тредсейф ^____________________^
[20:51:00] <tg> <@ttldtor> я хочу, чтобы итераторы если портились, то как-то так, чтобы можно было проверить их что-то типа is_valid
[20:51:12] <tg> <@ttldtor> то есть,я хочу их безопасно отдавать
[20:52:40] <tg> <@no111u3> иди в жабу
[20:53:34] <tg> <@fvnever> >> <no111u3> иди в жабу
Но там это не работает.
[20:53:40] <tg> <@fvnever> Ты просто его нафиг послать хотел?
[20:53:49] <tg> <@ttldtor> да, он хотел
[20:53:56] <tg> <@ttldtor> он же не знает, что я уже в жабе
[20:53:58] <tg> <@no111u3> >> <fvnever> Ты просто его нафиг послать хотел?
просто у него желания странные
[20:54:07] <tg> <@ttldtor> почему они странные?
[20:54:13] <tg> <@fvnever> Он хочет тредсейф итератор, что тут странного?
[20:54:19] <tg> <@ttldtor> хотеть безопасно - странно?(
[20:54:31] <tg> <@fvnever> Я легко себе могу такой конструкт представить, например, для итерации какой-нибудь очереди или типа того.
[20:54:41] <tg> <@fvnever> Сел на очередь и хуячь
[20:55:00] <tg> <@no111u3> >> <fvnever> Он хочет тредсейф итератор, что тут странного?
потому, что итератор подобного вида это накладно
[20:55:05] <tg> <@no111u3> вот очень накладно
[20:55:08] <tg> <@fvnever> >> <no111u3> потому, что итератор подобного вида это накладно
Ну, э, да
[20:55:11] <tg> <@fvnever> И чо?
[20:55:24] <tg> <@ttldtor> тут какие-то шаблоны работают
[20:55:26] <tg> <@fvnever> Если задача требует тредсейф итератора, и он есть — то всё хорошо.
[20:55:29] <tg> <@no111u3> и он становится невалидным вот сразу
[20:55:31] <tg> <@ttldtor> типа жаба - накладно?
[20:55:34] <tg> <@fvnever> ДЖа, он будет накладным, а что такого?
[20:55:41] <tg> <@fvnever> >> <no111u3> и он становится невалидным вот сразу
Ну вот это глупости какие-то
[20:55:52] <tg> <@fvnever> Его ещё не написали, а ты уже делаешь выводы о его поведении.
[20:55:54] <tg> <@no111u3> а вот давай возьмём тот же вектор
[20:55:57] <tg> <@fvnever> Не, погодь
[20:56:02] <tg> <@no111u3> что погодь
[20:56:04] <tg> <@fvnever> Давай возьмём тредсейф очередь
[20:56:09] <tg> <@fvnever> И сделаем итератор, который на ней делает поп
[20:56:14] <tg> <@ttldtor> возьмум что-то непрятное, например анордеред мапу
[20:56:21] <tg> <@fvnever> Почему он «становится невалидным вот сразу»?
[20:56:24] <tg> <@no111u3> >> <fvnever> И сделаем итератор, который на ней делает поп
а я делаю инсёрт
[20:56:28] <tg> <@no111u3> и всё приплыли
[20:56:30] <tg> <@fvnever> >> <no111u3> а я делаю инсёрт
Ну
[20:56:34] <tg> <@fvnever> И десять тредов разгребают
[20:56:39] <tg> <@ttldtor> а я вот хочу чтобы мы не приплывали
[20:56:44] <tg> <@fvnever> Один из них получает из итератора значение, остальные залочены
[20:56:46] <tg> <@fvnever> Где проблема-то?
[20:56:49] <tg> <@no111u3> или ирейс элемента куда ты указываешь
[20:57:00] <tg> <@fvnever> Не помню у очереди никакого «ирейса»
[20:57:06] <tg> <@fvnever> У неё есть пуш и поп
[20:57:12] <tg> <@fvnever> Толоконный лоб :)
[20:57:14] <tg> <@ttldtor> он хитрый, взял вектор
[20:57:28] <tg> <@fvnever> Мы говорим про ситуацию с тредсейф итератором
[20:57:31] <tg> <@no111u3> >> <fvnever> У неё есть пуш и поп
хорошо один делает пуш и во время него усыпает
[20:57:34] <tg> <@fvnever> Если он для вектора такой сделает — велкам
[20:57:36] <tg> <@no111u3> а второй делает поп
[20:57:40] <tg> <@fvnever> >> <no111u3> хорошо один делает пуш и во время него усыпает
Ну
[20:57:44] <tg> <@fvnever> Какие проблемы?
[20:57:49] <tg> <@fvnever> Если он закончил пуш — то второй чото получает
[20:57:51] <tg> <@no111u3> куда указывает итератор каждого из
[20:57:54] <tg> <@fvnever> Если нет — то остаётся заблочек
[20:57:59] <tg> <@fvnever> >> <no111u3> куда указывает итератор каждого из
Каждого из кого?
[20:58:04] <tg> <@no111u3> из двух
[20:58:10] <tg> <@fvnever> У тебя кто вообще владел итераторами?
[20:58:15] <tg> <@fvnever> Пуш и поп-то без итераторов можно сделать :)
[20:58:18] <tg> <@no111u3> оба каждый своим
[20:58:23] <tg> <@fvnever> А нафига для пуша итератор?
[20:58:34] <tg> <@fvnever> Просто делай queue.push()
[20:58:56] <tg> <@fvnever> Смотри чо я представляю себе
[20:58:58] <tg> <@no111u3> что происходит на той стороне когда у тебя очередь достигает колапса?
[20:59:24] <tg> <@fvnever> void worker() {
  for (auto event : _queue) {
    process(event);
  }
}
[20:59:30] <tg> <@fvnever> Я могу себе завести десять тредов с воркерами
[20:59:37] <tg> <@fvnever> И они все будут норм читать из одной и той же очереди
[20:59:53] <tg> <@no111u3> и висеть на одном и том же луке
[20:59:55] <tg> <@fvnever> Одиннадцатый тред может делать на неё пуш, без всяких итераторов (просто это не нужно тут)
[21:00:04] <tg> <@fvnever> >> <no111u3> что происходит на той стороне когда у тебя очередь достигает колапса?
Не достигает.
[21:00:13] <tg> <@fvnever> >> <no111u3> и висеть на одном и том же луке
Ну да, а в чём проблема-то?
[21:00:24] <tg> <@no111u3> >> <fvnever> Ну да, а в чём проблема-то?
перфоманс плачет
[21:00:31] <tg> <@fvnever> Ты можешь сделать это быстрее?
[21:00:43] <tg> <@no111u3> не сажать всех на одну очередь?
[21:00:45] <tg> <@fvnever> Ну то есть вот у меня поток событий, пришло десять
[21:00:49] <tg> <@fvnever> Из гуя
[21:00:56] <tg> <@fvnever> Я хочу шоб десять воркеров их обработали
[21:01:05] <tg> <@fvnever> Кажется, тут они сразу просыпаются, каждый забирает событие, работают
[21:01:07] <tg> <@fvnever> В чём проблема?
[21:01:09] <tg> <@no111u3> какая-то анриал ситуация
[21:01:23] <tg> <@fvnever> Ээ, что из этого конкретно анриал?
[21:01:38] <tg> <@no111u3> по факту учитывая номиналку один - два воркера проспят
[21:01:42] <tg> <@no111u3> тупо без дела
[21:01:44] <tg> <@fvnever> Чо?
[21:01:48] <tg> <@no111u3> в лучше случае
[21:01:52] <tg> <@fvnever> Я не понимаю
[21:02:09] <tg> <@fvnever> Ты придумал какую-то неэффективную реализацию тредсейф итератора и критикуешь её?
[21:02:14] <tg> <@no111u3> у тебя планирование на один лук завязано, следовательно ты целиком кладёшь на ос
[21:02:19] <tg> <@fvnever> Ну на спинлоке пускай ждут, так не проспят?
[21:02:31] <tg> <@no111u3> тоже могут протерять своё место
[21:02:34] <tg> <@fvnever> >> <no111u3> у тебя планирование на один лук завязано, следовательно ты целиком кладёшь на ос
Э, «лук» — это lock?
[21:02:43] <tg> <@ttldtor> лок
[21:02:45] <tg> <@no111u3> >> <fvnever> Э, «лук» — это lock?
да, любой абстрактный
[21:02:50] <tg> <@fvnever> >> <no111u3> у тебя планирование на один лук завязано, следовательно ты целиком кладёшь на ос
Почему я кладу на ОС?
[21:02:59] <tg> <@fvnever> В смысле кладу на примитив ОС или что?
[21:03:04] <tg> <@no111u3> >> <fvnever> Почему я кладу на ОС?
потому что у тебя одна точка разбора
[21:03:09] <tg> <@fvnever> В смысле перекладываю на него или как?
[21:03:18] <tg> <@fvnever> Я не понимаю, ты говоришь загадками
[21:03:21] <tg> <@fvnever> «точка разбора»
[21:03:30] <tg> <@no111u3> нет, ты создал бутылочное горлышко в виде одной очереди
[21:03:34] <tg> <@fvnever> У меня бжаж десять тредов, и я хочу из очереди получить события.
[21:03:48] <tg> <@no111u3> короче так никто не делает
[21:03:53] <tg> <@fvnever> for (int i; i < 0; ++i) queue.pop(i)
[21:04:01] <tg> <@fvnever> Что тут предлагаешь делать, десять очередей?
[21:04:12] <tg> <@ttldtor> для гуёвин вполне норм ситуация с однйо очередью ивентов
[21:04:22] <tg> <@no111u3> >> <ttldtor> для гуёвин вполне норм ситуация с однйо очередью ивентов
и протеря их (аля кьют)
[21:04:34] <tg> <@ttldtor> и винапи\
[21:04:38] <tg> <@fvnever> >> <ttldtor> для гуёвин вполне норм ситуация с однйо очередью ивентов
Ну я вот автор такой гуйни как раз
[21:05:04] <tg> <@fvnever> У нас вполне норм потокобезопасные очереди и разгребаторы данных из них на бекграунд тредах
[21:05:13] <tg> <@fvnever> А сий господин мне рассказывает, что такого не быввает 🤷‍♂️
[21:05:38] <tg> <@fvnever> Ну, если по чесноку, то итераторы по очереди для этого не очень-то нужны.
[21:05:42] <tg> <@ttldtor> >> <fvnever> У нас вполне норм потокобезопасные очереди и разгребаторы данных из них на бекграунд тредах
у меня Shift-F6, кстати на одном символе зависает, но воспроизвести пока не могу)
[21:05:45] <tg> <@fvnever> Но я не вижу, как они могут помешать.
[21:06:09] <tg> <@fvnever> >> <no111u3> господин тебе ведает что современная ос делает работу подобной схемы чуть менее чем не эффективный
То есть ты всё-таки придумал неэффективную реализацию тредсейф итератора и критикуешь его.
[21:06:24] <tg> <@fvnever> Ну тогда познакомь нас, что ли, со своей реализацией. А то ты непонятно что критикуешь.
[21:06:28] <tg> <@no111u3> >> <fvnever> То есть ты всё-таки придумал неэффективную реализацию тредсейф итератора и критикуешь его.
я тебе говорю что завязывать на одну очередь это глупо
[21:06:33] <tg> <@ttldtor> я боюсь, что эффективный итератор сложно придумать
[21:06:38] <tg> <@fvnever> >> <no111u3> я тебе говорю что завязывать на одну очередь это глупо
Так а что делать? Десять очередей?
[21:06:43] <tg> <@fvnever> И кто между ними диспатчить будет?
[21:06:47] <tg> <@no111u3> >> <fvnever> То есть ты всё-таки придумал неэффективную реализацию тредсейф итератора и критикуешь его.
эффективный итератор запатентован
[21:06:53] <tg> <@no111u3> >> <fvnever> Так а что делать? Десять очередей?
не десять
[21:06:56] <tg> <@fvnever> >> <no111u3> эффективный итератор запатентован
Ага, всё-таки есть эффективный?
[21:07:04] <tg> <@fvnever> И его ты не будешь критиковать?
[21:07:07] <tg> <@ttldtor> поэтому и хочу хотя бы is_valid в итераторе
[21:07:10] <tg> <@no111u3> >> <fvnever> Ага, всё-таки есть эффективный?
есть, как и эффективная очередь
[21:07:14] <tg> <@fvnever> >> <no111u3> есть, как и эффективная очередь
Ну всё, ты проиграл.
[21:07:23] <tg> <@no111u3> >> <fvnever> Ну всё, ты проиграл.
но её нельзя использовать
[21:07:26] <tg> <@fvnever> Беру патентованный эффективный тредсейф итератор, и все твои аргументы — инвалид.
[21:07:32] <tg> <@fvnever> >> <no111u3> но её нельзя использовать
Можно.
[21:07:51] <tg> <@no111u3> но это никак не соотносится с тем что ты описал
[21:08:05] <tg> <@fvnever> Потому что ты так и не пояснил суть своей критики.
[21:08:17] <tg> <@fvnever> С тем, что ты написал, вообще ничего не соотносится 🤷‍♂️
[21:08:30] <tg> <@fvnever> Ну потому что ты просто говоришь «неэффективно, ты переклал на ОС»
[21:08:33] <tg> <@no111u3> твой вариант упирается в положение о том что время реакции потока намного больше чем количество поступающих данных
[21:08:47] <tg> <@no111u3> но это не всегда справедливо
[21:08:51] <tg> <@fvnever> >> <no111u3> твой вариант упирается в положение о том что время реакции потока намного больше чем количество поступающих данных
Я не понимаю, где он в это упирается.
[21:09:31] <tg> <@no111u3> >> <fvnever> Я не понимаю, где он в это упирается.
есть хорошая пикча про щенят и миски для каждого - ты пологаешь что каждый заберёт по одной и они строго друг за другом это будут делать
[21:09:54] <tg> <@no111u3> но как и с потоками всё пойдёт по принципу наиболее ближнего
[21:10:08] <tg> <@fvnever> Ок, а почему ты так считаешь?
[21:10:25] <tg> <@fvnever> Ты не видел кода функции process().
[21:10:41] <tg> <@fvnever> >> <no111u3> есть хорошая пикча про щенят и миски для каждого - ты пологаешь что каждый заберёт по одной и они строго друг за другом это будут делать
Ну и, собственно, а проблема-то в чём?
[21:10:43] m4n71k0r вошёл(а) в комнату
[21:10:53] <tg> <@fvnever> Если кто-то очень быстро обработал один элемент, то пусть берёт следующий, мне не жалко.
[21:10:58] <tg> <@no111u3> >> <fvnever> Ок, а почему ты так считаешь?
потому что ковырял эту часть и понимаю что держать большее количество потоков чем у тебя есть работы это немножно не рационально
[21:11:00] <tg> <@fvnever> Тредсейф это не ломает.
[21:11:12] <tg> <@no111u3> получаем ненужный простой
[21:11:29] <tg> <@fvnever> >> <no111u3> потому что ковырял эту часть и понимаю что держать большее количество потоков чем у тебя есть работы это немножно не рационально
Ты не умеешь в логику.
[21:11:59] <tg> <@fvnever> Я спрашиваю: почему ты считаешь, что реализация неэффективна?
Ты говоришь: потому что у тебя потоков больше, чем работы для них.
Вот откуда ты этот вывод делаешь, откуда?
[21:12:05] <tg> <@fvnever> Не было тут предпосылок, чтобы делать такой вывод.
[21:12:20] <tg> <@fvnever> Я указал, что у меня десять потоков, и показал код, который десять элементов кладёт в очередь.
[21:12:36] <tg> <@fvnever> Функцию process() я не показал, и неоткуда взять информацию о количестве работы, которую эта функция делает.
[21:12:54] <tg> <@fvnever> Но ты утверждаешь, что функция, которую ты не видел, делает этот код неэффективным. Вот почему?
[21:13:27] <tg> <@fvnever> Да, если в ней вообще нету кода, то не все десять потоков могут быть задействованы. Кто-нибудь один может очень быстро обернуться, схватить лок несколько раз подряд, и сделать всю работу.
[21:13:34] <tg> <@fvnever> Но это разве проблема? Да вроде бы нет.
[21:13:45] <tg> <@no111u3> >> <fvnever> Но ты утверждаешь, что функция, которую ты не видел, делает этот код неэффективным. Вот почему?
потому что ты физику пока не отменил - и у тебя количество рабочих приближается к эффективному пределу планировщика
[21:14:00] <tg> <@fvnever> >> <no111u3> потому что ты физику пока не отменил - и у тебя количество рабочих приближается к эффективному пределу планировщика
Ага, ты ещё и планировщик выдумал.
[21:14:07] <tg> <@ttldtor> >> <fvnever> Ты не умеешь в логику.
дядиньки не ссортися!
[21:14:24] <tg> <@fvnever> Короче, нет, спасибо, с выдуманным кодом как-нибудь без меня разбирайтесь. Если принесёте вдруг настоящий — позовите.
[21:14:27] <tg> <@no111u3> >> <fvnever> Ага, ты ещё и планировщик выдумал.
я об этом выше тебе сказал что десять потоков на одну очередь это не эффективно
[21:14:33] <tg> <@fvnever> >> <no111u3> я об этом выше тебе сказал что десять потоков на одну очередь это не эффективно
Да схуяли неэффективно?
[21:14:46] <tg> <@fvnever> А сколько эффективно?
[21:14:48] <tg> <@no111u3> >> <fvnever> Да схуяли неэффективно?
потому что у тебя очередь с одним локом?
[21:14:51] <tg> <@fvnever> Девять эффективно?
[21:14:55] <tg> <@no111u3> нет
[21:14:58] <tg> <@fvnever> >> <no111u3> потому что у тебя очередь с одним локом?
А кто сказал, что с одним?
[21:15:07] <tg> <@no111u3> >> <fvnever> А кто сказал, что с одним?
а ты выше сказал что с одним
[21:15:09] <tg> <@fvnever> Про локи (или, как ты говоришь, «луки») — это тоже ты выдумал.
[21:15:17] <tg> <@fvnever> Я говорил, что хочется тредсейф итератор.
[21:15:32] <tg> <@fvnever> Но на самом деле ладно, пусть будет один лок.
[21:15:46] <tg> <@fvnever> Почему неэффективна очередь-то?
[21:15:49] <tg> <@no111u3> тредсейф итератор предпологает то что он у тебя монопольно владеет итерируемым объектом
[21:15:53] <tg> <@fvnever> Вот десять тредов сидят на локе, окей?
[21:16:08] <tg> <@no111u3> с одним будет не очень эффективно
[21:16:14] <tg> <@fvnever> Продюсер кинул данные в очередь, и один из них проснулся
[21:16:22] <tg> <@fvnever> Потом ещё кинул — ещё проснулся
[21:16:47] <tg> <@fvnever> >> <no111u3> тредсейф итератор предпологает то что он у тебя монопольно владеет итерируемым объектом
Эээээээээ
[21:16:52] <tg> <@fvnever> Кто тебе это сказал? :)
[21:17:03] <tg> <@no111u3> >> <fvnever> Кто тебе это сказал? :)
а давай пойдём от противного
[21:17:17] <tg> <@fvnever> Давай.
[21:17:20] <tg> <@no111u3> ты хочешь иметь доступ и возможность менять элемент
[21:17:26] <tg> <@fvnever> Нет.
[21:17:43] <tg> <@fvnever> Ну если ты имеешь в виду, что есть продюсеры и консумеры — ок, да.
[21:17:52] <tg> <@fvnever> Но там не менять, а продюсить
[21:18:02] <tg> <@fvnever> Положить в очередь, окей?
[21:18:09] <tg> <@no111u3> но для итератора это по сути переход к следующему?
[21:18:15] <tg> <@fvnever> Не понимаю.
[21:18:26] <tg> <@fvnever> «Положить в очередь» «для итератора»
[21:18:29] <tg> <@fvnever> Не бьётся вообще.
[21:18:40] <tg> <@fvnever> Для того, кто положил в очередь, это ничего не значит, у него нету итератора.
[21:18:56] <tg> <@no111u3> но для того кто забирает у него есть итератор
[21:19:00] <tg> <@fvnever> Для тех, кто итерирует очередь — вернее, для кого-то одного из них — это значит, что их итератор перейдёт к следующему, ок?
[21:19:06] <tg> <@no111u3> да
[21:19:20] <tg> <@fvnever> У одного итератор инкрементнется, он получит элемент
[21:19:30] <tg> <@fvnever> Остальные так и висят на локе
[21:19:39] <tg> <@fvnever> Продюсер не висит на локе, он ушёл.
[21:19:41] <tg> <@no111u3> пока мы не говорим о локах
[21:19:49] <tg> <@fvnever> Ну окей, пока не говорим.
[21:20:06] <tg> <@no111u3> так вот чтобы инкрементироваться надо знать куда
[21:20:08] <tg> <@fvnever> Продюсер ушёл, остальные консумеры висят на том-о-чём-мы-не-говорим.
[21:20:23] <tg> <@fvnever> А разве не понятно, куда?
[21:20:28] <tg> <@fvnever> Вот же у тебя дата
[21:20:33] <tg> <@fvnever> Бери её да и всё
[21:20:35] <tg> <@no111u3> а откуда ты знаешь куда
[21:20:41] <tg> <@no111u3> а если там нет ничего?
[21:20:43] <tg> <@fvnever> У меня была пустая очередь
[21:20:47] <tg> <@fvnever> И тут вдруг меня зовут с лока
[21:20:54] <tg> <@fvnever> С того-о-чём-мы-не-говорим
[21:21:00] <tg> <@fvnever> У меня какбэ выбора-то особого и нет
[21:21:05] <tg> <@fvnever> Дата в очереди всего одна.
[21:21:15] <tg> <@fvnever> Её и беру.
[21:21:17] <tg> <@no111u3> пока всё хорошо
[21:21:38] <tg> <@no111u3> где ты будешь засыпать уже определился?
[21:21:47] <tg> <@fvnever> Взял (под тем-о-чём-мы-не-говорим), удалил (по факту какой-нибудь атомарный указатель декрементировал), всё
[21:22:12] <tg> <@no111u3> по хорошему их там два, но пока пусть будет один
[21:22:26] <tg> <@fvnever> >> <no111u3> где ты будешь засыпать уже определился?
Следующий раз пришёл за данными, снова в итератор полез, звоню в колокола. Если очередь пуста — то заблокировался.
[21:22:41] <tg> <@no111u3> то есть ты будешь усыпать на инкременте?
[21:22:44] <tg> <@fvnever> Ну тип на инкременте итератора, окей?
[21:23:17] <tg> <@no111u3> так вот к примеру положили два блока данных и послали два эвента
[21:23:28] <tg> <@fvnever> Положим
[21:23:45] <portnov> кстате о блокировках
[21:23:54] <tg> <@no111u3> один начал выгребать, другой пока отваливается спать - ибо лок
[21:24:04] <tg> <@fvnever> Эт почему?
[21:24:10] <tg> <@fvnever> Почему им обоим не выгрести?
[21:24:14] <portnov> а есть какой-нибудь стандартный приём, как оценивать вероятность и продолжительность ожидания блокировки в многопоточном приложении?
[21:24:15] <tg> <@no111u3> это потому что у тебя они оба в конце
[21:24:21] <tg> <@fvnever> В каком конце?
[21:24:27] <tg> <@fvnever> Ну смотри вот
[21:24:30] <tg> <@fvnever> Двое проснулось
[21:24:38] <tg> <@fvnever> Один атомарно поинтер декрементировал
[21:24:43] <tg> <@fvnever> Второй атомарно поинтер декрементировал
[21:24:50] <tg> <@fvnever> Каждый взял себе по элементу и ушли
[21:25:08] <tg> <@fvnever> Лок-то нужен, по факту, просто чтоб все спали, пока ничего в очереди интересного нету.
[21:25:10] <tg> <@no111u3> во первых сообщение придёт не равномерно каждому
[21:25:19] <tg> <@fvnever> >> <no111u3> во первых сообщение придёт не равномерно каждому
Ну кому-то оно же придёт?
[21:25:25] <tg> <@no111u3> одному из
[21:25:27] <tg> <@fvnever> Какая разница, равномерно или нет?
[21:25:56] <tg> <@no111u3> разница в том что если оно придёт с задержкой то один из них будет спать два раза
[21:26:03] <tg> <@fvnever> Никакой, у меня десять воркеров и десять сообщений. Каждому новому сообщению просто некуда деться, кроме как к кому-то из свободных воркеров.
[21:26:35] <tg> <@fvnever> >> <no111u3> разница в том что если оно придёт с задержкой то один из них будет спать два раза
Ну как бы и хрен с ним?
[21:26:40] <tg> <@no111u3> у тебя каждый передаёт эту очередь от одного к другому
[21:26:42] <tg> <@fvnever> Поспит-проснётся-ещё поспит.
[21:26:54] <tg> <@fvnever> Я не понил, почему кто-то кому-то передаёт.
[21:27:07] <tg> <@no111u3> теперь положим что пока поток пытался забрать данные у него исчерпался квант
[21:27:34] <tg> <@no111u3> но эвент он свой получил и следовательно он выгребет их в следующем раунде
[21:27:37] <tg> <@fvnever> Ок, то есть ты предлагаешь делать тредсейф итератор без локов?
[21:27:43] <tg> <@fvnever> Ну хорошо, пусть будет без локов, я не против.
[21:27:55] <tg> <@no111u3> без локов тоже будет всё не очень
[21:28:01] <tg> <@fvnever> Ну так и что?
[21:28:12] <tg> <@fvnever> Нужен тредсейф итератор, нужен.
[21:28:23] <tg> <@fvnever> Есть очередь и воркеры, которые из неё разбирают данные.
[21:28:31] <tg> <@no111u3> локфри у тебя будет полубалансовой - у тебя поток либо висит на блокировке либо отсыпается
[21:28:33] <tg> <@fvnever> Нету тут никакого «неэффективно»
[21:28:38] <tg> <@no111u3> исчерпав квант
[21:28:42] <tg> <@fvnever> Есть задача, есть решение для неё.
[21:29:07] <tg> <@fvnever> «Сделай десять очередей» тоже можно за интерфейсом тредсейф итератора спрятать запросто.
[21:29:11] <tg> <@no111u3> и эвент с одним воркером для коротких событий будет эффективней
[21:29:27] <tg> <@fvnever> >> <no111u3> и эвент с одним воркером для коротких событий будет эффективней
Никто не говорил, что события короткие.
[21:29:45] <tg> <@no111u3> и только для событий больше 1кванта системы начинает проявлять эффективность
[21:29:51] <tg> <@no111u3> и то не всегда
[21:30:00] <tg> <@fvnever> Блин, бред какой-то.
[21:30:12] <tg> <@fvnever> В десять потоков обычную нагрузку всяко будет быстрее разобрать, чем в один.
[21:30:21] <tg> <@fvnever> Причём, внезапно (!!) примерно в десять раз!
[21:30:23] <tg> <@no111u3> смотря опять же какую
[21:30:25] <tg> <@no111u3> нет
[21:30:27] <tg> <@no111u3> не в 10
[21:30:34] <tg> <@fvnever> Примерно в десять.
[21:30:38] <tg> <@no111u3> и не примерно
[21:30:41] <tg> <@fvnever> >> <no111u3> смотря опять же какую
Да, смотря какую.
[21:30:59] <tg> <@fvnever> Поскольку функцию process() я так и не показал, то могу выдумывать какую захочу.
[21:31:17] <tg> <@fvnever> Ну и я с самого начала полагал, что нагрузка значительно превышает квант.
[21:31:57] <tg> <@fvnever> На совсем небольших нагрузках, когда накладные расходы на всё это будут сравнимы или превышать время обработки — понятное дело, расклад совершенно иной.
[21:32:30] <tg> <@fvnever> И там, безусловно, один воркер (или даже ни одного — с инлайн-обработкой прямо в треде продюсера) может быть значительно лучше и по времени, и по пропускной способности.
[21:32:34] <tg> <@no111u3> >> <fvnever> На совсем небольших нагрузках, когда накладные расходы на всё это будут сравнимы или превышать время обработки — понятное дело, расклад совершенно иной.
https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%90%D0%BC%D0%B4%D0%B0%D0%BB%D0%B0
[21:32:42] <tg> <@AlexFails> >> <no111u3> https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%90%D0%BC%D0%B4%D0%B0%D0%BB%D0%B0
я вот про него тоже подумал
[21:32:49] <tg> <@fvnever> Но это же глупости
[21:32:51] <tg> <@fvnever> У нас десять тредов
[21:32:56] <tg> <@fvnever> На десяти головах
[21:32:58] <tg> <@no111u3> Иии
[21:33:06] <tg> <@no111u3> а система синхронизации одна
[21:33:08] <tg> <@fvnever> Каждый взял себе работу из очереди за несколько мс
[21:33:12] <tg> <@fvnever> А потом минуту пашет
[21:33:38] <tg> <@no111u3> и более того пока они боролись за неё они потратили чуть меньше трети времени
[21:33:49] <tg> <@AlexFails> ну, не
[21:33:50] <tg> <@fvnever> Треть минуты?
[21:33:54] <tg> <@fvnever> Ну это бред
[21:33:57] <tg> <@no111u3> ну не минуты
[21:34:01] <tg> <@fvnever> А чего?
[21:34:06] <tg> <@AlexFails> в законе амдала по линку есть константы, которые ограничивают рост
[21:34:08] <tg> <@fvnever> Обработка занимает около минуты у меня
[21:34:11] <tg> <@no111u3> кванта
[21:34:21] <tg> <@fvnever> Тред взял работу и минуту потом работает
[21:34:34] <tg> <@fvnever> Даже если два кванта он потратил на накладные расходы — это, гм, не очень существенно.
[21:34:43] <tg> <@fvnever> Итоговая эффективность превышает однопоточную примерно в десять раз.
[21:34:58] <tg> <@no111u3> >> <fvnever> Итоговая эффективность превышает однопоточную примерно в десять раз.
это ты замерял или абстрактно прикидываешь?
[21:35:13] <tg> <@fvnever> >> <no111u3> это ты замерял или абстрактно прикидываешь?
А что замерять? Sleep(60000)?
[21:35:20] <tg> <@no111u3> нее
[21:35:32] <tg> <@fvnever> Я ничего не замерял в этой истории, если чо, и она чисто гипотетическая.
[21:35:55] <tg> <@fvnever> Просто ты мне доказываешь какие-то вещи про код, которого не видишь, и это странно. Я показываю более-менее реалистичный расклад, в котором это работает.
[21:36:07] <tg> <@fvnever> Например, ты с чего-то взял, что десять тредов — «неэффективно».
[21:36:15] <tg> <@fvnever> И мол один лучше будет
[21:36:32] <tg> <@fvnever> Я показываю, что нет, в большинстве случаев с длительной вычислительной нагрузкой десять тредов будет лучше, чем один
[21:36:40] <tg> <@fvnever> Причём очень значительно.
[21:36:49] <tg> <@fvnever> К этому положению разве есть вопросы?
[21:37:02] <tg> <@fvnever> Мне казалось, это ну прям ваще очевидно
[21:37:07] <tg> <@no111u3> потому как по этому закону и тому что у тебя не бывает чисто независимых данных так как очередь у тебя одна и следовательно у тебя одна точка разбора, то до величины которая будет превышать полный раунд планировщика задач у тебя будет эффективность от одного треда больше чем от многих
[21:37:18] <tg> <@no111u3> >> <fvnever> Я показываю, что нет, в большинстве случаев с длительной вычислительной нагрузкой десять тредов будет лучше, чем один
но не в 10 раз
[21:37:21] <tg> <@fvnever> Как очевидно и то, что с уменьшением длительности нагрузки будет расти доля накладных расходов
[21:37:25] <tg> <@fvnever> >> <no111u3> но не в 10 раз
Почти в десять
[21:37:38] <tg> <@no111u3> я бы сказал для независимых данных максимум в 5 раз
[21:37:47] <tg> <@fvnever> >> <no111u3> потому как по этому закону и тому что у тебя не бывает чисто независимых данных так как очередь у тебя одна и следовательно у тебя одна точка разбора, то до величины которая будет превышать полный раунд планировщика задач у тебя будет эффективность от одного треда больше чем от многих
Ах, так у меня ещё и «не бывает чисто независимых данных»
[21:37:52] <tg> <@fvnever> То есть ты ещё и данные за меня выдумываешь?
[21:38:00] <tg> <@fvnever> Но там просто Sleep(60000)
[21:38:06] <tg> <@fvnever> Кажется, достаточно независимо, а?
[21:38:13] <tg> <@no111u3> слип это не данные
[21:38:15] <tg> <@fvnever> >> <no111u3> я бы сказал для независимых данных максимум в 5 раз
А почему в пять? Откуда цифра?
[21:38:22] <tg> <@no111u3> исходя из закона
[21:38:25] <tg> <@fvnever> Ну то есть для независимых-то почему пять?
[21:38:47] <tg> <@no111u3> если бы была зависимость по нему была бы от 4 до 1х прироста
[21:38:53] <tg> <@fvnever> Хочешь сказать, вот я щас факториал начну считать в десять тредов, и у меня он будет считаться всего в пять раз быстрее?
[21:39:08] <tg> <@fvnever> Десять тредов с одним и тем же вычислением
[21:39:15] <tg> <@fvnever> У каждого свой счётчик, независимо
[21:39:33] <tg> <@fvnever> Ну, раз тебе слип не нравится — пусть будет какой-нибудь большой факториал
[21:39:37] <tg> <@matwey_kornilov> >> <fvnever> Хочешь сказать, вот я щас факториал начну считать в десять тредов, и у меня он будет считаться всего в пять раз быстрее?
А зачем тебе считать факториал в 10 тредов?
[21:39:57] <tg> <@fvnever> >> <matwey_kornilov> А зачем тебе считать факториал в 10 тредов?
Ну вот я написал матановый сервер, и десять юзеров ко мне пришло с одним и тем же запросом. Контрольная у них.
[21:40:15] <tg> <@matwey_kornilov> На факториал?
[21:40:19] <tg> <@fvnever> Ну да.
[21:40:32] <tg> <@matwey_kornilov> Ну так пусть сами считают!
[21:41:01] <tg> <@fvnever> Хорошо. Им контролёр добавил десять заданий в очередь, каждый из очереди достал, они посчитали
[21:41:16] <tg> <@fvnever> Внезапно, в десять раз быстрее, чем если бы один всё считал.
[21:41:20] <tg> <@fvnever> Не в пять.
[21:42:06] <tg> <@no111u3> >> <fvnever> Внезапно, в десять раз быстрее, чем если бы один всё считал.
это если ты обеспечил им независимость он начала и до конца
[21:42:12] <tg> <@fvnever> Потому что им же синхронизироваться не надо было, и contention у них нету, поэтому откуда накладные расходы?
[21:42:20] <tg> <@fvnever> >> <no111u3> это если ты обеспечил им независимость он начала и до конца
Я им обеспечил, да.
[21:42:54] <tg> <@fvnever> По факту — да, если бы они за какими-то данными в процессе вычисления факториала лезли в общий кэш, или мешали друг другу, или ещё чото — то никак бы не вышло десяти раз.
[21:43:22] <tg> <@no111u3> по факту у тебя один канал памяти и и на этом уже возня
[21:43:37] <tg> <@fvnever> Много ль памяти надо для факториала?
[21:43:40] <tg> <@no111u3> но это не относится к данному вопросу
[21:43:42] <tg> <@fvnever> Кажись, регистра хватит?
[21:43:52] <tg> <@fvnever> >> <no111u3> по факту у тебя один канал памяти и и на этом уже возня
Ну и, кстати, не вороньё ли это?
[21:43:54] <tg> <@no111u3> а код где хранится?
[21:44:00] <tg> <@fvnever> У меня может быть сколь угодно каналов памяти
[21:44:15] <tg> <@no111u3> >> <fvnever> У меня может быть сколь угодно каналов памяти
но внутри процессора это будет одна шина
[21:44:19] <tg> <@no111u3> внезапно
[21:44:24] <tg> <@fvnever> Внутри скольких?
[21:44:45] <tg> <@fvnever> Тут я и правда плаваю немножко. У многоцпушной машины разве не будет Ъ-параллелизм?
[21:44:56] <tg> <@fvnever> Не, десятиголовой машины у меня нету
[21:45:01] <tg> <@fvnever> Но двухголовая есть
[21:45:17] <tg> <@no111u3> >> <fvnever> Тут я и правда плаваю немножко. У многоцпушной машины разве не будет Ъ-параллелизм?
нет, у тебя же остались примитивы синхронизации
[21:45:21] <tg> <@fvnever> Ну и у каждого ядра (даже не у головы) же свой кэш
[21:45:23] <tg> <@no111u3> значит система должна учитывать
[21:45:27] <tg> <@fvnever> >> <no111u3> нет, у тебя же остались примитивы синхронизации
А не срать на них?
[21:45:31] <tg> <@no111u3> нет
[21:45:34] <tg> <@no111u3> тебе срать
[21:45:37] <tg> <@fvnever> Каждый взял задание, пусть даже с контеншеном
[21:45:39] <tg> <@fvnever> А потом его делает
[21:45:42] <tg> <@fvnever> Долго делает
[21:45:45] <tg> <@no111u3> но вот потоки мигрируют
[21:45:47] <tg> <@no111u3> не твои так ос
[21:46:04] <tg> <@fvnever> Куда они смигрируют с подводной лодки?
[21:46:08] <tg> <@no111u3> и в итоге у тебя есть точка синхронизации
[21:46:18] <tg> <@no111u3> >> <fvnever> Куда они смигрируют с подводной лодки?
между ядрами
[21:46:25] <tg> <@fvnever> >> <no111u3> и в итоге у тебя есть точка синхронизации
Снова выдумки
[21:46:37] <tg> <@fvnever> Кажется, в моём примере нету точки синхронизации — ну, после начала всех работ
[21:46:48] <tg> <@fvnever> Десять тредов стартанули (пусть они будут к цпу прибиты, так рассуждать проще)
[21:46:55] <tg> <@fvnever> И всё, поехали
[21:47:10] <tg> <@fvnever> 1мс они разбирались с локами, а потом на минуту занялись своими делами
[21:47:25] <tg> <@no111u3> но как только ты начал делать реальную работу то твоих 10х уже и след простыл
[21:47:33] <tg> <@fvnever> >> <no111u3> но как только ты начал делать реальную работу то твоих 10х уже и след простыл
Не понял
[21:47:38] <tg> <@fvnever> Они и делают реальную работу
[21:48:04] <tg> <@fvnever> Ну ОС иногда может быть надо чото зашедулить, иногда контекст переключить, окей. Но это и с одним тредом тоже будет верно
[21:48:14] <tg> <@fvnever> Который и без этого будет работать не менее десяти минут
[21:48:24] <tg> <@fvnever> А тут все справились примерно за минуту
[21:48:35] <tg> <@fvnever> Ну пусть их ОС прервёт (каждого! ужас!) на две секунды
[21:48:44] <tg> <@fvnever> Справились за минуту и две секунды
[21:48:51] <tg> <@no111u3> ну не две секунды
[21:48:58] <tg> <@fvnever> 600/62 = 9.67
[21:49:07] <tg> <@fvnever> Достаточно близко к 10, не?
[21:49:12] <tg> <@no111u3> что за цифры?
[21:49:17] <tg> <@fvnever> >> <no111u3> ну не две секунды
А на сколько?
[21:49:29] <tg> <@fvnever> Скажи на сколько секунд, я посчитаю. Я умею считать.
[21:49:33] <tg> <@no111u3> по разному
[21:49:43] <tg> <@fvnever> Ну пусть одного на одну секунду, а остальных на две
[21:49:49] <tg> <@no111u3> нее
[21:49:53] <tg> <@fvnever> Достаточно разные цифры? 1 и 2
[21:49:55] <tg> <@fvnever> Ничего общего.
[21:50:04] <tg> <@no111u3> там на минуту может набежать секунд 5 - 10 спокойно
[21:50:10] <tg> <@Devel29A> Вот вы графоманты
[21:50:12] <tg> <@fvnever> Ну пусть будет пять секунд.
[21:50:25] <tg> <@fvnever> 600/65 = 9.23
[21:50:26] <tg> <@no111u3> на каждый поток
[21:50:32] <tg> <@fvnever> >> <no111u3> на каждый поток
Я на каждый посчитал.
[21:50:40] <tg> <@fvnever> Получается уже не десять, но ещё не пять
[21:50:47] <tg> <@fvnever> Найдёшь ещё десяток секунд? :)
[21:51:13] <tg> <@fvnever> Хотя даже это тебе не поможет
[21:51:27] <tg> <@no111u3> но как видишь чистой десятки у тебя уже нет
[21:51:32] <tg> <@fvnever> Да, конечно.
[21:51:39] <tg> <@fvnever> Потому что ты чистоту эксперимента нарушил какими-то ОС
[21:51:49] <tg> <@fvnever> А, заметь, однопоточный сценарий у нас по расчётам непрерываемый
[21:51:52] <tg> <@a1batross> Какую интересную задачу требующую ОСРВ стоит решить? Не для универа, не для работы, только из любви к кодингу.
[21:52:02] <tg> <@fvnever> То есть какой-то тред 10 минут молотил, и его никто не прервал ни на секундочку
[21:52:04] <tg> <@no111u3> а в реальных условиях там будет показатель где-то 7.5
[21:52:15] <tg> <@fvnever> В реальных условиях тот один тред так же будет прерываться
[21:52:23] <tg> <@fvnever> Примерно с такой же интенсивностью
[21:52:34] <tg> <@no111u3> >> <fvnever> В реальных условиях тот один тред так же будет прерываться
ну так я и не стал это учитывать, хотя на 10 потоках это будет чаще
[21:52:37] <tg> <@fvnever> То есть за 10 минут он прервётся примерно на 5 сек за каждую минуту, так?
[21:52:53] <tg> <@no111u3> где-то да
[21:52:57] <tg> <@fvnever> И прикинь чо получается
[21:53:00] <tg> <@fvnever> 650/65 = 10
[21:53:03] <tg> <@fvnever> Ровно десятка.
[21:53:20] <tg> <@fvnever> Совпадение? 🤔
[21:53:44] <tg> <@fvnever> Тебе придётся ещё какой-то трюк выдумать
[21:53:51] <tg> <@fvnever> Чтобы твой тред ускорить
[21:54:11] <tg> <@fvnever> Космические лучи?
[21:54:14] <tg> <@no111u3> >> <fvnever> Тебе придётся ещё какой-то трюк выдумать
зачем мне выдумывать трюки когда можно запустить считать числа и окажется что не в 10
[21:54:26] <tg> <@fvnever> >> <no111u3> зачем мне выдумывать трюки когда можно запустить считать числа и окажется что не в 10
Но и 5 не окажется.
[21:54:38] <tg> <@no111u3> >> <fvnever> Но и 5 не окажется.
чуть больше пяти
[21:54:46] <tg> <@fvnever> Чуть меньше десяти, ты хотел сказать.
[21:54:47] <tg> <@no111u3> но не больше 8ми
[21:55:15] <tg> <@ttldtor> >> <Devel29A> Вот вы графоманты
эт да
[21:55:27] <tg> <@fvnever> >> <no111u3> зачем мне выдумывать трюки когда можно запустить считать числа и окажется что не в 10
Ну давай напишем прогу да померяем
[21:55:34] <tg> <@no111u3> >> <fvnever> Ну давай напишем прогу да померяем
давай
[21:55:56] <tg> <@fvnever> Чисто CPU-based нагрузка, без IO, и десять тредов
[21:56:04] <tg> <@no111u3> да
[21:56:06] <tg> <@fvnever> А потом те же 10 кусков работы в один тред
[21:56:13] <tg> <@no111u3> ибо на ио будет совсем грустно
[21:56:26] <tg> <@fvnever> Треды можно стартануть заранее, но накладные расходы на синхронизацию учитываем
[21:58:09] <tg> <@fvnever> >> <Devel29A> Вот вы графоманты
Мы не графоманты, а матеманты
[21:58:10] <tg> <@no111u3> можно и такой вариант
[21:58:13] <tg> <@fvnever> Считать учимся
[21:58:21] <tg> <@fvnever> До пяти, восьми и десяти.
[22:03:42] <tg> <@no111u3> @fvnever а у тебя есть доступ к машинам с физическими десятью ядрами?
[22:03:52] <tg> <@fvnever> >> <no111u3> @fvnever а у тебя есть доступ к машинам с физическими десятью ядрами?
Ну да
[22:03:55] <tg> <@AlexFails> на гпу давайте посчитаем
[22:03:57] <tg> <@fvnever> У меня под столом такая стоит
[22:04:07] <tg> <@fvnever> Два шестиядерных Xeon
[22:04:49] <tg> <@no111u3> хм, вот этот вариант интересен
[22:09:16] <tg> <@no111u3> на чём писать будем?
[22:09:24] <tg> <@fvnever> На плюсах 🤷‍♂️
[22:10:25] <tg> <@no111u3> считать фибоначчи по методу КТО
[22:10:38] <tg> <@fvnever> А чо не факториал?
[22:10:47] <tg> <@fvnever> Я прост его накодил уже
[22:10:56] <tg> <@no111u3> >> <fvnever> А чо не факториал?
ну можно и факториал
[22:11:04] <tg> <@no111u3> просто он быстрей переполняется
[22:11:06] <tg> <@fvnever> Ну, правда, он какую-то хуню показывает вместо факториала, но это пофиг :)
[22:11:12] <tg> <@fvnever> А ну и пусть переполняется
[22:11:28] <tg> <@fvnever> Задача-то не в том, чтобы правильно посчитать факториал :)
[22:11:30] <tg> <@no111u3> ну можно с помощью КТО сделать так чтобы дергало переполнение пореже
[22:12:16] <tg> <@no111u3> @fvnever я бы и у себя затестил, но дома точно не буду - результат выйдет непредсказуемый
[22:12:33] <tg> <@no111u3> я бы сказал тебя он точно не обрадует
[22:12:40] <tg> <@fvnever> Ну ты можешь на меньшее количество тредов раскидать
[22:12:44] <tg> <@no111u3> нее
[22:12:46] <tg> <@no111u3> не важно
[22:12:54] <tg> <@fvnever> Лан
[22:13:10] <tg> <@no111u3> у меня проц сделан так что на одном треде он будет работать быстрей чем на 2, а на 2х быстрей чем на 4х
[22:13:34] <tg> <@no111u3> поэтому я заранее снимаю его с соревнований
[22:14:52] <tg> <@no111u3> @fvnever https://pastebin.com/JAMUs90n - часть билдов тут билдилось в 2 потока, часть в 3, часть в 8, а часть в 4
[22:14:59] <tg> <@no111u3> угадаешь какие где?
[22:15:09] <tg> <@fvnever> Ну про билды это нуваще другое, сравнивать нельзя.
[22:15:40] <tg> <@no111u3> я про то что у меня система скалится как только может
[22:15:50] <tg> <@no111u3> и на одном потоке она будет быстрей чем на 8ми
[22:17:13] <Minoru> no111u3: ноутбук что ли, охлаждения не хватает?
[22:17:32] portnov вышел(а) из комнаты
[22:17:42] <tg> <@no111u3> >> <Minoru> no111u3: ноутбук что ли, охлаждения не хватает?
нет, просто восьмое поколение и он скейлит как-то странновато
[22:19:17] <Minoru> «на одном потоке быстрее чем на восьми» это какой-то анти-скейлинг =\
[22:22:29] <tg> <@no111u3> >> <Minoru> «на одном потоке быстрее чем на восьми» это какой-то анти-скейлинг =\
это значит что в конфигурации проца прописано что на одном он может хоть 4ГГц топить, а вот когда все четыре ядра работают то 2.4 в лучшем случае
[22:22:55] <tg> <@Devel29A> >> <no111u3> @fvnever а у тебя есть доступ к машинам с физическими десятью ядрами?
У меня чота под два десятка физических, но есть и Xeon Phi
[22:23:14] <tg> <@Devel29A> Если уж сильно хочется, то можно поиграться
[22:23:24] <tg> <@fvnever> Ну я проверил, кароч у меня почти 10 раз выходит
[22:23:37] <tg> <@fvnever> щас дам сорцы и результаты
[22:23:40] <tg> <@no111u3> >> <fvnever> Ну я проверил, кароч у меня почти 10 раз выходит
почти это сколько в цифирях?
[22:23:52] <tg> <@fvnever> >> <no111u3> почти это сколько в цифирях?
9.878
[22:24:28] <tg> <@AlexFails> дык закон Амдала асимптотически и стремится к N ядер
[22:24:41] <tg> <@no111u3> >> <fvnever> 9.878
это чисто без складирования чисел - то есть результат даже в озу не идёт?
[22:24:42] <tg> <@AlexFails> на независимых задачах это видно
[22:24:49] <tg> <@fvnever> >> <no111u3> это чисто без складирования чисел - то есть результат даже в озу не идёт?
выводится на экран
[22:24:55] <tg> <@no111u3> >> <fvnever> выводится на экран
в конце?
[22:24:57] <tg> <@AlexFails> я эту хуйню гонял короч в рамках диссера
[22:25:03] <tg> <@fvnever> >> <no111u3> в конце?
Сразу как посчитается
[22:25:24] <tg> <@no111u3> вот, то есть для абсолютно независимых 10х не получили
[22:25:36] <tg> <@fvnever> >> <no111u3> вот, то есть для абсолютно независимых 10х не получили
а они зависимые
[22:25:41] <tg> <@fvnever> Ну там io, например.
[22:25:50] <tg> <@no111u3> >> <fvnever> а они зависимые
много там ио то?
[22:25:52] <tg> <@fvnever> Сможешь переписать без зависимости по IO — перепиши :)
[22:25:55] <tg> <@fvnever> >> <no111u3> много там ио то?
Да нифига
[22:26:16] <tg> <@fvnever> >> <no111u3> много там ио то?
Но ты мне тут доказывал, что контеншен на локе много съест, так что я буду топить за io, лол :)
[22:26:24] <tg> <@AlexFails> >> <no111u3> много там ио то?
синхронизация со stdout
[22:26:32] <tg> <@fvnever> Слушайте, я не могу
[22:26:33] <Minoru> @no111u3: а, ты про турбо-буст. Не называй это скейлингом, пожалуйста, скейлинг это когда у тебя задача при добавлении ядер быстрее решается за счёт параллелизма
[22:26:37] <tg> <@AlexFails> >> <fvnever> Слушайте, я не могу
?
[22:26:44] <tg> <@fvnever> В линуксе кто-нибудь умеет в per monitor DPI?
[22:26:48] <tg> <@no111u3> >> <Minoru> @no111u3: а, ты про турбо-буст. Не называй это скейлингом, пожалуйста, скейлинг это когда у тебя задача при добавлении ядер быстрее решается за счёт параллелизма
нет турбуста больше
[22:26:51] <tg> <@AlexFails> >> <fvnever> В линуксе кто-нибудь умеет в per monitor DPI?
никто
[22:26:54] <tg> <@fvnever> А то я тут в убунте в жопе говна
[22:26:57] <tg> <@fvnever> Невозможно работать
[22:27:01] <tg> <@no111u3> >> <fvnever> В линуксе кто-нибудь умеет в per monitor DPI?
вообще никто и не будет
[22:27:05] <tg> <@AlexFails> >> <fvnever> А то я тут в убунте в жопе говна
виталий говорил, что там все оче плохо
[22:27:08] <tg> <@fvnever> >> <no111u3> вообще никто и не будет
бля
[22:27:12] <tg> <@fvnever> Может, в пизду линукс?
[22:27:16] <tg> <@AlexFails> >> <fvnever> Может, в пизду линукс?
да
[22:27:23] <tg> <@fvnever> Ну серьёзно
[22:27:25] <tg> <@no111u3> и более того мы кода у вендоров приставки делали
[22:27:35] <tg> <@no111u3> те тоже парсить не умеют стандарты конкурентов
[22:27:50] <tg> <@no111u3> в итоге были смешные траблы с разными мониками
[22:28:02] <tg> <@AlexFails> >> <fvnever> Ну серьёзно
и я серьезно
[22:28:07] <tg> <@AlexFails> макос надо под хидпи
[22:28:14] <tg> <@no111u3> где моник передавал такой DPI что если его посчитать то получается размер с о стену
[22:28:16] <tg> <@fvnever> виндос
[22:28:18] <tg> <@AlexFails> или в крайнем случае, шпионяющую 10
[22:28:24] <tg> <@AlexFails> >> <no111u3> где моник передавал такой DPI что если его посчитать то получается размер с о стену
о да, эти edid-проблемы!
[22:28:32] <tg> <@AlexFails> сука, как же они меня бесят блять
[22:28:34] <tg> <@fvnever> Виндос норм, стоит дёшево и умеет в per-monitor DPI
[22:28:48] <tg> <@no111u3> >> <AlexFails> макос надо под хидпи
я могу скрин прислать линукса в 4к
[22:28:54] <tg> <@fvnever> Ну на самом деле я надеюсь, что вы просто не шарите, и где-то есть норм оболочка для линукса
[22:29:04] <tg> <@AlexFails> >> <fvnever> Ну на самом деле я надеюсь, что вы просто не шарите, и где-то есть норм оболочка для линукса
в вяленом будет разноDPI
[22:29:07] <tg> <@fvnever> >> <no111u3> я могу скрин прислать линукса в 4к
У меня всё прекрасно с 4k на линуксе
[22:29:17] <tg> <@fvnever> Ну в смысле тут, похоже, дрова нвидии — говно, но с разрешением всё норм
[22:29:20] <tg> <@AlexFails> >> <no111u3> после месяца мучений оно выглядит не так блевотно
у тебя просто глаз замутнен
[22:29:27] <tg> <@AlexFails> [Photo]
[22:29:36] <tg> <@fvnever> Но у меня мониторы с разным DPI, а я не смог настроить это норм
[22:29:39] <tg> <@no111u3> >> <AlexFails> у тебя просто глаз замутнен
а ну да, я же -3 (или даже больше)
[22:29:45] <tg> <@no111u3> >> <fvnever> Но у меня мониторы с разным DPI, а я не смог настроить это норм
а тут хуй
[22:29:49] <tg> <@AlexFails> >> <xvitaly> Сейчас применяется либо upscale, либо downscale при разных DPI. Это страшно кривые хаки, портящие изображение.
[22:30:01] <tg> <@fvnever> В итоге я с вами щас общаюсь только благодаря кривому престоновскому масштабированию в телеграме
[22:30:04] <tg> <@no111u3> @fvnever короче линукс не умеет не в кратные
[22:30:06] <tg> <@fvnever> Вот спасибо Престону, он збс сделал
[22:30:18] <tg> <@no111u3> я просто захрадкодил
[22:30:21] <tg> <@fvnever> >> <no111u3> @fvnever короче линукс не умеет не в кратные
Да он шото ни в какие не умеет
[22:30:32] <tg> <@fvnever> Я вижу только одинаковый dpi на разных дисплеях, это не годится.
[22:30:33] <tg> <@no111u3> ну сорян
[22:31:02] <tg> <@no111u3> они инициализацию и сон победить не могут
[22:31:05] <tg> <@no111u3> а ты дпи хочешь
[22:31:20] <Minoru> @no111u3: что-то не нашёл пруфов про «нет турбуста больше». На википедии для i9, i7, i5 написано, что есть, просто не в виде максимальных частот, а в виде бинов. Но бины можно пересчитать в частоты
[22:31:56] <tg> <@no111u3> >> <Minoru> @no111u3: что-то не нашёл пруфов про «нет турбуста больше». На википедии для i9, i7, i5 написано, что есть, просто не в виде максимальных частот, а в виде бинов. Но бины можно пересчитать в частоты
там есть скейл в обе стороны который чип высчитывает по тдп
[22:32:06] <tg> <@no111u3> >> <Minoru> @no111u3: что-то не нашёл пруфов про «нет турбуста больше». На википедии для i9, i7, i5 написано, что есть, просто не в виде максимальных частот, а в виде бинов. Но бины можно пересчитать в частоты
а википедии в этом плане верить - себе дороже
[22:32:28] <tg> <@fvnever> 10 — https://hastebin.com/ugovusemak.cpp
1 — https://hastebin.com/eqemihoxag.cpp
$ g++ -pthread ./program10.cxx -o program10
$ g++ -pthread ./program1.cxx -o program1
$ ./program10
2.85015
$ ./program1
28.1549
[22:32:36] <tg> <@fvnever> @no111u3 ^
[22:32:38] <Minoru> дай хороший пруфлинк тогда, @no111u3
[22:33:16] <tg> <@fvnever> А я валю отсюда, посаны, линукс — это ужас какой-то
[22:33:21] <tg> <@no111u3> >> <Minoru> дай хороший пруфлинк тогда, @no111u3
https://habr.com/ru/post/431276/
[22:35:26] <Minoru> спасибо
[22:36:04] <tg> <@no111u3> >> <Minoru> спасибо
короче там изменилась система тактирования и много чего под капотом
[22:36:37] <tg> <@no111u3> >> <fvnever> 10 — https://hastebin.com/ugovusemak.cpp
>> 1 — https://hastebin.com/eqemihoxag.cpp
>> $ g++ -pthread ./program10.cxx -o program10
>> $ g++ -pthread ./program1.cxx -o program1
>> $ ./program10
>> 2.85015
>> $ ./program1
>> 28.1549
короче это конечно криво натещено, но допустим
[22:36:48] <tg> <@ttldtor> >> <fvnever> А я валю отсюда, посаны, линукс — это ужас какой-то
ну...они разные
[22:36:58] <tg> <@fvnever> >> <ttldtor> ну...они разные
Какой хороший?
[22:37:12] <tg> <@fvnever> Ну, при условии, что хороший — это в котором per monitor dpi будет работать :(
[22:37:13] <tg> <@ttldtor> плохие знаю
[22:37:26] <tg> <@ttldtor> а у меня теперь 1 монитор
[22:37:31] <tg> <@matwey_kornilov> >> <fvnever> Я вижу только одинаковый dpi на разных дисплеях, это не годится.
С DPI в линуксе вообще какая-то жесть
[22:37:33] <tg> <@ttldtor> задолбало с двумя
[22:37:37] <tg> <@fvnever> У меня щас тут пока два, но я буду ещё брать
[22:37:40] <tg> <@fvnever> Два — мало.
[22:37:48] <tg> <@matwey_kornilov> Ты ЧОПом работаешь?
[22:37:50] <tg> <@fvnever> У меня ещё пара портов есть на видеокарте
[22:37:56] <tg> <@matwey_kornilov> Смотришь видеокамеры на 6 мониторах?
[22:38:04] <tg> <@fvnever> >> <matwey_kornilov> Ты ЧОПом работаешь?
Иногда chop, иногда chomp.
[22:38:16] <tg> <@matwey_kornilov> perl в чати, все в машину
[22:38:17] <tg> <@fvnever> ЕВПОЧЯ
[22:38:20] <tg> <@ttldtor> на 6 ещё можно смотреть графики всякие
[22:38:32] <tg> <@fvnever> >> <ttldtor> на 6 ещё можно смотреть графики всякие
Очень дерьмовые графики из жопы
[22:38:36] <tg> <@fvnever> Ну если на линуксе :(
[22:38:45] <tg> <@fvnever> Блин, всё, чуваки, зачем вы меня расстроили?
[22:39:05] <tg> <@ttldtor> не уверен, что мак может работать с несколькими мониторами, там всё так сильно настроено хорошо
[22:39:19] <tg> <@ttldtor> >> <fvnever> Блин, всё, чуваки, зачем вы меня расстроили?
прости за итератор
[22:39:26] <tg> <@fvnever> >> <ttldtor> не уверен, что мак может работать с несколькими мониторами, там всё так сильно настроено хорошо
На маке норм
[22:39:40] <tg> <@fvnever> В смысле, он работает с несколькими мониторами, per-monitor DPI умеет ок.
[22:40:09] <tg> <@ttldtor> хорошо, когда одинаковые мониторы, да
[22:40:12] <tg> <@fvnever> Окна иногда застревают, правда, и курсор мыши иногда на углах теряется. Но такие проблемы у вообще всех графических ОС, которыми я пользовался.
[22:40:31] <tg> <@Devel29A> >> <matwey_kornilov> perl в чати, все в машину
Не гони на перл. Он как сишка, но скриптовый
[22:41:25] <tg> <@ttldtor> не много языков умеют в юникот как пёрл
[22:41:38] <tg> <@ttldtor> да ещё в стопицот движков регекспов
[22:41:59] <tg> <@ttldtor> ЭТО ЖЕ КОМБАЕН ПО ПАРСЕНГУ  ЛОГОФ!
[22:42:18] <tg> <@ttldtor> КАК ЕМАКС, НО ПРО ЛОГИ!
[22:42:26] <tg> <@ttldtor> БДЫЩЩЩ!
[22:42:31] <tg> <@Devel29A> ПРОЛОГИ ЕБАКСА!
[22:42:57] <tg> <@ttldtor> @Air_0 зря спишь, тут такое!"
[22:43:13] <tg> <@Devel29A> Нужен огромный подорожник. Придется заворачивать целого мантикора
[22:43:14] <tg> <@ttldtor> @noktoborus и ты
[22:43:31] <tg> <@ttldtor> МОНАДНЫЙ ПОДОРОЖНИК
[22:44:13] Minoru вышел(а) из комнаты
[22:57:44] <tg> <@noktoborus> >> <ttldtor> @noktoborus и ты
Что я?
[22:58:11] <tg> <@ttldtor> >> <noktoborus> Что я?
не спи
[22:58:20] <tg> <@noktoborus> Оцтань
[22:58:25] <tg> <@noktoborus> Спать надо
[22:58:44] <tg> <@noktoborus> Вчера не спал и потому сегодня сильно устал
[23:50:17] m4n71k0r вышел(а) из комнаты
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!