One of the things I have been thinking about in relation to conscious computation is our relationship to prediction once we have probabilistic models.  I have been engaged in an archaeology of prediction.  That is looking at old predictive systems to understand how we think about decision making and future events.

Geomancy is an ancient combinatorial prediction system based on making random marks generally in the dirt.   You ask a question – ‘Should I buy that horse?. Make a bunch of random marks in the dirt then count whether or not you have an even or odd number of marks.  You do 16 times to generate 4 sets of 4 dots (2 or 1 dot) – The mothers. From these you generate the rest of the chart (11 sets of 4 dots).

The final set of dots is the judge at that ostensibly gives you the answer to your question. Yes, buy the horse! No don’t buy the horse! Unclear! You can further interpret the answer of the ‘judge’  looking at the sets that gave rise to the dots, and to these sets that gave rise to those sets.   There are elements (earth fire water air) associated to each row of dots that can further help you interpret the answer to your question.

A while ago I wrote a geomancy python script. It is super barebones. I may slap an elm front end on it and make it interactive in some way. A while ago I was using geomancy to create poems. Every day I would throw my D&D dice, ask a question, and generate an answer and then write a poem based on the answer.

I read this book (Ron Eglash ‘s African Fractals Modern Computing and Indigenous Design) thinking it might have something about geomancy, because he mentions geomancy in his ted talk.  About one third of the way through he talks about African divination systems ( which in the west became Geomancy). Some of the things he mentions are: the stochastic process to generate the starter set, the possible solution set depending on the base items you use for generation, the binary or modulus 2 method of reducing a figure to 0 or 1 (or 1 or 2), and the notion of looping.  After being integrated into western mysticism, Leibniz was inspired (according to the author) to develop a base 2  counting system – the predecessor to binary.

There is a discussion of this method and that of a pseudorandom number generator from shift register circuits. With a shift register the circuit also takes the mod 2 of the last two bits in the register and discards the rest.

Geomancy does appeal to the computer scientist in me because it is computational and generative.   But this sort of prediction belongs to a past age, perhaps not the age of modeling.  Eglash makes a difference between memetic vs model.  What is the difference between a representational structure that is mimetic versus one that is modeled? Is this the difference between an image and an algorithm? Why is this important? What does it mean?

Zero Phone

I was having a conversation last night with a friend about Twilio. This was somewhat inspired by Austin’s RC Project. Twilio is an api/service for sending and receiving text messages. It is very well designed and easy to use.  For a while mobile commerce was really popular, and there were a bunch of services that sent you text messages about things you may like to purchase. I was actually going to start a business like this with my friend Juliet around children’s books recommendations but we never got it together.  I subscribe to a service that sends me daily album recommendations via text but I use it for discovery. I think I may have purchased one album from them in 4 years.  They probably use Twilio.

I vaguely remember using Asterix for telephony work a long time a go. It looks like they got a rebranding. Also many many years ago, before smart phones, I built a collection of robots controlled by playing and listening to DTMF, that  is the touch tone sounds. Phones used to communicate analog (via sound) – hence phone phreaking.

But this got me thinking about phones.  Phones are a total black box to me.  I have built computers but I have never built a phone.  I would love to be able to control everything on my phone the way I control everything on my computer (Depending on the computer).

I remembered on zulip there was a thread about zero phone and that this could satisfy my desire for an open source phone. I love the idea that the UI is in python – what is it Qt?Is anyone selling a preassembled zero phone??

Apparently my son told his friend that I would build him a computer for his birthday (the friend not my son). I am NOT going to do that, I am not sure where my son got that idea from. But I could build a phone – its cheaper.



Unpacking rustwasm issue 163

This is the git request

Request for library: mpsc channels library built on top of the postMessage API #163

This could allow wasm to talk to js via CSP style message passing, different wasm instances to talk to each other without sharing memory, the wasm instances might even be in different threads by using web workers.

Would be awesome to see someone experiment with this by making a library!

During the Rust checkin this week I reviewed this request the group. The consensus was we need more information. Here I just come up with a list of questions in order to better implement this.

Here is the JS postMessage call for your information. And I’m going to link to a helpful meditation on CSP and JS.

