eniac computer from columbia u website

R & D Day


I had a long car drive so I figured I could use opportunity to follow up on three software projects that people had mentioned at RC, that I am NOT going to actually work on at RC, but I want to take a little look and see what is involved.

First up I checked out Nand2Tetris.  I had never heard about this before RC. It is a coursera class where you build a computer from first principles – from an Nand gate to Tetris.  If may revisit this class this summer, but I did the first week reading, downloaded the software for HACK (the virtual environment we use to build our computer, although we can buy the electronics and build a physical computer), and watched the videos. It’s all about abstraction and how each level in a computer is an abstraction of a lower level – even Nand gates are ultimately abstractions of quantum mechanics – FAR OUT!  The first chapter also quotes Proust and Aristotle  – be still my heart.

Next up I checked out phaser, an HTML5 game.  I installed it via npm, because you need to run a webserver to serve the json. There might be some other reasons, but I skimmed the directions. I am copying this from the phaser website, you can get up and running pretty quickly by defining your world in a config object (see below) and then implementing the methods.

var config = {
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    physics: {
        default: 'arcade',
        arcade: {
            gravity: { y: 300 },
            debug: false
    scene: {
        preload: preload,
        create: create,
        update: update

I skimmed the github repo and the code looks well architected. I am going to keep this as a handy reference as I try and make my code open source ready.

Finally, I looked at Reveal.js, this is a presentation framework and it powers slides.com, Think powerpoint or keynote with markdown.  This is actually pretty cool, I think it would be nice to build tool that autogenerates reveal slides from comments.  or documentation.

I would have loved to have fixed my fast.ai setup but I have not been approved yet for the papersource instance I want to use.



Unpaid Labor Coin


After a super fun game night where I lost my 8 sided die to the game Avalon, I took it easy this morning. I took care of some things in Manhattan before coming into RC at around 3 to do some coding and say good by to the awesome folks from the Mini Batch :(.

Thursdays and some Fridays are times for presentations at RC, and I have decided that I want to present every week,  so I got down to business getting truffle up and running and creating an ERC721 token. For those of you who are not familiar with the terms, ERC means Ethereum request for comment. That is the way people create smart contract standards.

ERC20 defines the protocol for the standard token that people are familiar with all the cray IPO hype.  ERC721 is the protocol for Non-fungible tokens, tokens that are not commodities but collectibles.  One ERC721 is not equal to another, each is unique. The most famous example of ERC721s are cryptokitties.

I created an UnpaidWorkToken ERC721 as a sample token. The contract definitions have changed a lot in the past 6 months and I had some issues including all the features I wanted. I think I should extend ERC721Full.sol but I did not have time to write out all the required functions, so I just used ERC721.sol. This sadly meant that I could not give my UnpaidWorkTokens unique graphical images. Below is the data structure of my token.

struct UnpaidLabor{
string category;
string desc;
int duration;
int freedom;
int skill;
string uri;

Category is something like childcare, description is “watch my son”, duration is lets say 360 minutes, freedom is how constraining the job is on a 1-100 scale, lets say this is 90, skill is how much skill you need, lets say 50.

Although child care has become a commodity, we should realize that much of what was once consider nonmonetizable, such as family photos, is monetized, by social media companies. No judgement – just a fact.  Also, childcare is still largely unpaid work, we should honor this work in a way that does NOT turn it into a commodity or a part of the market economy.  Not everything has, or should have, a price tag.

NFTs are perfect for those things that exist in a gift economy where everyone is always in a little bit of debt to everyone else because the gifts cannot be reconciled quantitatively.

So my presentation was on this UnpaidWorkToken, I presented a minimalist slide set, some code, and some programs running in my terminal.  It was not quiet Barnum and Bailey – but I got it done.  The presentations were all fantastic ranging from a discussion of conceptual and code art, the history of computer art, bioinformatics, music, and live coding music (I may be missing some.

After the presentations, I went with some RCers to an algorave at baby castles, which was super fun and fascinating. I was home by a very reasonable 10:15!

A bazillion years ago Paul V and I made a documentary about VJing (which we continued with a history of light art) so this is an area that is, or at least once was, close to my heart. The scene has changed a lot, and I definitely want to try my hand at some live music coding at some point (after the prayer blockchain is finished).

So, now is a good time for me to spec out my next 5 weeks, and I am hoping this social proof will keep me on track.

Wk 2: basic webapp + metamask integration of NFT, v1 of prayer NFT & deployment to the test net  (rinkeby probably)

Wk 3: UI beautification and a deep dive into webpack (if I have time) and deployment docker probably (terraform is likely overkill) a deep dive in to whatever I choose  (if I have time), deployment to live ethereum network. I may also have some more work to do on the prayer NFT.  Maybe make the web app microservers or serverless.

Wk 4: Testing and feedback collection, perhaps create a fork of prayer coin and run the prayer blockchain on its own network – although I would need to find miners.  Start work on prayer activations – one IOT actuator related and one web visualization related. Maybe I will do one and not the other.

Wk 5. Integrate results from Testing and feedback.  Try to get more people on the network, Finish prayer activations.  Write Documentation

Wk 6: Because things dont always go according to plan.

I am thinking about It would be nice to have one tutorial a week although I may release them on Sundays.  If I can figure out the issues with my ERC721Full.sol, maybe that can be my first tutorial.  This turned into to a super long rambling blog post – if you have kept reading this far I salute you.