Forwarded from Sergei Fedorov
awesome листы на все случаи жизни
Вышел TypeScript 3.2. Среди интересного — наконец-то починили типизацию для spread, добавили возможность подключать конфиг компилятора из
node_modules и включили поддержку BigInt.Краткая, но душераздирающе-трогательная история Понтуса — первой в мире самоходной картофелины.
Наслаждайтесь.
Наслаждайтесь.
YouTube
Self-driving potato
I made a self driving potato. And then named him "Pontus" and adopted him as a pet. This went well.
By popular demand, I wrote a detailed list of parts, you can find it in this reddit comment: https://www.reddit.com/r/shittyrobots/comments/6indk9/i_made…
By popular demand, I wrote a detailed list of parts, you can find it in this reddit comment: https://www.reddit.com/r/shittyrobots/comments/6indk9/i_made…
Forwarded from Алёна Горюшина
когда фронтендер считает иконки пидорскими, но стесняется об этом сказать
https://github.com/jagajaga/FP-Course-ITMO — лекции по Хаскелю от Serokell + ИТМО
GitHub
GitHub - jagajaga/FP-Course-ITMO: Slides and other materials for functional programming lectures ITMO university
Slides and other materials for functional programming lectures ITMO university - jagajaga/FP-Course-ITMO
Реализовал сегодня на работе Tagless Final на TypeScript для работы с браузерным стораджем. А потом выкинул нахуй. Расскажу немного о контексте такого решения.
Сейчас на работе я пишу SDK, с помощью которого будут писать переиспользуемые модули — блоки бизнес-функциональности, которые можно подключать к любому (в теории) приложению как некие черные ящики, тем самым экономя бизнесу деньги на повторную разработку. В рамках этого SDK нужно реализовать слой персистенса, абстрагирующегося от некоего хранилища. Это может быть session storage, local storage, IndexedDB, WebSQL или вообще персист на сервер через REST. Я спроектировал это так, что модуль получает на вход абстрактную алгебру
Но есть нюанс. В рамках продвигаемой архитектуры приложений я требую, чтобы все работы с хранилищем и сетевыми запросами происходили в рамках
Мораль: нельзя позволять себе терять виденье общей картины, углубляясь в столь приятные (но порой ненужные) технические детали.
Такие дела.
Сейчас на работе я пишу SDK, с помощью которого будут писать переиспользуемые модули — блоки бизнес-функциональности, которые можно подключать к любому (в теории) приложению как некие черные ящики, тем самым экономя бизнесу деньги на повторную разработку. В рамках этого SDK нужно реализовать слой персистенса, абстрагирующегося от некоего хранилища. Это может быть session storage, local storage, IndexedDB, WebSQL или вообще персист на сервер через REST. Я спроектировал это так, что модуль получает на вход абстрактную алгебру
StorageAlgebra, у которой эффект синхронного или асинхронного вычисления вынесен в некую монаду M, о которой модуль знать ничего не знает до тех пор, пока его не запустят с конкретным инстансом нужного стораджа. По сути, мне пришлось реализовать паттерн Tagless Final для этого стораджа. В тайпскрипте, как в языке, где нет типов с дырками, это отдельная боль. И вот, вроде бы, счастье — тесты зелёные, можно подсовывать как синхронные, так и асинхронные алгебры, и всё будет работать…Но есть нюанс. В рамках продвигаемой архитектуры приложений я требую, чтобы все работы с хранилищем и сетевыми запросами происходили в рамках
redux-saga. Которые сами по себе асинхронные. И этот факт наглухо перечёркивает всю предполагаемую гибкость. Мы уже живём в асинхронном контексте, нет пути назад. Поэтому я выкинул весь код с TF, попутно избавив себя от необходимости объяснять его коллегам из вверенных мне команд, оставив в качестве единого для всех интерфейса пакет localForage.Мораль: нельзя позволять себе терять виденье общей картины, углубляясь в столь приятные (но порой ненужные) технические детали.
Такие дела.
Было бы интересно увидеть детали реализации предыдущего поста (абстрагированные от бизнес-контекста)?
Вы сказали, что девопс и прочее современное айти стоит на трёх китах — докер, кубернетис, опеншифт, — заметил президент. — Из всего этого, конечно, больше всего беспокоят контейнеры, это путь к деградации нации.
Forwarded from Токсичность и Гомотопия
Волшебная @tlasol выполнила мой заказ — формулу комбинатора неподвижной точки. Артефакт! :)
Пришло СМС от налоговой, что с января ежемесячный платёж за патент на работу для иностранных граждан составит 5000 рублей. Было 4500. Это +11%. А теперь немного цифр.
Согласно данным МВД РФ, за январь-ноябрь было выдано 1.5 млн трудовых патентов. Путём нехитрой математики получаем, что в налоговую ежегодно будет поступать на 750 млн. руб. больше на ровном месте. И это если полагаться на официальные данные; реальные цифры, по оценкам независимых экспертов, раза в два-три выше. Выводы делайте сами.
Согласно данным МВД РФ, за январь-ноябрь было выдано 1.5 млн трудовых патентов. Путём нехитрой математики получаем, что в налоговую ежегодно будет поступать на 750 млн. руб. больше на ровном месте. И это если полагаться на официальные данные; реальные цифры, по оценкам независимых экспертов, раза в два-три выше. Выводы делайте сами.
Tweag I/O - Asterius GHC WebAssembly backendreaches TodoMVC
https://www.tweag.io/posts/2018-12-20-asterius-todomvc.html
https://www.tweag.io/posts/2018-12-20-asterius-todomvc.html