targetWindow.postMessage(message, targetOrigin, [transfer]);

So why do we need this and what does this mean?

  1. What are some of the potential use cases you see for this feature?
  2. What would implementing CSP allow you to do that you currently cannot do, or how would it be an improvement?
  3. Would this just be an implementation of postMessage for communication to WASM or would it involve something else?
  4. How does JS receive messages from WASM/Rust ?
  5. Why is this an improvement over or replacement for bindgen? (if we use channels to communicate do we no longer need wasm_bindgen)


Learning to ride does not mean learning to balance, it means learning not to unbalance, learning not to interfere. (Papert Mindstorms p. 159

I was having a conversation with Tim at Recurse (SP1 19) about conscious computation (or what a friend said I should rename to relational computation- but that sounds too much like social networking).  Tim did some work, perhaps a MA, in the lifelong kindergarten group at MIT and said that the ideas I had were very similar to those by Seymour Papert, the founder of Logo (the programming language where make geometric shapes with a digital turtle).

I have had the book, Mindstorms, forever, but have not read it. So, I took a nice long bath with some epsom salts and a little cinnamon incense and read it.  At a later point I will do a blog post on ritual bathing 🙂

What is my idea behind conscious computation? It is a exploration in the ways that we can use computers to change our modes of consciousness- whether that is through meditation or virtual reality. On a higher level, all tools change consciousness. The telescope and the microscope changed our perceptions and what we imagined that we could perceive and this directly changes consciousness.   What I am interested in computers is the world building capacity of computers and programming.  It is not just altering consciousness, but creating new modes of consciousness or frameworks. What is consciousness? It is awareness. We have a binary right now between the conscious and the unconscious. The conscious is what we are aware of, while the unconscious is that which we are unaware of.

But I prefer to think of consciousness as a framework for describing the relationship between the thinking and action (perhaps the mind  and action, and then the mind and the body). AIn this way,  the unconscious is a framework of thinking and acting in which we are unaware of the reasons for our actions, where the conscious is a framework of acting where there is deliberate reasoning between our thoughts and actions.  But are these the only two relations between thinking and acting.  Awareness and unawareness. What are the different ways that we can be aware, what are the different ways we can formulate thoughts or desires. I can feel a pang in my stomach that triggers my desire for food. This is not a mental action. I can drink a cup of chamomile tea and feel a sense of calm, my mind will reason differently in this state, then were I to drink a cup of coffee or mate or a shot(s) of tequila.

In Mindstorms, Papert is interested in:

talking about how computers may affect the way people think and learn. …noting a distinction between the two ways computers might enhance thinking and change patterns of access to knowledge.  (Papert Mindstorms p.3)

This is an epistemological approach: how do we know things. And he is influenced by Piaget, an epistemologist who studied how children know.  Piaget is not interested in the truth (or validity) of knowledge but the growth of knowledge and the acquisition of knowledge.  Some of my take aways from the book is that computers move us away from a true/false right wrong dichotomy.

A program is not wrong but buggy and the goal is to debug.  A student or learner is constantly improving code by removing bugs.

Computers introduce serendipity and creation into learning. I might learn to draw a square using a computer program but I draw a diamond instead. I may learn something new in debugging this, as I turn the diamond into a square, and I may create something new that I did not anticipate.  The computer is about learning through doing not learning through memorization or drills- which closes off this capacity to create and learn something accidentally.

There is also the idea of building microworlds, such as the world of logo and the turtle, to learn fundamental concepts. That learning is accomplishing within the framework of exploring a world. The goal is to create the correct world to learn a particular thing.  This idea is brought up in context of prerequisites.  Students do not need a prerequisite to study Shakespeare because this language acquisition is part of our culture in the domain of world building (since culture is worldbuilding). However to study linear algebra we must already know basic algebra. This is a prerequisite, since it is not learned in our culture. A solution would be microworlds that would allow people to learn prerequisite concepts and to integrate this into our culture.

Finally there is a theory of knowledge acquisition itself, the bricolage theory. This is the idea that we learn things by thinking and acting. That learning is recursive and a dance between these two modes and they compound. the more you learn the more you can learn.

Towards the end of the book there is a discussion of Poincare vs Freud. Poincare argues that mathematical mind is not logical but aesthetic.  I can appreciate this.  Good mathematics like a good program is not only correct but elegant. This is two minds the logical mind and the aesthetic mind, which Papert contrasts with Freud’s notion of conscious and unconscious  mind.  For Poincare the unconscious is presents aesthetically pleasing options to the conscious mind to prove. Where as, for Freud, the unconscious is primarily the site of sexual repression or prelogical thought causing nonsensical neurotic action that the conscious mind becomes aware of while acting in the world.

But, for me the question is there a choice between dichotomies. Why not let a multitude of consciousness (or unconsciousness) flourish and how does a computer facilitate that.

Papert is not focused on how we make a decision or why we do what we do, but how we learn. For me how we learn is a question of consciousness, since a mind that is structured in a particular way can only learn in a particular way. So if we want to learn new kinds of things heretofore not posited we have to restructure our mind and provide a multitude of minds for the different kinds of knowledge we want to acquire.


First Day of the New Batch

Today was the first day of the New Batch.  It was sad and strange to not have the people from the old batch in the space but exciting and invigorating to have a whole set of new people with new interests and new abilities. Also there are a bunch of Rust and Haskell people- which is exciting for me.

I had some fantastic conversations about Shader, art, repls, education, consciousness, music, the lightning network  and so forth.  I did not get a whole lot done technically. I spent most of the day working on my talk for localhost for next week and working on my contract specifications to present as an EIR.   My friend Aya told me to write the talk as if I had no access to a computer or the internet, which is a good idea. I really want to balance between the tech and the ideas so everyone understands what I am talking about and everyone comes away learning something new.

Other that that, tomorrow I am bringing my kids to recurse.  I hope it is not too distracting I have a bunch of new and old friends to pair program with!

Prayer Blockchain – background thoughts 2

I am working on my talk on the prayer blockchain. And I wrote down a bunch of my thoughts on exchange and prayer that
are not appropriate for the talk but I figured I would post it.

The prayer blockchain is about rethinking exchange and value through the metaphor of prayer.

That is a long title and blockchain is sexy so you you know prayer blockchain

So lets unpack what I mean by a prayer blockchain and why I built it and what you can do with it

If you want more information please go to the first part of this post. I am going to talk about tech now.

So we have technologies for mediating these types of exchanges. We have money for mediating debt, we have parties and things for mediating gifts, and we have religion for mediating prayers.  These are structures that enable us to create these types of exchanges and activities. They are a type of technology.

With the blockchain we have a true revolution in mediating debt.  This is for three reasons that I have not created good names for but lets call it a) trustless, b) history c) programmability.

