dd if=/dev/stuff of=/dev/tg
Open in Telegram
Музыка: @randommusicilike 18+. По всем вопросам, кроме рекламы: @rsil_feedback_bot По вопросам рекламы (внимательно читайте приветственное сообщение): @rsil_ads_bot
Show more2 932
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
Давно не писал ничего, нужно исправлять ситуацию.
Опубликовал небольшую статью, рассчитанную на новичков, — разъяснение часто встречающихся терминов в среде ФП-разработчиков:
https://ybogomolov.me/fp-jargon-part-1
Это первая статья из небольшого цикла. Кроме того, в работе есть лонгрид (и лонграйт, по правде говоря) на тему корректного и типобезопасного моделирования данных — DDD, make illegal states unrepresentable, тайп-левел, вот это всё. Планирую её до конца квартала всё-таки дописать и опубликовать 🙃
Repost from N/a
Эмоциональный интеллект очень важный навык в нашем изменчивом мире. Его развитие откроет перед вами большое количество новых возможностей.
В четверг, 8 сентября, в 18:00 (UTC +3) я проведу вебинар «Эмоциональный интеллект и зачем он вам нужен». Вместе мы в деталях рассмотрим из чего он состоит и какие выгоды может вам дать его использование.
Трансляция пройдет тут https://youtu.be/XeilTW0vkFI
Присоединяйтесь!
Важная тема, без понимания которой лично я не вижу развития любого разработчика или управленца. Приходите послушать:
Я начинаю выкатывать первую итерацию блогпоста по истории ФП, надеюсь что у кого-нибудь будут какие-то замечания по первой главе
токо осторожно, там до первой главки по истории идет метаисторический выблев на пять экранов
https://gist.github.com/klapaucius/f0adec8a567b7bf000c8bcf99686a9bd
Вдогонку к этому списку — упрощенный тайпчекер TypeScript, реализованный только на уровне типов: https://github.com/ronami/HypeScript
Немного новостей.
1. Я наконец-то навсегда покинул Россию вместе с семьей. Сейчас мы в одном из крупных городов Испании, с нами всё хорошо. Впервые за многие годы я могу вздохнуть спокойно и чувствовать себя в безопасности.
2. Мои статьи на Хабре на русском более недоступны. Все материалы, которые я написал, доступны на английском языке на https://ybogomolov.me и будут только там.
И да, наконец-то я без страха могу написать то, что болело с начала войны:
Нет войне. Нет «русскому миру». Путин и его приближенные — военные преступники, которых должны судить в Гааге. Украïнцi, тримайтеся та борiться, за вами правда! 🇺🇦
Новая версия ресурса для изучения прувера TLA+: https://www.learntla.com
Пост автора о мотивации создания второй версии: https://www.hillelwayne.com/post/learntla
В эту пятницу я буду участвовать в небольшом ивенте «TypeScript. Твой код в опасности» от коммьюнити Vue.js:
https://wearecommunity.io/events/typescript-tvoi-kod-v-opasnosti
Поговорим на тему того, насколько тайпскрипт как язык может гарантировать безопасность исполняемого кода, затронем извечную холиварную в мире JS тему «типы vs. тесты», обсудим различные подводные камни той или иной позиции. Приходите, будет интересно 🙂
Repost from AlexTCH
https://proofassistants.stackexchange.com/a/940/333
This answer is golden, it links to all of the best materials on Type Theory and related subjects.
Перевел в текстовую форму свой доклад "Making Illegal States Unrepresentable in TypeScript": https://ybogomolov.me/making-illegal-states-unrepresentable
Сам доклад, если кто-то пропустил, можно найти здесь: https://www.youtube.com/watch?v=T7i2wlCqgJk
https://dlnext.acm.org/doi/abs/10.1145/3498886.3502201 Biri, [2022] "Dependent tagless final"
https://github.com/idris-lang/Idris2/blob/main/libs/papers/Language/Tagless.idr
Чуть было не забыл вбросить ссылку на отличный разбор этой фичи от Олега Нижникова:
https://medium.com/@odomontois/several-days-ago-we-saw-the-new-experimental-feature-called-capture-checking-was-announced-in-e4aa9bc4b3d1
https://dotty.epfl.ch/docs/reference/experimental/cc.html эксперимент по добавлению в Scala 3 capture checking, которые мне напомнили о языке Flix, в котором разделение между чистыми и сайд-эффектящими функциями сделано на уровне синтаксиса.
А еще показали вот такой экспериментальный набор расширений для exceptions as abilities: https://docs.scala-lang.org/scala3/reference/experimental/canthrow.html
Габриель Вольпе написал очень интересный пост о том, как в третьей скале можно обрабатывать ошибки без явного использования Either, используя только типы-суммы:
https://gvolpe.com/blog/error-handling-scala3
Язык, который привлекает мое внимание в последнее время всё больше и больше — Unison.
Из интересного:
1. наличие как структурной, так и номинальной типизации из коробки благодаря ключевым словам
structural и unique:
-- одинаковые типы:
structural type Maybe x = None | Just x
structural type Option x = Nothing | Some x
> Just 5 === Some 5
⧩
true
-- разные типы:
unique type Maybe x = None | Just x
unique type Option x = Nothing | Some x
> Just 5 === Some 5
The mismatch is because these types differ:
Option
Maybe
2. Наличие алгебраических эффектов в виде abilities:
f : '{Gen} Text
f = gen.Text.ascii
g : Text -> '{IO, Exception} ()
g txt = '(printLine txt)
-- abilities в композиции функций являются суммой abilities частей:
f_g : '{Gen, IO, Exception} ()
f_g = '(!(g !f))
3. Хранение кода в виде AST — что делает кэширование/мемоизацию/рефакторинг/поиск/etc гораздо более простым и мощным, нежели в случае хранения кода в виде текста. Это позволяет делать разные интересные штуки — вроде ускорения сборки кода благодаря закэшированным результатам сборки используемых частей библиотек.
Хороший обзор Unison сделал Рунар Бьярнасон в выступлении на Lambda Jam’21: https://www.youtube.com/watch?v=DF6zt0Q-pz4. Также могу смело порекомендовать отличную статью из их блога о том, как написать распределенную Spark-like структуру данных: https://www.unison-lang.org/articles/distributed-datasets.