Loser story
901 subscribers
153 photos
22 files
142 links
Пишу всякое интересное про распределенные системы, базы данных и тд
https://github.com/MBkkt
Download Telegram
Как именно вы бы обработали то, что список может измениться?
Ну кажется тупое решение очевидно, скопировать список перед нотификациями, но это кажется дорогим.

Из того, что мне пришло в голову это помимо списка наблюдателей, завести список действий добавить/удалить/етс наблюдателя и выполнять его в начале метода notify

На работе у нас используется первый подход, с некоторыми оптимизациями, например наблюдатели копируются в small_vector, если их немного он не полезет в кучу и сохранит их на стеке.
https://gist.github.com/zeux/3ce4fcc3a43072b4315abde95319ecb6
Прикольные замеры, хотя я и полностью солидарен с тем что какой-нибудь хромиум куда интереснее.
Кст библиотека meshoptimizer тоже выглядит интересной, но пока не разбирался подробно
Почему все баги над которыми я долго страдаю такие тупые?
Прикольный пост про преподавание проги https://vas3k.club/post/938, я не препод, но был студентом на многих курсах, и как студент согласен практически со всем
https://www.ralfj.de/blog/2020/12/14/provenance.html интересный пост про баг в оптимизации ир, ну и собственно что с этим можно сделать. Ну а возникает из-за того что компилятор учитывает то что указатели это не просто числа
Loser story
10.1.1.59.3971.pdf
Наткнулся на любопытный вариант имеющий смысл для линий толщина которых зависит от масштаба: https://www.imaginationtech.com/blog/grlaa-for-anti-aliasing-in-nav-applications
Вообще вопрос известный, например есть глава в гемсах древних на тему:
https://developer.nvidia.com/gpugems/gpugems2/part-iii-high-quality-rendering/chapter-22-fast-prefiltered-lines
Хотя сейчас не советую рисовать линии как gl_lines так как нельзя за один вызов отрисовать линии разной толщины и главное LineWidth гарантированно поддерживает только 1, ну в большинстве случаев 1 <= x <= 10, но даже так с не целыми будет убого.

Собственно я чего старые ссылки начал смотреть, сегодня про это вспоминал и вот решил убедится что не наврал нигде.

Вообще меня привлекает идея рисовать gl_lines, а потом в геометрическом шейдере превращать их в триангл стрипы, но я не попробовал так, с не которым шансом это довольно убого будет, в skia path renderer несколько похожий подход, правда они тессилируют (писал про это выше немного) путь в набор треугольников, ну там сложнее потому что рассчитано и на кривые безье например плюс у них довольно высокие требования по гладкости получаемых линий (по крайне мере в пейперах, ну и выглядит красиво)
https://xn--r1a.website/korovany/911 тут про пиратство, но мне вот другое любопытно, как вы относитесь к пиратству книжек?

Поясню, в целом мне кажется я бы вполне мог покупать те книги, которые прочитал целиком. Но слишком сложно заставить себя тратить деньги, когда я с таким же удобством могу скачать pdf бесплатно.

Например я покупаю игры в стиме не потому что я какой-то очень порядочный, а скорее потому что мне удобно иметь библиотеку в одном месте, легко запускать и устанавливать, нет необходимости как правило лазать по раздачам, есть скидки, ну и приятно что купил, а не спиратил, с книгами же только один пункт, ещё и стоят обычно дофига(

И в целом я к чему веду, почему для книг не придумали чего-то что дало мне больше чем просто нужная пдфка? Или придумали но я не в курсе?

Вообще речь шла скорее про техническую литературу, но отчасти можно наверно и не только про нее так написать, просто ее я почти не читаю
В общем я тут побывал на собесах, что спрашивали: много всего про плюсы, найти среднее на slice window, бинпоиск, про вертикальную ось симметрии на Z^2, была задача на дизайн сервиса для подсказок пользователю текста на основе уже введённой строки и баунд бокса экрана и возможно позиции пользователя, ещё было на дизайн сервиса для ci, который запускает бенчмарки на девайсах и выдает статистику.

В собесе про рендер в основном говорили про то что делал я, да и в целом кажется довольно много рассказывал про то что делал.

В общем ничего страшного зря повторял математику и нетривиальные алгоритмы.

Получил оффер от мейла, нужно будет писать рендер тайловых карт, в общем попозже напишу немного и про это и про свою работу wartsila
https://github.com/alex/what-happens-when в одном месте кинули ссылку, я ожидал что будет любопытно, но мне не понравилось. https://github.com/vasanthk/how-web-works а вот это прочитать было интереснее, хоть и видно что это частично копипаста
О это про меня в том смысле что сейчас ухожу с работы и написал кучу туду, правда пришлось таски по ним ещё завести
Ну все, я официально безработный
Loser story
В общем я тут побывал на собесах, что спрашивали: много всего про плюсы, найти среднее на slice window, бинпоиск, про вертикальную ось симметрии на Z^2, была задача на дизайн сервиса для подсказок пользователю текста на основе уже введённой строки и баунд…
В общем пишу про работу тут, в целом почти все над чем я работал, особенно после стажки было очень интересным, например почти весь последний год писал новый рендер картографии, где-то даже успели на него перейти уже, а с декабря делал (уже не один правда) рендер погоды. Немного обидно что у нас не опенсурс, я бы хотел посмотреть что там дальше будет.
В целом было классно, пожалуй главные минусы лично для меня это зарплата, ну и немного раздражало отсутствие экспертизы, и при этом завышенное чсв у некоторых коллег, но наверное неприятные коллеги могут быть везде, в основном все нормальные были.

В мейле буду писать с нуля рендер тайловых карт (open street map формат, опенсурс аналоги mapbox gl native, omim), правда тут уже на vulkan и metal. Кажется я первый чел которого они набрали в команду рендера, так что мб если знаете кого-то кому интересно, говорили будут ещё набирать. Немного стремно прям совсем с нуля проект, на старой работе было хотя бы все вокруг рендера, но думаю все получится, да и в целом очень интересный опыт.
Loser story
Вы никогда не задумывались над такой штукой: часто бывает в плюсах, что некоторые объекты создаются только как указатель в куче, и иногда такие объекты содержат массив фиксированного, но к сожалению известного только в рантайме размера, в таком кейсе вообще…
В общем история имеет продолжение, в llvm существует класс реализующий такой паттерн:
https://llvm.org/doxygen/TrailingObjects_8h.html

Сама идея тривиальна, давайте вместо аллокации под структуру с указателями и отдельными аллокациями на каждый массив сделаем одну большую аллокацию под все массивы + структуру.
Получим 1 аллокацию вместо н + 1, плюс уменьшаем уровень косвенности для доступа к массивам. В llvm написали обертку за которой скрыли вычисления размера аллокации и соответственно адреса по которым валидно обращаться, с учётом выравнивания.

В си для одного массива такое сделать попроще, называется flexible array member.

Лично я к сожалению костылил для одного конкретного кейса такое и не делал общего паттерна, круто если кто-то знает/сделает хорошую опенсурс мит реализацию, мне кажется довольно популярный и красивый кейс.
Блин все эти переименования чатов, жесть, я чуть не вышел с парочки на автомате
Как же я проиграл
Loser story
Как же я проиграл
А вам нравится писать тесты? (Понятно что нужно вопрос в другом)
Anonymous Poll
43%
Да
57%
Нет
У этого кота явно плохо развитое чувство опасности