So first off trustless. Who decides what has value? This is what trust means.  Why does the dollar have value – “In God We Trust”.   This is not a quantitative value, like how do we know a dollar is a dollar, but an existential value. How do we know that something is worthy of value?  How do we know this is a dollar and not monopoly money. Which system of exchange can I use this within?

The real utility of blockchain technology is that we can create a digital asset and know exactly (or limit) how many times it is exchanged or reproduced.  This is a difficult issue because the defining characteristic of digital technology is that it is infinitely reproducible.  A piece of software unlike a sheave of wheat or a bayblade has zero marginal cost and can be replicated with out any additional work.  But something that can be infinitely generated can be a bad record or store of value if it is easy to create fictional entries.

With CONSENSUS we replace the the standard of value, which has been an authority institution such as the government or religious authority, with a concept or algorithm CONSENSUS.  Now this can be an authority consensus, such as proof of authority used by many private blockchains, or it can be something else such as proof of stake or proof of work.

So who decides if a payment has been sent, or a gift has been exchanged, or a prayer has been made?

Does this matter for a prayer? We can kinda see why this would be important for a payment or a gift.  It is a material exchange. A prayer is an immaterial exchange why do we care if there is a record of it?  I am not sure. but I am curious what happens if we make all these invisible or immaterial desires manifest. What if we refine our prayers/intentions/affirmations? What will this do to our culture.  We are in a time where all things that were once firmly material are in part immaterial, controlled by data and evolving algorithms rather than by physical mechanical processes. Perhaps the immaterial and invisible and half understood desires embodied by prayers would benefit from a material intervention. Perhaps a record of prayer would illuminate our prayers and help concretize them in some way.  Since prayers are personal, it makes sense that we want to use an algorithm to determine what prayers have been made and who has made them.

