Вместе с моим замечательным другом Григорием Ситниным начали небольшой проект под рабочим названием «Функциональное программирование для чайника». Начали с нуля и постепенно будем продвигаться к более сложным темам. Гриша — ярый прагматик, так что он не дает мне слишком ударяться в математику.
Пилотный выпуск выкладываю в виде готовой записи, дальше будут просто лайв-стримы: https://www.youtube.com/watch?v=XLknNzYL2ks
Следите за анонсами 🙂 Ну и если будет обратная связь — пишите в личку, я буду рад.
Пилотный выпуск выкладываю в виде готовой записи, дальше будут просто лайв-стримы: https://www.youtube.com/watch?v=XLknNzYL2ks
Следите за анонсами 🙂 Ну и если будет обратная связь — пишите в личку, я буду рад.
https://alcestes.github.io/effpi/ — Akka здорового человека 🙂
Мне чем-то напомнило то, как Эдвин Брэйди в докладе про Idris 2 описывал некий протокол, у которого последовательность сообщений была прописана на уровне типов.
Мне чем-то напомнило то, как Эдвин Брэйди в докладе про Idris 2 описывал некий протокол, у которого последовательность сообщений была прописана на уровне типов.
alcestes.github.io
Effpi: verified message-passing programs in Dotty
A toolkit for strongly-typed, verified concurrent and distributed programming in Dotty
Набросал гист с «сессионными типами нищеброда™» для TypeScript.
Сессионные типы — это способ описания протоколов клиент-серверного взаимодействия, не позволяющий использовать протокол ненадлежащим образом. Основная информация о них обитает здесь, там же лежат реализации сессионных типов для разных языков — от AST и Haskell до Scala и Rust.
В идеальном случае, сессионные типы должен поддерживать компилятор. На практике же клепаются костыли в виде сторонних чекеров (как в упомянутом ранее Effpi или в Gong), ну или проверяют в рантайме.
У нас в тайпскрипте из выразительных возможностей, позволяющих хоть сколь-нибудь удобно выражать сессионные типы, нет ничего — даже рекурсивных типов, лол. Тем не менее, заставить компилятор генерировать тип дуального канала мне удалось, равно как и проверять совместимость клиента и сервера.
Сессионные типы — это способ описания протоколов клиент-серверного взаимодействия, не позволяющий использовать протокол ненадлежащим образом. Основная информация о них обитает здесь, там же лежат реализации сессионных типов для разных языков — от AST и Haskell до Scala и Rust.
В идеальном случае, сессионные типы должен поддерживать компилятор. На практике же клепаются костыли в виде сторонних чекеров (как в упомянутом ранее Effpi или в Gong), ну или проверяют в рантайме.
У нас в тайпскрипте из выразительных возможностей, позволяющих хоть сколь-нибудь удобно выражать сессионные типы, нет ничего — даже рекурсивных типов, лол. Тем не менее, заставить компилятор генерировать тип дуального канала мне удалось, равно как и проверять совместимость клиента и сервера.
Gist
Session types for TypeScript
Session types for TypeScript. GitHub Gist: instantly share code, notes, and snippets.
Forwarded from Вебня (Ҫѐҏӗѫӑ Ҹҋ 🤖)
Эрик Лоуренс (Microsoft Edge) о включении Same-Site Cookies по умолчанию в Chrome 80, а также о том:
- как эта директива (а также
- что может пойти не так
- каков план отката
- как проверить свой сайт на готовность к
- других возможных проблемах (Safari 12, .NET Framework)
- что об этом думают другие вендоры браузеров
Бонус:
- статья о SameSite cookies от Google
- поддержка SameSite в браузерах на CanIUse
- как эта директива (а также
secure и httponly) поможет с приватностью и безопасностью: запретит куки от третьих лиц, предотвратит CSRF, MiTM атаки, XSS атаки- что может пойти не так
- каков план отката
- как проверить свой сайт на готовность к
SameSite используя Chrome DevTools- других возможных проблемах (Safari 12, .NET Framework)
- что об этом думают другие вендоры браузеров
Бонус:
- статья о SameSite cookies от Google
- поддержка SameSite в браузерах на CanIUse
text/plain
Same-Site Cookies By Default
The Chrome team is embarking on a clever and bold plan to change the recipe for cookies. It’s one of the most consequential changes to the web platform in almost a decade, but with any luck, …
Forwarded from Aleksandr Vershilov
Подписчик показал классный канал, в котором публикуются анонсы на различные IT-мероприятия. В частности, 2 ноября пройдет осенний ITsubbotnik — я на нём буду рассказывать про тайплевел-программирование на TypeScript (с учетом новейших фич грядущего релиза 3.7!). Если кто-то захочет прийти и пообщаться — я буду рад :)
Forwarded from IT Meeting - митапы и конференции по разработке
#ITSUBBOTNIK AUTUMN 2019
2 ноября 11.00-16.00, Суббота
Deworkacy, Красный Октябрь, Берсеневская наб., 6 строение 3
Конференция будет проходить в несколько потоков: JAVA | FRONT-END | TEST AUTOMATION | DEVOPS | BA
Предварительная программа
11:00 Регистрация
11:30 Приветственное слово (Конференц-зал)
11:45
- UI Test Automation and CI for an HTML5 Canvas based system (TEST AUTOMATION | DEVOPS, Библиотека)
- Вы готовы заключить API-контракт? (JAVA, Конференц-зал)
- Программирование на уровне типов на TypeScript: выжимаем из компилятора все соки (FRONT-END, Малый лекторий)
- Страховка для всемогущего аналитика (BA, Большой лекторий)
12:40
- API First Approach & API Management solutions (JAVA, Конференц-зал)
- Multiplatform Flutter. Building Adaptive UI. (FRONT-END, Малый лекторий)
- Оптимизируй это! (BA, Большой лекторий)
13:20 Кофе-брейк
14:00
- API Gateway (JAVA, Конференц-зал)
- WebAssembly: что и как (FRONT-END, Малый лекторий)
14:55
- Storybook: true story одного проекта (FRONT-END, Малый лекторий)
15:40 Закрытие #ITsubbotnik (Конференц-зал)
Регистрация на событие
2 ноября 11.00-16.00, Суббота
Deworkacy, Красный Октябрь, Берсеневская наб., 6 строение 3
Конференция будет проходить в несколько потоков: JAVA | FRONT-END | TEST AUTOMATION | DEVOPS | BA
Предварительная программа
11:00 Регистрация
11:30 Приветственное слово (Конференц-зал)
11:45
- UI Test Automation and CI for an HTML5 Canvas based system (TEST AUTOMATION | DEVOPS, Библиотека)
- Вы готовы заключить API-контракт? (JAVA, Конференц-зал)
- Программирование на уровне типов на TypeScript: выжимаем из компилятора все соки (FRONT-END, Малый лекторий)
- Страховка для всемогущего аналитика (BA, Большой лекторий)
12:40
- API First Approach & API Management solutions (JAVA, Конференц-зал)
- Multiplatform Flutter. Building Adaptive UI. (FRONT-END, Малый лекторий)
- Оптимизируй это! (BA, Большой лекторий)
13:20 Кофе-брейк
14:00
- API Gateway (JAVA, Конференц-зал)
- WebAssembly: что и как (FRONT-END, Малый лекторий)
14:55
- Storybook: true story одного проекта (FRONT-END, Малый лекторий)
15:40 Закрытие #ITsubbotnik (Конференц-зал)
Регистрация на событие
Forwarded from PONV Daily (Oleg ℕizhnik)
Залили видео со ScalaRussia 2019 на наш канал, все, кто ещё не приобщился - welcome
https://www.youtube.com/playlist?list=PL9SJrES3EGUT5QZpktNS3jMnw_jMXKtuL
https://www.youtube.com/playlist?list=PL9SJrES3EGUT5QZpktNS3jMnw_jMXKtuL
YouTube
ScalaRussia 2019 - YouTube
Интересно, я один не знал, что сниппеты кода в красивых окнах терминала оформляются с помощью https://carbon.now.sh? 🤔
carbon.now.sh
Carbon is the easiest way to create and share beautiful images of your source code.
Через несколько минут начнем трансляцию второго эпизода «ФП для чайника» с моим другом Григорием Ситниным.
https://youtu.be/buQMEHBIrCQ
Сегодня поговорим о библиотеке fp-ts и ее экосистеме.
Присоединяйтесь, задавайте вопросы в чате, подписывайтесь, вот это всё.
https://youtu.be/buQMEHBIrCQ
Сегодня поговорим о библиотеке fp-ts и ее экосистеме.
Присоединяйтесь, задавайте вопросы в чате, подписывайтесь, вот это всё.
YouTube
ФП для чайника: эпизод 2. FP-TS и все-все-все
Второй эпизод мозголомного подкаста о функциональном программировании
Код к эпизоду: https://github.com/YBogomolov/fp-teapot
Код к эпизоду: https://github.com/YBogomolov/fp-teapot