Home
Обсуждение программирования на любых платформах
codingteam@conference.jabber.ru
Среда, 20 февраля 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
[00:00:52] Akon32 вышел(а) из комнаты
[04:48:43] matraskin вошёл(а) в комнату
[05:26:12] HazardPointer вышел(а) из комнаты
[06:34:13] uggur вышел(а) из комнаты: Replaced by new connection
[06:34:14] uggur вошёл(а) в комнату
[06:58:11] portnov вошёл(а) в комнату
[07:12:53] Ender вошёл(а) в комнату
[07:13:06] portnov вышел(а) из комнаты
[07:54:16] ma1uta вошёл(а) в комнату
[09:19:53] <tg> <@fvnever> >> <folexeyy> Здрасьте! А расскажите, приходится ли вам иногда наследовать один PR от другого?
>>
>> Мне вот постоянно приходится уже много лет. Всегда бывает так, что ревью не успевает, и следующий PR надо делать, отпочковывая новую ветку от текущего PR.
Да.
[09:20:17] <tg> <@fvnever> >> <folexeyy> И потом когда PR#1 мердж-сквошится, я домердживаю к себе в PR#2 мастер, и получаю конфликты. Конфликты всегда тривиальные, но бесит же.
Я ничо к себе не мержу, делаю черри-пик после того, как первый PR ушёл в мастер.
[09:20:40] <tg> <@fvnever> Ну иногда приходится делать вообще триксы и переписывать часть коммитов, тоже случается.
[09:21:28] <tg> <@fvnever> >> <ttldtor> Я не понимаю, почему не делать всё в фиче\багфикс ветке. Если тчо-то долго п роисходит, то хреновая декомпозиция
Жизнь такова, что хреновая декомпозиция подстерегает нас на каждом шагу.
[09:46:15] <tg> <@folexeyy> >> <fvnever> Я ничо к себе не мержу, делаю черри-пик нужных коммитов после того, как первый PR ушёл в мастер.
А как тебе черри-пик помогает? Или ты вообще никогда мастер к себе не мерджишь, а всегда черри-пикаешь?
[09:46:16] <tg> <@folexeyy> пика-пика
[09:47:19] <tg> <@fvnever> >> <folexeyy> А как тебе черри-пик помогает? Или ты вообще никогда мастер к себе не мерджишь, а всегда черри-пикаешь?
Обычно я ребейзюсь, если мастер поменялся
[09:47:21] <tg> <@fvnever> Но тут смотри чо
[09:47:27] <tg> <@fvnever> В мастер смержили твой PR
[09:47:35] <tg> <@fvnever> А у тебя есть отдельный бранч, который растёт из этого PR
[09:47:44] <tg> <@fvnever> То есть ребейзнуть бранч не получится, наверное?
[09:47:59] <tg> <@folexeyy> Не получится. Оч много конфликтов будет.
[09:48:02] <tg> <@fvnever> Ну поэтому можно обновиться на мастер и черри-пикнуть новые коммиты, которые ещё не смержились
[09:48:05] matraskin вышел(а) из комнаты
[09:48:26] <tg> <@folexeyy> Там же не "мердж твоего ПР", там сквош, сделанный силами гитхаба например. Т.е. совершенно отдельный коммит, содержащий ћесь код из ПР1
[09:48:32] <tg> <@fvnever> Кажется, при таком сценарии все конфликты будут настоящие
[09:48:51] <tg> <@fvnever> >> <folexeyy> Там же не "мердж твоего ПР", там сквош, сделанный силами гитхаба например. Т.е. совершенно отдельный коммит, содержащий ћесь код из ПР1
Ну окей, тем более если в мастер мержат со сквошем
[09:49:40] <tg> <@fvnever> У нас нигде так не делают, но я не считаю это проблемой. В любом случае я просто слежу, чтобы в моих PR, готовых к мержу, не было ничего лишнего и были только относящиеся к делу коммиты.
[09:49:48] <tg> <@folexeyy> >> <fvnever> Кажется, при таком сценарии все конфликты будут настоящие
Возможно, да. Надо попробовать будет. Правда черрипик требует смотреть в лог мастера, но может где-то есть кноповка "fetch && cherry-pick origin/master"
[09:51:00] <tg> <@folexeyy> >> <fvnever> У нас нигде так не делают, но я не считаю это проблемой. В любом случае я просто слежу, чтобы в моих PR, готовых к мержу, не было ничего лишнего и были только относящиеся к делу коммиты.
Угу. Чтобы суть задачи была отражена в диффе, и желательно во вменяемом наборе коммитов. Хотя последнее выходит не всегда, иногда могут дернуть, и приходится делать WIP-коммит, чтобы не стешиться
[09:52:19] <tg> <@fvnever> Ну да, я обычно стараюсь поддерживать бранчи в норм состоянии, но тоже не всегда выходит. Иногда приходится как-то мультистадийно решать конфликты несколькими мержами из мастера :(
[09:53:02] <tg> <@folexeyy> <3
[09:55:22] <tg> <@folexeyy> Но хотелось бы конечно единообразного решения в 1 команду, независимо от того, сколько коммитов в мастере накопилось, и откуда они там взялись. Но всё потому что сквош не средствами гита делается, оттуда и вся боль.
[09:55:53] <tg> <@fvnever> А какая разница, чьими средствами он делается?
[09:56:36] <tg> <@folexeyy> Если бы сквош-мердж коммит содержал в себе информацию об истории, то гит смог бы увидеть, что моя ветка шарит историю с мастером, и смог бы правильно применить коммиты.
[09:56:56] <tg> <@fvnever> А, в этом смысле. Это уже SVN какой-то получается :)
[09:57:48] <tg> <@folexeyy> Про свн ничо не знаю, обошло стороной :) Но в целом это получается просто гит. Если ты future-branch'и мерджишь через merge --squash или вообще через просто ребейз/мердж, то у тебя такой проблемы нету
[09:58:04] <tg> <@folexeyy> но зато история в мастере выглядит как ...
[09:58:35] <tg> <@folexeyy> даже слов не могу подобрать. Как ржавая прострелянная каска. Толку никакого, руки пачкаются, можно порезаться, зато есть ощущение былой славы.
[10:00:15] <tg> <@folexeyy> Интересно, в hg это как-то решается хитрее? Или еще в каких современных CVS
[10:01:16] <tg> <@folexeyy> CVS VCS, кручу верчу
[10:02:14] <tg> <@folexeyy> Спасибо, Форневер, за идею с черри-пиком. Попробую как снова случится подобное :)
[10:02:49] <tg> <@folexeyy> https://github.com/rust-lang/rust/blob/c84e7976423bb910bb5eb5eecffc7e33a897a97f/src/libstd/thread/local.rs#L250-L279 смотрите какой адовый код. Фиг чо разберешь. Товарищ еще и умудрился сломать, и попасть в None =>
[10:03:48] <tg> <@folexeyy> И при том что этот код делает какой-то совсем ад в кишках, он все равно в тыщу раз понятнее какой-нибудь херни на скале/джаве с миллионом абстрактных классов интерфейсов виртуальных функций и всякого такого.
[10:04:19] <tg> <@folexeyy> После знакомства с растом, скала стала намноооого хуже выглядеть. И, кажется, это не лечится уже.
[10:06:18] <tg> <@fvnever> >> <folexeyy> https://github.com/rust-lang/rust/blob/c84e7976423bb910bb5eb5eecffc7e33a897a97f/src/libstd/thread/local.rs#L250-L279 смотрите какой адовый код. Фиг чо разберешь. Товарищ еще и умудрился сломать, и попасть в None =>
Как можно было там попасть в None вообще? Ведь вон же, строчкой выше этот ptr заменяется на Some.
[10:06:22] <tg> <@fvnever> Рейс чтоль?
[10:07:54] <tg> <@folexeyy> Возможно рейс, да. Но там какая-то непонятная фигня, еще разбираемся. Есть подозрение, что из-за того что результат mem::replace в переменную не сохраняется, дропается что-то не то. Но это какая-то глупость, очень надеюсь, что это не так. Но падает в корку.
Расскажу, как разберемся :)
[10:08:28] <O01eg> tg: там санитайзеры есть, если надо
[10:10:48] <tg> <@folexeyy> Ой, а я совсем не в курсе, про какие санитайзеры речь. Можешь пожалуйста развернуть мысль немного?
[10:11:58] <O01eg> address sanitizer, thread sanitizer и т.д.
[10:12:50] <tg> <@folexeyy> https://github.com/japaric/rust-san спасибо!
[10:13:41] m4n71k0r вошёл(а) в комнату
[10:29:51] <tg> <@folexeyy> Там возможно что-то связанное с тем как тесты в расте запускаются. Потому что в коде вроде простое thread_local! { static VARIABLE: RefCell<...> = RefCell::new(...); }
[10:30:13] <tg> <@folexeyy> И падает только в тестах. Но даже с test threads = 1. Страннота, одним словом.
[10:53:53] uggur вышел(а) из комнаты: Replaced by new connection
[10:53:54] uggur вошёл(а) в комнату
[11:27:56] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[11:27:57] uıʃɐɟ∀ вошёл(а) в комнату
[11:31:55] <tg> <@folexeyy> падает кстати вот так:
$ cargo +nightly test
...
error: process didn't exit successfully: ... (signal: 4, SIGILL: illegal instruction)
[11:33:02] <O01eg> А на бете и стейбле воспроизводится?
[11:33:06] <O01eg> баг завели?
[11:33:43] <tg> <@folexeyy> Нас только nightly интересует. Пока еще не завели, разбираемся.
[11:33:47] <tg> <@folexeyy> Заведем обязательно
[11:33:56] <O01eg> возможно регрессия
[11:34:27] <tg> <@folexeyy> Причем падает и на маке, и на линуксе. Находили ишьюс, где мак-специфик ллвм баг был полгода назад, но это видимо не он.
[11:36:17] <tg> <@sarakerrigan> >> <folexeyy> Причем падает и на маке, и на линуксе. Находили ишьюс, где мак-специфик ллвм баг был полгода назад, но это видимо не он.
пиши в растоконфу
[12:32:08] O01eg вышел(а) из комнаты
[12:54:48] O01eg вошёл(а) в комнату
[14:01:19] <tg> <@ttldtor> вот обысните мне на пальцах ... matrix - это вебнёвая ирка?
[14:01:33] <O01eg> Да
[14:02:17] <tg> <@AlexFails> >> <ttldtor> вот обысните мне на пальцах ... matrix - это вебнёвая ирка?
почти
[14:02:35] <tg> <@AlexFails> там только JSON юзается для срализации
[14:02:56] <tg> <@ttldtor> жаль
[14:03:12] <tg> <@AlexFails> я бы сравнил матрикс как что-то среднее между тележкой без стикеров, ботов и кнопочек + свои ключи шифрования и иркой
[14:03:13] <ma1uta> очередной федеративный протокол
[14:03:37] <tg> <@sarakerrigan> он тормозит ппц просто
[14:03:47] <tg> <@ttldtor> тележка без стикеров была бы прекрасна
[14:03:52] <tg> <@ttldtor> ещё бы опенсорснуть
[14:03:58] <ma1uta> там есть стикеры. И боты.
[14:04:06] <tg> <@ttldtor> жаль
[14:04:07] <ma1uta> Причём не такие убогие как в телеграмме.
[14:04:21] <ma1uta> а тормозит сервер, потому что написан на python
[14:04:21] <O01eg> оно ещё и на електроне
[14:04:39] <ma1uta> официальный клиент - да.
[14:05:14] <tg> <@AlexFails> nheko Берите
[14:05:27] <tg> <@AlexFails> [Sticker 😣]
[14:06:13] <tg> <@ttldtor> я бы поменял стикеры на подсветку кода и неограниченное количестьво запинненых чатиков
[14:06:29] <tg> <@ttldtor> первое - это клиентовое, а второе, как я понял, - серверное
[14:06:44] <tg> <@AlexFails> первое на клиенте тоже можно сделать, но синкать придется через сторонние каналы
[14:06:57] <ma1uta> markdown тебе в помощью. Riot умеет, кстати, через ```bash делать подсветку.
[14:07:17] <tg> <@AlexFails> в Matrix вообще можно любую подсветку сделать
[14:07:18] <ma1uta> что такое запинненые чаты?
[14:07:25] <tg> <@ttldtor> я про телеграм
[14:07:31] <tg> <@AlexFails> это чаты, которые висят выше всех остальных в списке
[14:07:57] <tg> <@fvnever> Мне чото так и не понравился этот matrix, клиент очень глючноват
[14:08:02] <tg> <@fvnever> Хотя выглядит прилично
[14:08:03] <ma1uta> эта же функция отключаемая?
[14:08:08] <tg> <@fvnever> Ну и сервер просто убер тормозной
[14:08:47] <tg> <@ttldtor> >> <fvnever> Ну и сервер просто убер тормозной
но питон тут не при чём, да?
[14:09:00] <tg> <@fvnever> Ничего не знаю про питон
[14:09:10] <tg> <@fvnever> Но, если в нём шото плохо работает, питонисты делают пи-пи
[14:09:17] <tg> <@fvnever> Пи-пи работает быстрее, так ведь?
[14:09:25] <tg> <@AlexFails> ору
[14:09:27] <tg> <@ttldtor> я хз как у него это получается
[14:09:29] <tg> <@AlexFails> флашит быстрее
[14:10:44] <ma1uta> раньше там был python 2.7 и twisted, который работал в однопоточном режиме.
[14:10:58] <ma1uta> сейчас уже python 3.7.
[14:11:35] <tg> <@fvnever> >> <ttldtor> я хз как у него это получается
Так там банально JIT.
[14:11:40] <tg> <@fvnever> И он правда значительно быстрее.
[14:12:39] <ma1uta> pypy быстрее потому что jit.
[14:12:50] <ma1uta> но памяти больше съедает.
[14:26:52] <tg> <@ttldtor> эээ, у питона свой байт-код?
[14:27:07] <tg> <@matwey_kornilov> В каком смысле свой?
[14:27:13] <tg> <@ttldtor> я просто не понимаю выражение "JIT для питона"
[14:27:15] <tg> <@matwey_kornilov> Свой байткод у питона есть, да
[14:27:23] <tg> <@noktoborus> да, свой
[14:27:25] <tg> <@ttldtor> JIT подразумевает байткод
[14:27:52] <tg> <@noktoborus> он как BSON из JSON
[14:28:00] <tg> <@noktoborus> то же говно, только короче
[14:28:15] <tg> <@noktoborus> JIT подразумевает, что говно собирается в куски нативного кода, не?
[14:29:04] <tg> <@ttldtor> из байткода в машинный
[14:29:19] <tg> <@ttldtor> это... а где спеки байткода питоновского?
[14:29:39] <tg> <@ttldtor> а...
[14:29:49] <tg> <@ttldtor> нашёл, наверное)
[15:09:29] <tg> <@Devel29A> >> <noktoborus> JIT подразумевает, что говно собирается в куски нативного кода, не?
Нативного?
[15:11:03] <tg> <@noktoborus> наивного
[15:22:54] <tg> <@Devel29A> Такой не семплируется
[15:48:57] <tg> <@ttldtor> так как господин нялайфер покинул толксы, спрошу тут
[15:49:12] <tg> <@ttldtor> чем отличается Главкосмос от Роскосмоса?
[15:50:07] <tg> <@ttldtor> ааа, дочка
[15:51:20] <tg> <@winged_pegasus> >> <ttldtor> чем отличается Главкосмос от Роскосмоса?
Филиал для экспорта.
[15:51:39] <tg> <@AlexFails> >> <ttldtor> так как господин нялайфер покинул толксы, спрошу тут
Што покинул?
[15:52:06] <tg> <@ttldtor> >> <AlexFails> Што покинул?
https://t.me/codingtalks
[15:54:04] <tg> <@ttldtor> эхх https://nplus1.ru/news/2019/02/18/airship
[15:54:32] <tg> <@AlexFails> Хм, чот пропустил анонс
[15:55:09] <tg> <@winged_pegasus> >> <ttldtor> эхх https://nplus1.ru/news/2019/02/18/airship
Жаль с их управлением всё не оч.
[15:55:16] <tg> <@ttldtor> блин, ещё и Брин свои дерижабли строит
[15:55:18] <tg> <@winged_pegasus> И скоростью.
[15:55:33] <tg> <@ttldtor> да, управление это да
[15:55:48] <tg> <@ttldtor> а со скоростью можно что-то сделать
[15:55:54] <tg> <@winged_pegasus> Зато грузоподъёмность ок. Можно огроменные грузы возить далеко.
[15:57:03] <tg> <@Devel29A> Это похоже на морские перевозки
[15:57:06] <tg> <@ttldtor> ну, то есть как у самолёта скорость под 800 не получить, но 300, думаю, вполне возможно
[15:57:08] <tg> <@Devel29A> Но по воздуху
[15:57:22] <tg> <@winged_pegasus> >> <ttldtor> ну, то есть как у самолёта скорость под 800 не получить, но 300, думаю, вполне возможно
300 вполне.
[15:57:30] <tg> <@Devel29A> >> <winged_pegasus> Зато грузоподъёмность ок. Можно огроменные грузы возить далеко.
Вот если пизданется такой фрейтер!
[15:57:36] <tg> <@ttldtor> а это уже будет конкуренция поездам
[15:57:45] <tg> <@Devel29A> Но зато пиратам перехватить такое уже сильно сложнее
[15:57:48] <tg> <@winged_pegasus> >> <Devel29A> Вот если пизданется такой фрейтер!
Ну так заполнять гелием, а не водородом)
[15:57:52] <tg> <@ttldtor> он медленно пизданётся
[15:58:08] <tg> <@Devel29A> >> <winged_pegasus> Ну так заполнять гелием, а не водородом)
На он просто массой так уебать может, что мало не покажется
[15:58:18] <tg> <@Devel29A> Разве что трассы специально подбирать
[16:00:39] <tg> <@Devel29A> Медленно или быстро вопрос уже второй
[16:00:52] <tg> <@ttldtor> в принципе, большая масса позволит летать и над океаном
[16:00:54] <tg> <@Devel29A> Но сама идея норм, конечно же
[16:03:39] <tg> <@winged_pegasus> Однозначно можно возить негабарит или очень тяжёлое. Но вот если по суше скорей всего профит, то хз на счёт конкуренции с кораблями.
[16:26:50] rafaelrs вышел(а) из комнаты: Replaced by new connection
[16:26:51] rafaelrs вошёл(а) в комнату
[16:29:09] Ender вышел(а) из комнаты
[16:33:48] <tg> <@noktoborus> > испытания модели перспективного жесткого транспортного дирижабля
[16:33:50] <tg> <@noktoborus> перспективного
[16:33:58] <tg> <@noktoborus> оно уже лет 100 как перспективный
[16:34:00] <tg> <@noktoborus> и хули?
[16:34:01] <tg> <@noktoborus> увы
[16:34:20] Ender вошёл(а) в комнату
[16:48:34] <tg> <@Devel29A> слуште, а вот если мне в map надо сортировать не по ключу, а по данным, мне же std::less надо расширять кастомным типом?
[16:49:02] <tg> <@Devel29A> Или как-то можно определиьт оператор в моей структурке?
[16:50:31] rafaelrs вышел(а) из комнаты
[16:53:06] <tg> <@ttldtor> нет, можешь определить оператор < или при создании мапы указать компаратор
[16:53:28] <tg> <@ttldtor> тьфу, то есть "да"
[16:54:11] <tg> <@ttldtor> а, не, гоню
[16:54:14] <tg> <@ttldtor> по ключу же
[16:56:34] ma1uta вышел(а) из комнаты
[16:59:43] <tg> <@ttldtor> @Devel29A зацени
https://www.youtube.com/watch?v=sbiF1HDcG7U
https://www.youtube.com/watch?v=dvLKY-oWqn0
[17:00:20] <tg> <@Devel29A> >> <ttldtor> тьфу, то есть "да"
А оно точно не по ключу попытается сравнить? мапа же по ключу
[17:00:36] <tg> <@ttldtor> >> <Devel29A> А оно точно не по ключу попытается сравнить? мапа же по ключу
кастомный компаратор заюзает
[17:00:40] <tg> <@ttldtor> что укажешь
[17:00:50] <tg> <@ttldtor> видосики раскрывают тему)
[17:00:58] <tg> <@Devel29A> Ок. Спасибо
[17:02:23] <tg> <@ttldtor> ещё можно навертеть компаратор через наследование от кучки лямбд
[17:04:09] <tg> <@ttldtor> https://www.youtube.com/watch?v=P6_6bXPGYy8
[17:06:18] <tg> <@Devel29A> >> <ttldtor> ещё можно навертеть компаратор через наследование от кучки лямбд
Ну, да, но я пока не стал упарываться до лямбд
[17:10:24] Ender вышел(а) из комнаты
[17:15:11] portnov вошёл(а) в комнату
[17:21:57] HazardPointer вошёл(а) в комнату
[18:06:38] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[18:06:42] uıʃɐɟ∀ вошёл(а) в комнату
[18:28:36] uıʃɐɟ∀ вышел(а) из комнаты: Replaced by new connection
[18:28:42] uıʃɐɟ∀ вошёл(а) в комнату
[19:01:52] spybull вошёл(а) в комнату
[19:08:17] ma1uta вышел(а) из комнаты: Replaced by new connection
[19:08:21] ma1uta вошёл(а) в комнату
[19:10:30] spybull вышел(а) из комнаты
[19:13:35] spybull вошёл(а) в комнату
[19:15:10] Minoru вошёл(а) в комнату
[19:17:47] spybull вышел(а) из комнаты
[19:34:58] spybull вошёл(а) в комнату
[19:44:05] spybull вышел(а) из комнаты: Replaced by new connection
[20:38:05] <Minoru> лайтовой музыки тебе, цодингтим: Leo Moracchioli & Mary Spender) — Fast Car (cover) https://www.youtube.com/watch?v=-c79K8USmWY
[20:47:22] Akon32 вошёл(а) в комнату
[20:52:44] <m4n71k0r> гм...
если метод возвращает некий индекс, то вы укажете возвращаемый тип:
1) std::optional<std::size_t> ?
2) std::size_t и будете кастовать -1 в std::size_t ?
2) Index<EntityType>, у которого будет куча хитрых операторов сравнения и всякие запреты на сравнивание с Index от другого EntityType?
[20:53:38] <O01eg> итераторы же
[20:54:28] <m4n71k0r> я как-нибудь напишу книгу про убогость итераторов, курсоров итд
[20:54:55] <m4n71k0r> ок, пусть будет итератор в списке
[20:58:37] <tg> <@Devel29A> невалидный индекс можно брать не -1 а максимальный
[20:58:46] <portnov> инженер от африканского клиента в жире жалобно так пишет: «коллеги, посмотрите плз задачу. Я тут у клиента, меня и съесть могут...»
[20:59:09] <tg> <@Devel29A> ахахахаха
[21:01:04] <tg> <@Devel29A> https://i.imgur.com/ORGCOO0.gifv
[21:02:14] <tg> <@ttldtor> >> <Devel29A> невалидный индекс можно брать не -1 а максимальный
это по аналогии с std::string::npos
[21:02:52] <Minoru> @Devel29A: size_t беззнаковый, (size_t)-1 это и есть максимальный индекс
[21:03:18] <tg> <@Devel29A> >> <Minoru> @Devel29A: size_t беззнаковый, (size_t)-1 это и есть максимальный индекс
Это хуйня
[21:03:37] <tg> <@Devel29A> во-первых кастовать надо куда-то
[21:03:48] <tg> <@Devel29A> во вторых у знаковых еще underflow есть
[21:03:52] <tg> <@Devel29A> нунахуй еще творить такое
[21:04:15] <tg> <@Devel29A> Тернер стебался на похожую тему
[21:04:48] <tg> <@ttldtor> почему не хочется возвращать итератор: дело в том, что метод может вернуть уже не индекс, а некий Result (чтобы не делать кортежи), а оборачивать итератор в стурктурку не хочется по каким-то странным соображениям
[21:05:47] <Minoru> m4n71k0r: короче, внутри класса я бы сделал std::optional<std::size_t>, а если в публичном интерфейсе — тогда EntityIndex (пока что без шаблона, потому что фиг знает, будут ли ещё такие индексы)
[21:05:55] <tg> <@Devel29A> https://youtu.be/PPAlh_FmO4M
[21:05:56] <Akon32> эксцепшен кидайте.
[21:06:27] <Akon32> это логичнее, чем знаковые числа в size_t.
[21:11:06] <Minoru> @Devel29A: хорошая ссылка, спасибо!
[21:11:25] <tg> <@Devel29A> У меня шаблон немного треснул от такого
[21:11:50] <Minoru> dat's yer standard C/C++ fuckery, mate
[21:12:01] <tg> <@Devel29A> лолда
[21:17:01] <ma1uta> Слышали про новый палиндром от ПФР?
[21:17:15] <ma1uta> "Оголи жопу пожилого".
[21:17:54] <Minoru> аккуратно, я вижу в твоём будущем политоту
[21:21:58] <tg> <@ttldtor> мне больше нравится неполитизированный околонаучный "Лазер Боре хер обрезал"
[21:22:24] <tg> <@ttldtor> ну почти неполитизированный
[21:26:34] <ma1uta> Научить ИИ генерировать палиндромы
[21:28:21] <Minoru> хм, а есть подходы к ИИ, которые что-то генерируют? Я думал, сейчас до рабочего состояния доведены только всякого рода классификаторы и обработчики
[21:29:12] <Minoru> ну т.е. сделать штуку, отвечающую на вопрос «палиндром ли это» можно, а такую, чтобы сама генерила — пока что нет (именно методами всяких machine learning и прочего похожего)
[21:30:13] <ma1uta> Есть же системы, которые пишут новую музыку или изменяют картины, дорисовывая что-нибудь.
[21:30:59] <ma1uta> https://bigpicture.ru/?p=656149 например
[21:51:29] Славный капитан вышел(а) из комнаты
[21:55:23] <tg> <@winged_pegasus> >> <Devel29A> https://i.imgur.com/ORGCOO0.gifv
Класс
[22:13:55] ma1uta вошёл(а) в комнату
[22:27:59] <m4n71k0r> а кто такой Алексей Кулешевич? Хаскелист?
[22:28:04] portnov вышел(а) из комнаты
[22:29:45] m4n71k0r вышел(а) из комнаты
[22:30:59] <Minoru> не слышал про такого
[22:32:52] <tg> <@noktoborus> Кто такой мантикор мантикорыч?
[22:33:02] <tg> <@noktoborus> >> <Minoru> не слышал про такого
Ты хотел пойти спать
[22:34:23] <Minoru> @noktoborus: мам, ещё минутку, сейчас тест допишу — и пойду!
[22:48:40] <tg> <@Devel29A> https://twitter.com/i/status/1098170202611769345
[22:50:39] <Minoru> @Devel29A: >:-(
[22:50:47] Minoru вышел(а) из комнаты
[22:58:58] <tg> <@Devel29A> https://meduza.io/short/2019/02/20/putin-ob-yasnil-zachem-izolirovat-rossiyskiy-internet-tsitata
[23:02:29] <tg> <@winged_pegasus> >> <Devel29A> https://meduza.io/short/2019/02/20/putin-ob-yasnil-zachem-izolirovat-rossiyskiy-internet-tsitata
А иди-ка в толксы?
[23:03:02] Akon32 вышел(а) из комнаты
[23:04:02] <tg> <@Devel29A> >> <winged_pegasus> А иди-ка в толксы?
Не умею переносить :(
[23:44:54] rafaelrs вошёл(а) в комнату
[23:50:25] ma1uta вышел(а) из комнаты
Powered by ejabberd - robust, scalable and extensible XMPP server Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!