What is at stake in a double spent prayer. I am not sure,   It is perhaps, an idea of False Consciousness :

False consciousness” is a concept derived from Marxist theory of social class. The concept refers to the systematic misrepresentation of dominant social relations in the consciousness of subordinate classes

from the internet –  D. Little.

Lets say that prayers/affirmations/intentions are a representation of consciousness. To manipulate or falsify this consciousness is to some how damage society at large. To reveal a truthful map of desire is to elevate society.

Ok Lets talk about history.

The blockchain is money with a history. This is both exciting and terrifying. Do I really want to know where that dollar was before the store clerk gives it to me in exchange for a bunch of bananas? But maybe I do. With the blockchain the money itself is just a list of all the transactions ever made. With a prayer token. The prayers are a list of all prayers ever made. These things are cumulative. How do intentions and desires change, how are they refined. How can I build or augment the prayers of someone else? How do we share the same thing.

In our society there is a premium on uniqueness, on scarcity, and on innovation.  With prayer we can reverse that, how do we all have similar prayers, the prayers that are the strongest are the ones that we share, and what prayers persist through time that express some deep ineffable sense of what it is to be a human being or cyborg (versus perhaps a robot or AI).

Now lets talk about programmability.

So this is nothing new, prayers have for ever been intertwined with algorithmic operations to achieve certain actions. We call this ritual. It is hard to look at something like the iching or geomancy  and not see an algorithmic computational process.  However, historically money has been divorced from action. In order for your money to do anything you need the help of the law (or business). In our society legal contracts enforce complicated economic transactions.  With computational money (blockchain or otherwise), we can can create the contract as a piece of code attached to the money itself.    From the point of view of prayer this is fascinating.  What is the relationship between counting the rosary beads and saying our lords prayer, what is the relationship between burning money and praying to my ancestors, what is the relationship making a prayer and making a donation.  What if our prayers executed the ritual itself?

Again,I am not sure if this is important. There is something about the physical act of embodying a ritual that makes it powerful. If we offload that to a computer what happens then? But there is also something powerful about conceptualizing a ritual in algorithmic terms and rethinking non-linear rituals, rituals of O(n log n) complexity. NP-hard rituals. Why do we have ritual activity in the first place? Is this just some sort of dysfunctional neurotic action that prevents us from doing something useful in the world. In which case YES – lets totally offload it to a computer.  Does it satisfy some deep human desire to connect with something eternal, ephemerial, illogical, and/or unknown or unknowable?  Perhaps yes too, but why not conceptualize it in the way that we have created conceptual art – what is conceptual prayer?

Is the blockchain the only technological enhancement we could have for prayer? No. We could have local, rumor based prayer on the scuttlebutt network.  How is this sort of prayer different from a blockchain prayer.  Popular prayers are popular because they are propagated by the network. In the a blockchain or token based prayer system prayers are cloned tokens.  In a rumor based prayer system you are more interested in the prayers closer to you in your network, in a blockchain system, prayers are equally accessible.  The blockchain is about exchange of value. By putting your prayer on the blockchain you are entering into an explicit exchange. Rumor networks are about communication. By sending or following a prayer you are not exchanging energy but amplifying.  You are part of the prayer tech, you are not the one doing the praying.

What about a prayer consensus algorithm?  When I first started this project I was thinking that we needed something like proof of prayer instead of proof of work. That I needed a new form of consensus.  That prayers would only be executed (or prayed) depending on the number of nodes running the prayer blockchain -like prayer wheels.  But I have been able to incorporate this into the prayer token smart contract. It may be more elegant to build a separate blockchain for prayer. I look at established religious institutions like the Catholic church and it is as if they have a separate blockchain with a distinct consensus algorithm running besides that which governs secular institutions. But then the Catholic church is just the structure of the Roman empire in new clothes, so these institutions themselves bootstrapped on top of existing structures.

