Поучаствовал в очередном контесте от Телеграма. Как обычно, мутно, с неполными условиями по оцениванию, но всё как в настоящей жизни, им нужна классификация публичных каналов с >=1000 подписчиков и нулевой разметкой на 42 категории для рекламы. Всё это ещё и на C++ (а лучше вообще на C). Решение у меня получилось необычным, как выложут результаты и если что-то займу, расскажу.



Ну а так, конечно, нескольких необычных деталей



1. Категории в предоставленном тестере и в условии задачи отличаются в двух местах, ещё попробуй потом найти несоответствие в оценках

2. Огромное количество шлака в каналах, 10 категорий составляют примерно 90% всех каналов, 14 категорий составляют 98%. Крипта, ставки, бинарные опционы, стабильно проскальзывает порно и наркотики. Задумываешься после этого, есть ли вообще модерация у Телеграма, много накрученных и hate speech каналов. На русском языке ситуация получше

3. В тестере молодцы ребята в хедер файле с интерфейсом опубликовали глобальную переменную, так ещё и с санитайзером падает их код. :)

4. Наткнулся на баг в jq (дада, самая популярная тулза по json в bash), получал поломанные json. https://github.com/stedolan/jq/issues/2259

5. Уронил clang-7 (когда как 11й работает безупречно) в internal compiler error на Debian 10.1 Buster (они на таком старом дебиане тестируют), пришлось всё таки пользоваться gcc и платить 2% штрафом по перфу

6. Нашёл тучу багов в compile time regular expressions, опубликую их как руки дайдут, пересел просто на boost::regex

7. Конечно же, никаких ответов на вопросы. Никакой инструкции в спорных случаях категорий

8. Не дали доступа к картинкам и прикрепленным файлам. И с другой стороны хотят детектить каналы с музыкой и видео, в итоге они имеют по 3 слова в названии и если повезёт, там будет слово "Music" или "Video"

9. Не обошлось проблем с кодировками и локалями, классика

10. Я записал первые 10 часов работы на камеру, но так как я очень люблю концентрироваться, там просто написание кода и мои молчаливые хождения по комнате



В любом случае, я наконец-то хорошо себя чувствовал 2 недели, был счастлив, что загружен по полной (вместе с работой). Давно не ощущал flow, наверное, месяца 4 уже. Суммарно потратил за две недели на этот контест часов 60-70