Programming
Languages and paradigms
R&D paradigms and language features
Visualgo, visualising data structures and algorithms through animation
Functional programming
Reactive programming
The introduction to Reactive Programming you've been missing
ReactiveX seems to be the most popular library for using the reactive programming paradigm. In JavaScript they provide RxJS
RxJS Marbles is a great resource to understand--with the help of marble diagrams--many of the methods that ReactiveX provides
Learn RxJS another great resource.
Essence and origins of Functional Reactive Programming. A talk explaining how the term FRP was first used. It's a bit mathy/abstract but possibly a nice brain workout and a good way to understand how the term FRP was used differently 20 years ago.
dApps
- Project: build a dApp
Express
- Sessions
Node.js
Mongoose
Webpack
Babel
Markdown
MDX
Projects:
- Create a presentation using mdx-deck
Resources:
GraphQL
- Read GraphQL learn
- Read GraphQL spec
- Read mental model of GraphQL
- Summarize lessons learnt from howtographql.com
- Create your own GraphQL client
- Schema-first vs SDL-first vs code-first API development comparison
- WPGraphQL
Wishlist
Redis
From the intro page:
Redis is an open source in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.
It has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing an element to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.
In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on your use case, you can persist it either by dumping the dataset to disk every once in a while, or by appending each command to a log. Persistence can be optionally disabled, if you just need a feature-rich, networked, in-memory cache.
Redis also supports trivial-to-setup master-slave asynchronous replication, with very fast non-blocking first synchronization, auto-reconnection with partial resynchronization on net split.
You can get a feel for Redis with this Try Redis site.
The most popular applications of Redis are:
Session cache in web applications, saving state of the current user session like contents of cart, settings, etc.
Full Page Cache (FPC) for improving the speed of server generated websites. For example, wp-redis is a plugin to use Redis to speed up WordPress sites.
Queues can be implemented easily with the API provided by Redis. As an example, Celery provides a Redis backend for their task queue solution.
Leaderboards/counting: again, Redis offers great utilities and API to make these applications easy to build. In this case, sorted sets, helps with any kind of ranked list of unique elements.
Pub/Sub: same same, great utilities and API.