Prayer Blockchain – background thoughts 1

I am working on my talk on the prayer blockchain. And I wrote down a bunch of my thoughts on exchange and prayer that
are not appropriate for the talk but I figured I would post it. This is the first part…

The prayer blockchain is about rethinking exchange and value through the metaphor of prayer.

That is a long title and blockchain is sexy so you you know prayer blockchain

So lets unpack what I mean by a prayer blockchain and why I built it and what you can do it

(I am going to include this in all my prayer blockchain quotes)

First lets talk about Exchange
There are many different ways to exchange things and many different reasons.
The most popular way to exchange something is through the medium of money. I give you $2 and you give me a coffee, probably like $3.50.
I really never thought about money except perhaps how to get it, or worrying how to save it or grow it.
But I really never thought about money from first principles. What IS it? where did it COME from? It is so pervasive
it is almost like the air we breath – the medium that we move through

Years ago, I read David Graeber’s book DEBT – and it blew my mind. I was like oh Money is a social construct.
I am a thoughtful and inquisitive person and I am not sure why it took me so long to see this but there you have it.
Many people trace records of transactions back to temple donations. Like how many sheaves of wheat someone donated or took. Money replaced this in what is called the AXIAL age (by Karl Jaspers). This is the time when the great philosophical systems of the world began. We have Presocratic greek philosophy, Confucianism, the Buddha, the Upanishads, the Hebrew bible. It was the creation of symbolic systems of value and exchange (economic and spiritual). When you have symbolic objects the question arises of how we affix and transform the values that those symbolic objects contain.  This can be something like sin, or a computer variable.

These are all systems of reasoning and value, and Money too is a symbolic system of reasoning and value.
Money is just bits of paper that people exchange to keep track of what people own one another. In this respect it is related to DEBT.
DEBT is the idea that you always owe someone something and it too is a pervasive feeling and metaphor in our culture. The thing about money is that it is quantifiable. You always know exactly your relationship to someone else through this particular perspective.

But this is not the only way to exchange things The other big method of exchange is the Gift. The gift is another way to exchange goods and the gift giver and gift receiver are forever linked in a non-quantifiable relationship to one another. Money is fungible, that means each dollar is the same as ever other dollar. It is easy to repay someone that has loaned you a dollar. Gifts are generally non-fungible. A fidget spinner and a bayblade are not the same thing. If I give you a gift of a bayblade it is not equal to the gift of a fidget spinner. Granted I could give someone a gift of $10 or bitcoin. And then the gift would have a specific quantifiable value. But when people exchange gifts there is generally not expectation of payback although there is a feeling of indebted. It is curious who benefits more from the gift – the gift giver or the gift receiver. And then there are material benefits beyond the gift itself. If I am a philanthropist, donating buildings, then my gifts grand me social status and perhaps bring me into a network or reciprocal gift giving.

This is codified more strongly in some cultures. In china for example there is the notion of Guanxi, which is a network of gift giving bringing two people into relation through the exchange of gifts which can never fully be reciprocated.

But back to exchange. What is exchange really about? It is about desire and connection. If I exchange something with someone else it is because someone WANTS something, a new car, or a house, status, or power. Even in the case of gift giving the gifts are not given with out some purpose, if it just the desire to give aa gift in order to give pleasure to another person.
Exchange also serves to solidify connections. Gifts more so than money. If we think about exchange as an equation and the equal sign as a connection. We can easily make both sides of the equation equal in the case of monetary exchange and some how weaken the importance of the equal sign or evaluator. But in the case of a gift we can never make both sides equal since gifts are unquantifiable.

What about PRAYERS! Yes that is my project. What is a prayer. A prayer is a sort of unmet desire or a desire for a gift. It is a connection with something immaterial. If we think about exchange as an equation and money as an equation where both terms can equal one another, and gifts where both terms never equal one another, them a prayer is where there is only one term. It is like a partial differential equation. There is something beautiful and powerful to me about this. That prayers represent an exchange or connection with not only something unquantifiable but immaterial.

