dd if=/dev/stuff of=/dev/tg – Telegram
dd if=/dev/stuff of=/dev/tg
2.59K subscribers
348 photos
5 videos
7 files
563 links
Музыка: @randommusicilike

18+. По всем вопросам, кроме рекламы: @rsil_feedback_bot

По вопросам рекламы (внимательно читайте приветственное сообщение): @rsil_ads_bot
Download Telegram
Не смог пройти мимо такой красоты
[×] Ваше регулярное напоминание, что Профунктор Оптикс пидары
Ладно, теперь обратно к серьезным вещам.
Замечательные ребята из Kowainik (Дмитрий Коваников и Вероника Ромашкина) недавно написали шикарный пост про derivation strategies:
https://kowainik.github.io/posts/deriving
Очень рекомендую — они и пишут хорошо, и подробно разбирают темы. Один из топовых просветительских блогов по хаскелю в моем личном рейтинге!
Похоже, не весь запас хтони я еще исчерпал на сегодня.
(via)
Forwarded from Anton Trunov
Конференция DISC-2020 проводится онлайн. При конфе будет воркшоп по TLA+. Для зрителей есть бесплатная (но обязательная) регистрация: http://www.disc-conference.org/wp/disc2020/registration/.
Страница воркшопа: http://conf.tlapl.us/home/?
Anton Trunov
Конференция DISC-2020 проводится онлайн. При конфе будет воркшоп по TLA+. Для зрителей есть бесплатная (но обязательная) регистрация: http://www.disc-conference.org/wp/disc2020/registration/. Страница воркшопа: http://conf.tlapl.us/home/?
Отдельно хочу прокомментировать эту новость. TLA⁺ — это язык спецификации, основанный на темпоральной логике действий, что позволяет описывать и верифицировать корректность распределенных систем, моделируя их поведение во времени. Есть отличный доклад от команды Elasticsearch о том, как они с помощью модели на TLA⁺ нашли и исправили ошибку, которая воспроизводилась только в сложных высококонкурентных сценариях. Это уже не «фантазии академиков в башнях из слоновой кости», а самый что ни есть реальный, прагматичный и прикладной способ повышать надежность ПО.
В общем, если вы занимаетесь распределенными системами или системами реального времени, есть смысл поучаствовать. Кто знает, вдруг через какое-то время на месте ребят из Elastic будете именно вы рассказывать, как улучшили ваш проект с помощью методов формальной верификации 😉
Только что узнал, что не стало моего друга Гриши, с которым мы делали видеоподкаст «ФП для чайника». Уже не доделаем.
Говорят, что для продуктивной работы знать теорию категорий и теорию типов не нужно, а порой даже вредно — причем даже если пишете на хаскеле, где половина стандартной библиотеки щеголяет терминами из теорката. Клепать опердени, перекладывая джейсоны из кафки в постгрю, можно без малейшего понимания, чем является левое сопряжение к забывающему функтору.

Но при этом знание таких вещей радикальным образом расширяет не только кругозор, но и позволяет придумывать новые очень крутые вещи. Например, есть такая конструкция как селективный (выбирающий?) функтор (selective functor) — «подумаешь, еще одна абстрактная хрень, кому она нужна», всё такое. Но, взяв эти функторы за основу, была написана очень изящная библиотека Parsley, о которой ее автор рассказывал на недавнем MuniHac. Или знание о симметричных моноидальных категориях позволило Олегу Нижникову сделать библиотеку Volga, которая позволяет упростить построение и оптимизацию вычислений в распределенных системах.

С другой стороны — в самом начале теоркат и правда больше вреден, чем полезен. Есть большой соблазн начать сыпать терминологией и концепциями без соотнесения их с реальностью, контекстом и вычислительными ограничениями. Я считаю, что не знаю теорию категорий хоть сколь-нибудь вменяемо, поэтому очень аккуратно стараюсь притягивать рассуждения из нее в обыденное программирование, но даже те знания, что есть, помогают в голове выстраивать более цельную картину и видеть новые связи.

Значит ли это, что всем поголовно надо начать заниматься математикой? Да ни в коем случае. У каждого свой путь и свои подходы, которые заставляют понимание «щелкнуть». Но я надеюсь, что примеры выше еще раз покажут, что насмехаться над «академиками в башнях из слоновой кости», по меньшей мере, неразумно.
Forwarded from Oleg ℕižnik
Я для себя понял, что если воспринимать любые абстракции просто из их формального определения, то со временем это будет приводить к ужасной неоптимальности, вплоть до полной неспособности пользоваться.
Чутка если копнуть теоркат, там миллион примеров определений, которые даются десятью непохожими друг на друга способами.
Нужно сидеть часами понимать, почему эти определения - одно и то же.
Зато, когда склеиваются - сразу появляется какая-то волшебная область, которую можно расширять, как буддистский пруд
Forwarded from Oleg ℕižnik
Поэтому в CS часто бывают штуки, которые начинают вот так "склеиваться" или "ветвиться" или ещё что-то. Ты начинаешь подозревать, что они соотносятся с какой-то абстракцией, без ассоциаций это подозрение не возникнет. И только после того, как покопаешь подозрение, что-то может родиться полезное
В четверг Владислав Завьялов расскажет, как писать на хаскеле GUI-приложения:
https://serokell.io/blog/gui-programming-talk
Новый моноширинный шрифт JuliaMono, заточенный под программирование и содержащий больше 10к глифов Юникода: https://juliamono.netlify.app
Мой билд Iosevka все равно пока нравится больше, конечно, но JuliaMono выглядит очень приятно и уж явно не хуже JetBrains Mono.
Система эффектов in-other-words, целью которой является представление эффектов выших порядков и решение проблемы O(n²) инстансов:
https://github.com/KingoftheHomeless/in-other-words
Павел Дуров поделился 7 секретами вечной молодости:

1. Наличие однопараметрического типа Т
2. Наличие аппликативного функтора для типа Т
3. Наличие функции return
4. Наличие функций join или bind
5. Закон левой идентичности
6. Закон правой идентичности
7. Закон ассоциативности