Programming languages are designed for a specific level of abstraction or distance from the hardware. The main trade off is "developer productivity" vs "control over hardware". C and assembly are low level and therefore map closely to CPU instructions. Python on the other hand goes through many layers, libraries, and a virtual machine before the CPU is reached. This allows powerful programs to be written concisely and cross-platform—but it also conceals the true nature at the heart of our modern world. Unveiling the magic within can lead to interesting insights about how computing got to where it is today.
We will build up CPU focused on transparency, interactivity, and modularity. Our CPU has a configurable architecture and machine language. Yes, you can invent your own assembly instructors to add functionality. We will cover registers, data/address busses, memory (ROM/RAM), IO, and assemblers.
Specs for nerds: 8-bit words, 256 memory addresses, Von Neumann w/ shared address+data bus, DMA with numpy based buffer.
Zak Kohler is a Chemical Engineer by education but true computer geek at heart. He started programming in 3rd grade and has never looked back. Often zak states that his biggest regret is not finding Python and Linux sooner...that didn't happen until university. Electronics is his second love and he fuses the two by playing with early computer hardware as well as modern microcontrollers. When zak isn't messing with computers he can be found turning milk into cheese, drawing, or exploring the world on long walks.
If you would like to follow along with Zak:
$ git clone https://email@example.com/y2kbugger/SAPy.git
$ cd SAPy
$ pipenv install --dev # *note
$ pipenv shell # Will launch shell (e.g. bash) in venv
(SAPy) $ jupyter notebook
If you don't have pipenv, install it using your package manager as a user pip package:
$ pacman -S python-pipenv # arch linux
$ brew install pipenv # homebrew on osx
$ pip install --user pipenv # pip
CARPE is a group of people who love to play around with hardware. From automated chicken coops to robot safe cracking to thermal imaging, we love it all. Join us to tinker, learn, hang out and have a good time.
• What we'll do - Play with hardware, learn about hardware, hang out with cool people who love hardware.
• What to bring - Anything you want related to hardware. Personal projects, questions, tools, etc.
• Important to know - This is NOT just a meetup for people who have years of experience working with hardware. This is a meeting for anyone and everyone who is interested. Do you have zero experience but are curious? Come and learn. Do you have a lifetime of experience? Come and share that with others. Young and old alike are welcome. Pizza and Beer for everyone!