Vasiliy
Дней десять.
ох, мать моя родная. у меня только 2 дня пока что высокая температура.
Vasiliy
а я надеялся что она не долго будет. У девушки вообще 37 ровненько
Denis
у меня 38.2 второй день )
Denis
но вроде не ковид
Vlæd
ох, мать моя родная. у меня только 2 дня пока что высокая температура.
У меня коллега заболел, ни температуры, ни кашля, только потеря обоняния...4 месяца уже...
Vlæd
Тесты отрицательные уже второй месяц, обоняние не вернулось.
gsomix
Береги силы!
А я уже завтра собрался аспнет учить!
gsomix
Пока на больничном. 🤔
Denis
Возьми Falco
Denis
а то чел пилит
Denis
а никто его не юзает
Denis
мне за него немного обидно
gsomix
Возьми Falco
Да мне для C#.
Анна
А я уже завтра собрался аспнет учить!
Это норм, правда иногда говорят по мозгам даёт ковидла, так что не пугайся если что
gsomix
А теперь я понял. Несколько дней назад готовил запеканку, но ошибся в два раза с количеством творога.
gsomix
Получился манник.
Анна
А теперь я понял. Несколько дней назад готовил запеканку, но ошибся в два раза с количеством творога.
Легко могло быть оно. Кто-то говорит, что задумывается над тем, как заварить чай
gsomix
@AnutaU Спасибо за предупреждение!
Анна
@AnutaU Спасибо за предупреждение!
Выздоравливай скорей и без последствий!
Ilya
Что же будет, если я в обычное время задумываюсь, как заварить чай...
Анна
Ну типа не просто задумываются, а прямо эээ трудно
Vasily
Я не понял, гсомикс из чата выходил, чтобы никого не заразить?
Vasiliy
https://www.youtube.com/watch?v=vQFvX7I6Ihw
Hog
Какая жава убогая!
Анна
https://www.youtube.com/watch?v=vQFvX7I6Ihw
Фу противный видос
Hog
Касты на каждом шаге обработки стрима замучился писать. @omgszer - что я делаю не так? :)
Stas
кто уже Валхалу прошел, скок там по времени надо на фулку сюжета?
Vasily
Чисто сюжет?
Vasily
Часов 60 , не больше
Stas
Часов 60 , не больше
збс, как раз на нг
Vasily
у меня получилось примерно 110 с зачисткой около 85%
Shub
Ну ничего, страдай с жавой. На котлине все было бы ок
Врети, что жава, что котлин - два субъекта теоремы Эскобара
Oleksandr
https://youtu.be/RaI3gEHF5Hg
Oleksandr
Вы тут недавно кибербаг2077 обсуждали)
Evgen
https://youtu.be/RaI3gEHF5Hg
Нда, я бы понял если бы на консолей не было в принципе графонистых игр. А так халтура
Vagif
Два дня ломал голову над проблемой после перехода на .NET 5, вместе с которым мы обновили несколько нугетов, включая клиент Раббита. Время от времени входящие сообщения из очередей RabbitMQ оказывались запорченными. Прямо мусор какой-то в теле сообщения. Подобных проблем не видел лет десять как минимум, мы ж в дотнете с managed memory работаем. После долгих поисков выяснилось, что .NET 5 здесь, разумеется, не при чем (я его и не подозревал), а причем изменение апи раббита, который вместо byte array теперь работает с ReadOnlyMemory. И строго предупреждает, что получив эту память нужно ее вначале записать в свои данные, а потом уже возвращаться из callback'а. А у нас, поскольку акторы везде, в одном месте это поле ReadOnlyMemory напрямую послали в другой актор. Со всеми вытекающими последствиями.
Vagif
Собственно ничего удивительного не произошло. Получил по заслугам. Но по идее с таким должны многие столкнуться с появлением возможности встраивать в свой API unmanaged memory.
Vagif
Но создателей апи Раббита понимаю - у них быстротат на первом месте, все чертовски быстро работает, им сам бог велел давать ссылки на такую память, а не копии возвращать
Vagif
Но практику опасную создает.
Vladimir
Два дня ломал голову над проблемой после перехода на .NET 5, вместе с которым мы обновили несколько нугетов, включая клиент Раббита. Время от времени входящие сообщения из очередей RabbitMQ оказывались запорченными. Прямо мусор какой-то в теле сообщения. Подобных проблем не видел лет десять как минимум, мы ж в дотнете с managed memory работаем. После долгих поисков выяснилось, что .NET 5 здесь, разумеется, не при чем (я его и не подозревал), а причем изменение апи раббита, который вместо byte array теперь работает с ReadOnlyMemory. И строго предупреждает, что получив эту память нужно ее вначале записать в свои данные, а потом уже возвращаться из callback'а. А у нас, поскольку акторы везде, в одном месте это поле ReadOnlyMemory напрямую послали в другой актор. Со всеми вытекающими последствиями.
так тут же наверное проблема не в ReadOnlyMemory, а то что рэбит скорее всего пулинг стал юзать
Крылатый
https://twitter.com/CyberpunkGame/status/1013883730929340418?s=20
Vagif
так тут же наверное проблема не в ReadOnlyMemory, а то что рэбит скорее всего пулинг стал юзать
Ну на моей стороне проблема проявляется в том, что я в другой поток посылаю ReadOnlyMemory
Vladimir
от этого не должно ничего сломаться) проблема что ты передаешь без копирования, а на коллбэке они чистят или переиспользуют эту память.
Vladimir
Ты можешь скопировать в другую ReadOnlyMemory и передавать ее между потоками сколько влезет)
Vladimir
такой же "баг" есть у нового жсон сериализатора, они делают точно так же) Поэтому там не удается распаршенный жсон никуда передать, только сразу же в какой-то объект преобразовывать
Ayrat
а вот были бы линейные типы...
Ayrat
такого бага не было бы
Vagif
от этого не должно ничего сломаться) проблема что ты передаешь без копирования, а на коллбэке они чистят или переиспользуют эту память.
Да, разумеется, все дело в этом. Но обычно в апи в дотнете тебе приходят данные, к которым ты можешь комфортно обращаться когда угодно.
Ayrat
требую тлдр)
в линейных типах можно на уровне типа задать число его использований например у меня сигнатура вида T 2 -> T 1 это значит что мне надо принять некий тип у которого есть 2 заряда передачи по ссылке а мне надо вернуть такой же тип с одним зарядом Это значит что я обязан написать функцию которая использует один заряд
Vagif
И даже если тебе приходит референс-тип, постольку поскольку ты его не трогаешь, обращайся к нему хоть откуда. Здесь же нужно быть начеку - в данные могут в любой момент (после возврата коллбэка) что-то еще написать.
Vagif
Я не знал, что такое линейные типы
Ayrat
вот это жесть)
или вот A 1 -> B 1 мне дают ридонли спан с ОДНОЙ возможностью его использовать (записать или прочитать) мне надо вернуть другой тип с ОДНОЙ возможностью его использовать
Vladimir
И даже если тебе приходит референс-тип, постольку поскольку ты его не трогаешь, обращайся к нему хоть откуда. Здесь же нужно быть начеку - в данные могут в любой момент (после возврата коллбэка) что-то еще написать.
в обычном апи тоже, либа может байтовый массив сама изменить если захочет) мало того, я так даже в пульсаре делаю - объект возвращаю, часть которого либа может менять сама позже
Ayrat
по сути наши типы именно такие с точки зрения линейной алгебры
Ayrat
если не хочешь ебать мозг - изи
Ayrat
а хочешь строгости - ограничивай
Ayrat
там есть те самые линейные типы
Ayrat
использовать больно, но баги предовтвращает
Vladimir
так а так получается неьлзя писать let x = xSOdnimZariadom() a(x) b(x) откуда мы знаем попытались ли в a и b прочитать x?
Doge
вот это жесть)
Раст на ослабленной версии линейных типов работает, например
Vladimir
сигнатура показывает собирается ли функция использовать заряд?
Ayrat
ну типа если она хочет пасс бай валуе - все ок, копируем и используем если бай реф - тратим заряд
Vladimir
аа, понял
Doge
Где у тебя каждое значение можно использовать один или ноль раз
Ayrat
Доге на страже