In Parmenides’ poem “On Nature” – our protagonist, the goddess, talks about what we can talk about. We can only talk about what IS we can not talk about what IS NOT. There are three interpretations. That this is existential or ontological. We can only talk about what exists, we cannot talk about what does not exist. Another is that it is veridical. We can only talk about what is TRUE, not what is not TRUE. The third is predicative (I think) or essentialist, we can only talk about what something is. Like I am a brunette. We cannot talk about what something is not, like I am a blond (when I am a brunette). Why this is the case and which sense represents the statement of the goddess? This is beyond a blog post about the prayer blockchain.

I always thought this had something to do with the ancient greek mood of the optative which is for talking about things that do not exist. If it rained today I would have worn a raincoat but it did not rain so i did not wear a raincoat. We can say this, so I don’t think this is what the goddess is referring to.

The IS in these statements function as the equals sign in an equation that reconciles values. The veridical function is the function of money. Something is true when both sides of the equation equal one another. The predicative function is the function of the gift, when something is non commensurate with anything else or unquantifiable. It is what it is- it is definitional. The existential function is the function of prayer, the fact that I have a desire or wish is all I need for it to exist. It has no other term that it relates to. I have no idea where I am going with this, but I think a lot about Parmenides, it is the name of my computer.
Back to Prayers.
This is sort of an unmet desire or an unreciprocated desire. It is like the desire for a gift. Now there are many different kinds of prayers in different cultures. This can be a prayer like “Now I lay me down to sleep I pray the lord my soul to keep..” Or the Jewish declaration of faith – the Schma – Hear O Isreal the lord is god the lord is one. Is this a prayer or an affirmation? I am not sure, but the line between prayer and affirmation is blurry. Or a Hindu prayer that you may say as a religious person or a bourgeois yoga practitioner. Ohm na mo guru dev na mo – “I bow to the infinite teacher within.”

So I am interested in how we can reformulate our conceptions of value and exchange to include these sorts of desires.


Strawberry (er Ethereum) Alarm Clock

In the epic film, Beyond the Valley of the Dolls, by Roger Ebert and Russ Meyer. There is a band called Strawberry Alarm Clock that plays in the party scene.  The movie is nutty-  a campy midnight movie written by Roger Ebert?!?!?  It is quite different from the book, The Valley of the Dolls, by Jacqueline Susann, another cultural milestone. But lets proceed to the business at hand – the blockchain.

This morning I worked on scheduling prayer executions on the Ethereum blockchain. Lets say I have a prayer, Miserere Mei Deus (really a song but lets go with prayer it has an interesting backstory too). I want it ‘prayed’ Easter at 6pm, Rome time.  There is no way to do that out of the box on the Ethereum blockchain.

So what are our options? I found 3: AION, Ethereum Alarm Clock or Oraclize. There are a few AION projects. This is the one to look at. It uses an off-chain system to trigger the contract execution at a later date. This is not decentralized, this does not look like a robust solution.

Oraclize lets you access data external to the blockchain (like an oracle).  But this would make the prayer project dependent on something centralized which would defeat one of the reasons I am using the blockchain in the first place.

Enter Ethereum Alarm Clock – another non-decentralized service. This uses another set of nodes -time nodes (i thought time lords at first which is a cooler name) to monitor the schedule.  Also not going to use this.  Reading the documentation has given me a headache, and all for a side chain! Oh the humanity.

This is what I have decided to do:

I am baking into the prayer amplifier and prayer creator a new function – the prayer scheduler or ‘pray’ function.  This is a public function so I plan to ping it from my ‘glowing prayer orb.’  Whenever someone prays, amplifies a prayer, or runs the glowing orb ($99.99), the smart contract checks and sees any prayers have been scheduled in the past but not executed (prayed). And it then ‘prays’ those prayers.

I am ok with this strategy. Indulgences alone will not get you into heaven.  You cant just buy your prayer. If other people are not praying then your prayer will not be executed. As the ancient Romans used to say – Do ut Des.

Consciousness and Music – The Spotify API

This image is from a paper that I have not read, but I liked the graphic because music like brain activity is represented as a wave.  Is reality a particle or a wave? continuous or discrete?

