I’m building a Python interpreter in Rust and mentoring the quietly ambitious to get unstuck and code with confidence again.
fromscratchcode.com | fromscratchpress.substack.com
I built a micro web framework (Enid) on top of my own runtime and for the first time it responded to `curl localhost:8080`. And then immediately panicked. Progress!
#buildinpublic #rustlang #python
Since I'm not sharing the details about when or where, I expect to see none of you there.
In the biz, we call this wOrD oF mOuTh.
Since I'm not sharing the details about when or where, I expect to see none of you there.
In the biz, we call this wOrD oF mOuTh.
fromscratchcode.com/blog/memphis...
Here's a short demo!
fromscratchcode.com/blog/memphis...
Here's a short demo!
Here's a short demo!
B) Building an HTTP server in Rust
C) Building a language runtime in Rust...which can run the Python HTTP server
I didn’t plan to build all three, but here we are. Now how to make this a resource.
What would you want to learn from it?
#python #rustlang
def foo(a, b=2):
return (a, b)
print(foo(1, b=4)) # (1, 2) YIKES!
def foo(a, b=2):
return (a, b)
print(foo(1, b=4)) # (1, 2) YIKES!
It's funny how people expect me to pitch why my thing is valuable. It's value is that it's mine and that it works.
It's funny how people expect me to pitch why my thing is valuable. It's value is that it's mine and that it works.
The real challenge is making these Connection and Socket objects feel like first-class citizens in the type system.
Runtime design is fun!
The real challenge is making these Connection and Socket objects feel like first-class citizens in the type system.
Runtime design is fun!
Turns out, Python's comparison chains work differently than binary operators.
Here's a short post showing how I added chaining support to my parser and two interpreter engines.
Turns out, Python's comparison chains work differently than binary operators.
Here's a short post showing how I added chaining support to my parser and two interpreter engines.
> curl localhost:8080
Hello from Enid (powered by Memphis)
Is this what Alexander Graham Bell felt like?
> curl localhost:8080
Hello from Enid (powered by Memphis)
Is this what Alexander Graham Bell felt like?
I just realized in Memphis, None or {} was returning True.
In Python, None or {} returns {}.
I hadn't realized boolean operators in Python aren't required to return a bool, they just return whichever value short-circuits first. FUN!
I just realized in Memphis, None or {} was returning True.
In Python, None or {} returns {}.
I hadn't realized boolean operators in Python aren't required to return a bool, they just return whichever value short-circuits first. FUN!
I built a micro web framework (Enid) on top of my own runtime and for the first time it responded to `curl localhost:8080`. And then immediately panicked. Progress!
#buildinpublic #rustlang #python
I built a micro web framework (Enid) on top of my own runtime and for the first time it responded to `curl localhost:8080`. And then immediately panicked. Progress!
#buildinpublic #rustlang #python
github.com/JonesBeach/e...
github.com/JonesBeach/e...
How do I know this? I ran `git log`.
How do I know this? I ran `git log`.
a < b < c is not d in e < f
What do we think? Readable?
a < b < c is not d in e < f
What do we think? Readable?
dict([('b', 4), ('c', 5)])
dict([['a', 1], ['b', 2]])
dict((k, k*k) for k in range(3))
dict(zip(['one', 'two', 'three'], [1, 2, 3]))
An iterable containing another iterable which yields exactly 2 elements.
This one was fun!
dict([('b', 4), ('c', 5)])
dict([['a', 1], ['b', 2]])
dict((k, k*k) for k in range(3))
dict(zip(['one', 'two', 'three'], [1, 2, 3]))
An iterable containing another iterable which yields exactly 2 elements.
This one was fun!
First: async/await. Building an executor for my VM was TOUGH, but the bytecode compiler updates were pretty straightforward.
You can try an async example here: fromscratchcode.com/bytecode-com...
#python #rustlang #bytecode #buildinpublic
First: async/await. Building an executor for my VM was TOUGH, but the bytecode compiler updates were pretty straightforward.
You can try an async example here: fromscratchcode.com/bytecode-com...
#python #rustlang #bytecode #buildinpublic
"What I’ve learned from 200+ hours helping developers grow"
#mentorship
mentorcruise.com/blog/what-iv...
"What I’ve learned from 200+ hours helping developers grow"
#mentorship
mentorcruise.com/blog/what-iv...