Joshua

CTO @ Encamp
jmoyers@gmail.com

Building a Computer From NAND Gates 🔨

Posted on June 04, 2016

Course: http://nand2tetris.org/ My Computer (hdl): https://github.com/jmoyers/nand2tetris My Hack Assembler (rust): https://github.com/jmoyers/hack_assembler So I was able to build a baby computer in a hardware simulator. I learned quite a bit about how CPU's are designed and how they interact with machine code and assembly language. Finished this 6 week course in 5 days due to binge (🌙). I was able to write an assembler in about 500 lines of code including some static lookup tables. This assembler targets the...

More

Minimal Tmux Dev

Posted on June 02, 2016

If you are currently in a anti-IDE frame of mind (which I cycle into from time to time), tmux can be a useful way to use vim and also retain the ability to look at several pieces of output ... without a bunch of floating terminal windows hitting C-z and typing fg over and over. Current Setup I went through a period on intense tool customization, but I find it pretty hard to pick back up on all the little customizations if I walk away from a toolset for a while. I've since been wary of keeping too many dotfiles....

More

The Elements of Computing Systems

Posted on May 29, 2016

Coursera: https://www.coursera.org/learn/build-a-computer Original Site: The Elements of Computing Systems This course is run by some guys from the Hebrew University of Jerusalem. Its about building a computer from nand gates in a hardware simulator, building an assembler, programming language and a kernel from first principles. So far its been very interesting and informative - I've made it through to the third project in about 2 days or so of work. I posted this in their forums as a suggestions, but the only...

More

Fork() Is Weird

Posted on May 27, 2016

Update 2019: Coursera killed every course permalink. ??? I was working through lecture 59 of the UW hardware software interface course and got interested in the origin of the fork-exec model for process management. In case you didn't know, fork is a way of creating a process in Unix-like systems. I have known this for a long time. I never really thought about how it works, though. It turns out, what it does is create a 'copy' (optimized to copy-on-write later on) of the existing program and returns the new process...

More

Inbox Zero

Posted on May 27, 2016

For the first time in probably 10 years, I've got a handle on my email. I unsubscribed from every list I could find, created a set of auto filters that apply a label and skip inbox based on some lists that I still want to be subscribed to, but that I don't look at every day. I feel much less stressed about my communications. It had grown and grown over the years organically (both from managing 30+ people) and having interests in a ton of different topics. One thing I won't ever do again: subscribe to any mailing...

More