My husband used to be a DJ and would describe to me the ways that he would structure a set to excite a crowd or calm a crowd. And most people connect certain songs to their personal histories or memories, even consciousness.  Many people believe that before we had spoken language we had song.

What is the connection between music and the mind? I have no idea – there are a ton of different thoughts on the matter and this line of thinking is anything but original. I was talking to a friend who was interested in exploring the spotify api to generate playlists to elicit certain emotional or mental responses.   This prompted me to take a look at see what exactly was possible with the API.

This also coincided with a conversation I had at RC with some folks on how personal a music player is. Different people want different things. One person wants to normalize the gain – (ie make all the songs the same volume), another person does not care about this, but wants access to all the songs that he skips on Spotify to help build a playlist.  Is this functionality that we have access to?

First off, this is sort of an amazing project: 30s Drum Machine. It is a drum machine made from 30 second Spotify samples. The repo is on github for your perusing pleasure.

So first off we can read public playlists and create playlists. We can search for artists, albums, tracks.  or playlist based on a number of parameters including bpms (so you can imagine automatically or technically aided DJ sets.

You can get a user’s recently played tracks but not recently skipped tracks. However, you do have access to user’s personalization preference which means you can probably create custom DJ sets on a person or population basis, which is kinda interesting. Imagine a VR world where everyone is in a club but hears a different song with the same beat profile or profile that elicits the same response,

There are a bunch of libraries in various languages referenced on Spotify but a quick google also turns up Haskell and Rust libraries that are not referenced on the Spotify site. Not sure what I am going to do with this, I will probably do something in March if nothing else so that I can have an excuse to have a very very mellow party.

Alternate Smart Contract Framworks – Codius

I got this really nice infographic from blockgeeks. For those of you that are not familiar with smart contracts, it is a contract that automatically executes when the terms of the contract are fulfilled. It is trustless, so you dont need a lawyer or any other third party to verify the transaction because it is run on a decentralized blockchain.

Last week Benjamin, Tenor and I did a whiteboard session around an idea that Tenor has for a blockchain mechanism for communities. I am not going to talk too much about the idea, because hopefully we will build it and the I can write it up along with demo, but it caused us to look at the smart contract landscape.

But why use a blockchain solution in the first place?  For me the first is public infrastructure: The idea that you can deploy a program and not worry about the dev ops reminds me of the ORM (object relational mapping) spearheaded by Django and Rails. It hides away a bunch of complexity (in ORM that would be SQL, stored procedures and the like), and allows people to work on business logic and specific solutions rather than tech infrastructure or boilerplate.

The second reason is transparency.  Blockchain smart contracts allow anyone to not only see the code, but see how it is executed. It is as if you gave everyone access to your internal databases and log files. Sure this is possible without a blockchain solution, but blockchain gives you a standard way to describe and access this information.

With decentralized smart contract networks, we do away with the dev ops part of tech infrastructure. One issue with this  is that money is necessary to deploy and execute smart contracts, which in the case of Ethereum and microtransactions, can be onerous – perhaps more than building your own infrastructure and paying an engineer(s). The second issue is the idea of consensus. How do you know that your contract is executing directly? Are you going to run on a public blockchain or a private blockchain and lose transparency. This final question is not one that we have solved completely, but we have started looking at alternatives to Ethereum in order to execute smart contract affordably.

First up was Codius, built by the folks behind the Ripple, XRP, XSpring, etc.  Ethereum has a parameterized approach to smart contracts, you create a solidity contract and pay to deploy it to ethereum and that is it. The currency and the contract are intertwined. Codius is much more open ended.  You create a smart contract in an language you like, wrap it in docker and deploy it to a codius host.  Anyone can be a codius host, it is sort of like a bitcoin or ethereum mining node for smart contracts.   Payments and then made and received through the Interledger protocol that is run on another node (or service). The currency and smart contract in this case is decoupled. It is an interesting alternative to the type of smart contracts initiated by  bitcoin or counterparty or Ethereum, and the goal is to keep the transaction costs down in deploying and executing a smart contract.

We are exploring a few other smart contract technologies but this look promising.