I recently needed to call some synchronous code from asyncio. Thankfully, asyncio provides the run_in_executor
function, which runs the specified function in a different thread. Here is an example of using it:
Algorithms in Python
I recently decided to brush up on my algorithms and data structures by writing them in Python. Though these are not optimized, they could be helpful for reference. Here is the Github repo: https://github.com/calebmadrigal/algorithms-in-python.
A some of the algorithms included:
Recursion with asyncio
Recursion is awesome, but has the downside of growing the stack, which can limit its usefulness. Some languages like Scheme, however, have Tail-call optimization, which lets programmers write Tail-recursive functions that don't grow the call stack. Python does not have Tail-call optimization (TCO), but with asyncio, we can have something like Tail-call optimization. Basically, this method uses the asyncio event loop like a trampoline function.
Example:
Simple D3 demos
I've been playing with d3 recently, and it awesome! I'm especially amazed by the ease of animating transitions with it.
There are plenty of amazing d3 demos out there, but I wanted to write some simpler ones to help me understand the basics of d3. You can find them here:
http://calebmadrigal.github.io/d3-demos/
For example, here's how to draw a circle with d3:
Code:
var width = 200;
var height = 200;
var x = width/2;
var y = height/2;
var ...