Крылатый
Никто не смотрел норвежский сериал Оккупированные?
Там нет раша на Ла-Манш, так что сразу неинтересно.
Крылатый
> Норвегия, ввиду климатических изменений, полностью прекращает добычу нефти, планируя заменить её ториевой энергетикой. Вот это уже не очень реалистично, кстати. У них же вообще нет атомной промки, откуда взяться компетенциям в гибридных ториевых реакторах?)
Bonart
Там прикольно, насколько разумно, конструктивно и гуманно действуют русские. А у норвежского сопротивления самый нормальный представитель - малолетний чеченский психопат
Anatoly
https://cdn.discordapp.com/attachments/712695309863485492/724342975563431966/IMG_20200621_222001.jpg вот вам вчерашнего ужина. соус из смородинового варенья, груши, лука, перца и чеснока
Bonart
Ну вот, через политоту к кулинарии :)
Anatoly
(готовила жена, не я)
Анна
Отлично, давайте про кулинарию!
Анна
Крылатый
Анна
Правда у меня последнее время сил готовить особо и нет 🌚
Mikhαil
Отлично, давайте про кулинарию!
Давайте. Заказал тефаль оптигриль чтобы кушать более менее здоровую еду коль уж удаленка пока продолжается
Vasily
Чо ее фотать, ее есть надо
Анна
Чтобы вместо политоты обсуждать фотки еды!
Mikhαil
фотаньки еды надо!
Планирую к вечеру стейк из тунца делать - скину если норм получится
Dmitry
пытаюсь в совершенстве научиться готовить пасту+копченная курица+томаты+томаты в своем соку+маслины+тыквенные семечки+специи пока что все время перебор с пастой, но по вкусу все равно неплохо
Vasily
Откуда у народа столько времени?
Vasily
Хотя я в субботу готовил стейки на мангале
Anatoly
Откуда у народа столько времени?
ну ты берёшь, заканчиваешь работать в 7
Vagif
Еда и едок
Vasily
Получились прекрасно, как обычно
Anatoly
берёшь ребёнка, играешь с ним. а жена еду готовит
Dmitry
что значит перебор с пастой?
пасты больше, чем добавки (доабавка - это приготовленный "соус" из всех остальных ингридиентов)
Анна
Еда и едок
какой знатный котейка!
Vasily
Мейнкун
Vagif
Да, мейнкун
Анна
сразу видно, что это люди принадлежать коту, а не наоборот
Vasily
У меня вот мечта, когда откроются рестораны, придти в ресторан, сесть за столик, а дальше как-то мечты заканчиваются
Mikhαil
(но я бы пока не пошёл конечно)
Анна
так позвать официанта и сказать, сделай красиво и вкусно :D
в Минске знаю несколько мест, где именно красиво и вкусно 🤔
Vasily
приезжай в Минск, тут работают 🌚
Ну вот ща немного устаканится все, выберусь
Анна
Ну вот ща немного устаканится все, выберусь
можешь экстремально, как в статье что я кинула 😂
Anatoly
можно ещё с собакой играть час-два
Dmitry
У меня вот мечта, когда откроются рестораны, придти в ресторан, сесть за столик, а дальше как-то мечты заканчиваются
А мне грустно от того, что за все 4 месяца изоляции у меня не появилось желания куда-то пойти :c
Anonymous
короче, сценарий: есть ну просто ОЧЕНЬ чистая функция, которая решает какую-либо проблему домена. все отлично, пока работу это чистой функции не нужно логгировать, но вообще ведь нужно. и тут два варианта: либо допустить разумную меру нечистоты, пробросив логгер как параметр, либо через тернии устремиться к звездам и вместо f: A -> B возвращать f: A -> B, [Actions], где Actions - местный тип-метаописание действий, которые должны быть выполнены где-то вовне, в условном IO. кто-то второй подход активно использует у себя?
Max xbim 🌴
а зачем логирование внутри функции если она чистая?
Anonymous
чтоб на бизнес-инцидентах всякие там аналитики могли отследить все, что происходило. например, у тебя может быть какой-то if внутри и тебе нужна РАЗНАЯ запись в ллогах в зависимости от того в какой из бренчей ты попал.
Ayrat
а зачем логирование внутри функции если она чистая?
Скалисты логирование тоже через дырку делают
Mark
Про логирование надо помнить, что оно превращает простой и понятный код в сложный и непонятный.
Ayrat
Скалисты логирование тоже через дырку делают
Уточню. Ебанутые скалисты пишут логгер через дырку. Нормальные используют асинхронный, не кидающий исключений логгер и всё ок
Mark
Но если уж и правда надо, то стандартный подход к "чистому" логированию это монада Writer.
Anonymous
а в F# придется же явно везде передавать
Anonymous
а как напеЙсать логгер через дырку я ваще нипонял
Mark
Ну вот этот список действий [Action] это как раз оно. На каждом шаге генерируешь не только результат, но и запись Action, и на выходе имеешь список того, что было.
Anonymous
но тащить такое в прод я не готов - тут люди еле-еле в async могут. какие монады? навредит только.
Mark
Можно не называть это монадой :)
Ayrat
потому что у них implicit(logger: Logger) и нет проблем
да не, там лучше есть class Foo with LazyLogging { info “abc” }
Ayrat
ну то есть зачем имплиситы если можно прям тупо повесить трейт
Ayrat
в этом плане скала местами прям ОКЕЙ
Ayrat
я бы такое в фшарпе хотел
Ayrat
ну, это и есть тайпклассы да
Anonymous
да, выглядит добротно.
Ayrat
но вот любители пологировать через дырку для меня все дружно попадают в категорию уебанов, не могу ничего с собой поделать
Ayrat
если что, там это так выглядит def foo[T: Async, Par, Monad, ……., Logger](…) = for { abc <- … _ <- implicitly[Logger].info “abc” } yield abc
Anonymous
ну Хаскелисты ж
Anonymous
что с них взять
Ayrat
во, дописал
Anonymous
в принципе, ничего такого плохого с [Actions] я не вижу, кроме того, что МНОГАБУКАФ
Anonymous
что-то не вижу, monad stack
Anonymous
как же IO?
Ayrat
как же IO?
слишком абстрактно, у них щас мода на более гранулярные тайпклассы идёт
Ayrat
типа вот Par, Async и пр
Ayrat
всё так.
Anonymous
скоро начнут гнать староверов.