eval / apply
20 subscribers
2 photos
78 links
pseudo random stuff on Software | CS | PLs | Math by @amankkg
Download Telegram
Forwarded from Wild Wild Web
Я тут наткнулся недавно на очень интересную подборку задач по TypeScript. Особенность этих задач в том, что их нужно решать используя только систему типов TypeScript.

То есть, все задачки, которые там есть, их решение должно происходить в compile-time, никакого кода на TypeScript или JavaScript, кроме, собственно, типов.

И я призадумался. А не сделать ли мне «марафон» постов, где я буду идти по порядку от легкого уровня к сложному и рассказывать о решении, как оно работает, почему и так далее. Как вы на это смотрите? Не будет ли часто по одному посту в день на одну задачу из этой подборки?

Я лично уже прошел почти половину, очень интересно. Можно это всё завернуть в формат более продвинутого изучения типов. Не писать же только интерфейсы, правда? 🙃

В общем, я думаю это отличная идея и с завтрашнего дня, я буду выкладывать сюда решения задач и рассказывать почему решение работает (если, конечно, мы не придём к обратному решению в комментариях). А пока, вы можете поиграться и сами 😎

https://github.com/type-challenges/type-challenges
Used to be subscribed to their Twitter, never knew there is also a website
https://schooloffp.co/
ФП

Интересная подборка кейвордов и ресурсов по ФП в видео.

Катаморфизм и прочие термины из ФП с бананами, John Hughes и его Why FP (есть еще видос на ютубе), gcanti с его блогом и еще один блог, который называется adventures in uncertainty, что является отсылкой к принципу Гейзенберга, а принцип Гейзенберга это отслыка к Гейзенбагу, про который я писал.

https://youtu.be/MD49vFaQ4QA
Holy shit! 😬
Mathematicians versus special services

The NSA and similar services must've many opportunities and places to apply such researches and theories (here is an example above)

And, the best inappropriate use of advanced technologies I can recall of is China Communist Party's deployment of AI on East Turkestan to achieve mass surveillance and facial recognition for uyghurs

https://www.justmathematicscollective.net/nsa_statement.html
Got hooked on that channel lately. It turns out I didn't know what CI actually is... Also, many other ideas related to devops

https://youtube.com/c/ContinuousDelivery
Forwarded from kamyshev.code
Ну, получилось чуть длиннее, чем я ожидал 😎

Новая статья в блоге — чем меня зацепил Эффектор и почему теперь мне грустно пользоваться другими стейт-менеджерами ☄️

Лучшая часть Эффектора

#фронтенд
eval / apply
Bartosz Milewski is writing a new book live in his twitter, here is compiled version https://github.com/BartoszMilewski/Publications/tree/master/TheDaoOfFP
TIL: there is a third name in the following correspondence

The connection between type theory, lambda calculus (which is the foundation of programming), logic, and category theory is known as Curry-Howard-Lambek
correspondence
I've joined Miro recently. There are some resources I used in order to prepare for a System Design interview.

- Architecting Distributed Cloud Applications by Jeffrey Richter - old but still good to cover general problems & concepts, link to edX version
- Alibaba's Cloud Certification Course - vendor-specific (very similar to AWS), behind a paywall
- Gaurav Sen - must-watch
- IGotAnOffer mailing list, but it seems to be discontinued 🤔

The interview itself was quite easy. Started from frontend app state structure and then moved to API and database schema, ending up with datacenters geography.

This is how I handled it last summer, but today, given that there is enough time, I'd follow this tutorial from Outtalent
Forwarded from Slavic Radko
В этом году произошла интересная ситуация: один из игровых разработчиков, Casey Muratori (twitter: cmuratori), обратил внимание на то что Windows Terminal чрезвычайно медленно рендерит текст и оставил issue на гитхабе (https://github.com/microsoft/terminal/issues/10362). В споре с ребятами из Майкрософт, которые ему говорили что сделать терминал быстрее невозможно и это настолько сложно, что требует исследования уровня PhD, он решил в свободное время сделать свой собственный прототип, который должен показать насколько быстрым должен быть терминал (https://youtu.be/hxM8QmyZXtg).

А теперь он выпустил видео лекцию, в которой рассказывает про оптимизации на примере этого терминала.
Через всю лекцию нитью проходит мысль: сейчас не обязательно делать глубокую и сложную оптимизацию кода, достаточно не давать процессору работу, которую не обязательно было и выполнять — и софт будет гораздо быстрее.

Лекция заняла часов 5, поэтому он разбил её на несколько частей:

Часть 1: https://youtu.be/pgoetgxecw8
В ней абстрактно рассказывается про философию оптимизации и что на самом деле сейчас не обязательно оптимизировать код, чтобы он был быстрее, достаточно просто не давать процессору лишнюю работу.

Часть 2: https://youtu.be/lStYLF6Us_Q
В ней он рассказывать про изоляцию медленного кода и как он придумывал архитектуру, которая позволит ему сделать норм терминал.

Часть 3: https://youtu.be/hNZF81VYfQo
Тут про саму архитектуру терминала, рисует поток данных.

Тут хочу заметить что он не рисовал архитектуру с точки зрения кода, а нарисовал поток данных — это гораздо важнее, и я всегда тоже именно такой рисую. Такие схемы гораздо полезнее, чем принятые в современном IT с их иерархиями классов и т.д.

Часть 4: https://youtu.be/cGoQ3ceKX6g
Тут про устройство LRU кеша. По сути это хеш-таблица, но т.к. он опять же не пользовался "стандартными" хеш-таблицами, он смог дать ей небольшой твист, который очень помог.

Часть 5: https://youtu.be/e1cvqmXoVaI
Тут про единственную _оптимизацию_ в его коде — использование SIMD в парсере.
Весь остальной код не оптимизирован и всё равно работает в 100 раз быстрее, просто потому что он не написал лишней работы, которую бы он написал бы, если бы использовал стандартные контейнеры, malloc, CRT и т.д.
Название популярного канала в телеграме, что оно значит на самом деле?

P.S: я когда-то читал его, но в какой-то момент, ближе к 800-1000 подписчиков, там пошла голимая попса (но смешно тоже)

https://www.youtube.com/watch?v=3HIJCibf8Qc