How to Build HoloApps

How to Build HoloApps

The Microsoft Hololens enables an entirely new immersive experience with computing. There is yet another digital layer that we have the ability to tap into and build upon. It is profound when you deploy a holographic model from your 2D computer to the 3D world.

What makes the hololens different from other types of computing platforms? What if holographic images became ubiquitous? Are holograms anchored to points in the world the future of distributed computing. What about holographic bitcoin nodes? (Maybe a stretch).

Disclaimer: Prior to the last month, (late July/ early August) I had never programmed in C# or with the Unity platform. I could have used Javascript but everything I read said that specifically for this type of development it is best to used C#. Compiled, more powerful etc.

I wrote this article on my phone as I built out the project.

From the start I did not want to think about the end result of seeing something floating in front of me and being able to interact with it in 3D space. Let alone voice activation built on NLP that could connect the Hololens to the REST APIs of my Bot.

Still I was able to get a digital object in front of me. The first being a cube, then a plane, then planes, then a bike, then bikes.

I prefer to think in the different components the HoloApp needs to accomplish the goal of ar cpq (Augmented Reality Configure-Price-Quote).

I know the NLP has to be trained to match the right utterance. I know that Bot has to gather the right parameters to be serialized in a JSON object. I know the scripts that allow me to interact with the Holograms have for the most part already been built. I know that the 3D models from TurboSquid cost money and it will be tough to build a compelling demo with the free ones. I know that the GUIs will need to look great but also be easy to interact with for someone who has never used a Hololens. That the story of configuring a product in the Hololens has to make sense.

The things I dont know about; how to consume our APIs directly, yet, or how to use spacial audio and spacial mapping and incorporate it into the demo.

The Hololens is amazingly beyond what your base ideas of holographic technology is. In a sense any prior exposure to what you would think as the ultinate vr future is limiting. With this in mind, it is important to understand that tapping into this digital layer requires you to think about the expirience differently.

One of the GUIs was all I had to figure out to realize that this new form of computing was the early stages of tech. It is early. Very.

Ironically, it put into perspective that yes we are living in a time of incredible technological advancement, but still, it is very early. The GUIs are surfacing the state of underlying data sources. This could be a record in Salesforce, data from an entity in Dynamics, data from a Smart Contract on the blockchain. The GUI in VR World needs to be diegetic. The cards need to be interactible, by gaze, gesture, speech; they not only look cool but are there to augment the expirience of the user.

It is not easy to type in VR.

This is another reason why bots and VR are a catalyst for each other in that the NLP used in bots will be used in VR experiences.

The other interesting concept in VR is scale. An object’s scale and distance from the main camera makes all the difference. Being able to grasp what distance and scale any object is will make developing for the Hololens much easier.

Another component of this world which I am just getting into is Raycasting. Being able to cast a ray from the main cameras eye to an object should affect the objects state, look, feel in VR. By having the light hit a gameobject witg another certain material applied is what makes the experience unbelievably realistic.

The mesh filter creates a skin or surface and Mesh renderer determines shape color and texture.
Renderers bring the MeshFilter, the Materials and lightning together to show the GameObject on screen.

Animation is next. I need to be able to have voice activated animation drive the configuration of the product.

One of the reasons being that the airtap motion is very confusing at first for users. The best experience would be having an object expand into its components for configuration, having the user select different options, and then validating the configuration bringing the model back together.

The way to achieve this would be to have the game recognize keywords or intents via LUIS, and then have various scripts applied to the game object that make it interactible.

A manager game object.

Animations can be achieved with scripts or with the animator in Unity. I tried understanding the keyframes and curves but still have not figure it out yet.

I need animation to show when a user either hovers over or air taps a selection for it to change the corresponding object in the configuration.

I achieved this using renderer.enabled onGazeEnter. I then moved the 3D box collider corresponding to the different objects out to where the tile was.

I have the select options down, either by voice, air tap or clicker.

I also added in Billboarding to the quote headers so it always faces you as you are configuring the product. I added in sound so the user knows when they make a selection and lastly I am working on getting the 2D images of the options into the tiles in addition to making the tile green upon selection.

Actually pretty tricky, but ill figure it out.

When calling the NLP from within the hololens via direct line REST API, there needs to be an avatar the user can speak to.

This concept of having the audio come from an actual thing gives it a persona. The next couple steps of the demo are creating the cards for every object which will be rendered based on the voice commands given to the avatar. Once this is complete I will need to work on the plane scene. Lastly, next week I will begin on adding our CPQ APIs to the existing bike demo.

32 Days until Dreamforce
After a couple hours I figured out turning the tiles green and replacing original blue tiles on selection by using getComponentInChildren and rendering enabled true or false on airtap.

About 3 weeks left til Dreamforce.

I just started on the configuring the inside of a plane demo. Again, getting the objects to the right scale and the right distance from the camera is key. We now have a CPQ webservice hosted on Azure which we are calling using a Unity WebRequest.

The next I have to do is work on rendering different textures of a GameObject on hover.

Also, do I call the webservice directly with a Unity Web Request or do I hit the Bots API which then calls the WebService using the Unity WebRequest. Probably the latter.

Other than that, its now a matter of just dialing everything in; I have the right assets, digital and physical, the scripts are there, its time to put everything together.

Ok, so actually it was the first Option. I called the CPQ Webservice using a UnityWebRequest and a Coroutine OnStart to Create a QuoteId and CartId and retrieve the options for the bike bundle.

I put this C# script on the Manager object. The other WebServices such as add option, remove option will probably remain on the gesture handler script. Sinilarly a CoRoutine is called OnAirTapped.

Tomorrow I have to work on parsing the JSON response from the web service and bind the option Ids to the gameobjects in Unity.

Once this is done then I will create the action to call the  finalize web service. After that, well, thats when we start to get into it. Makin it POP. Then ofcourse running into problems x,y, and z but ultimately heading in the right direction.

I ran into a few serialization errors, to say the least. After hours of testing different scenes, debugging, I have a stable project back.

The next part I have to develop is the game loop and surfacing the data in the GUI. The game loop takes an index of scenes compiled and directs between them. Advancing levels in a game, same concept. The 0 level I need to finish is a switch case where if bike A is selected go to scene A, if bike B, scene B, C, scene C.

The three bikes will be rotating and upon selection it will LoadApplication (scene#).

The other game loop will be to Finalize the configuration. Upon the user saying “Finalize”, the KeywordManager will set the Finalize gameobject to active. I have an if statement in the gameObject that is this.SetActive (true) then StartCoroutine Finalize and LoadApplication (0).

Possibly some other cool stuff such a sounds and showing the quote etc. before going back to the selection scene.

The Plane is still a work in progress. It is a different experience because of the small field of vision of the Hololens. It is still very cool but I am working on a solution to make it more of an AR expirience vs VR. Overall, both projects have come a long way. Leveraging the Holotoolkit, exporting Unity Packages, googling and reading books on C# and Unity all have had huge impact.

There is about 10 days until dreamforce and the last 10% of any project like this is the toughest.

It should come down to the wire, it always does.

Last night I might have figured out a powerful and reusable way to build Augmented Reality components. The Get Renderer.enable can be applied for any sort of dynamic action. Here are my notes:

var x = GetComponentInChildren <Renderer> {}

x.gameobject.renderer.enabled = true

x.gameobject.renderer.enabled = false

everything is a game object.

overlay the options for the bike selections and on selection render.enable = true for the corresponding text.

Essentially by having the different object within a parent rendered based on conditions being true or false in the parent can tie together the children components i.e a change of color and text showing up.

I still have some testing to do but I think this may enable a lot.

I have roughly a week to dial everything in. The plane will be today. Working on rendering different textures. Other than that it is moving the colliders for the other bikes and creating a bike select script.

I have about 3 days left and the last week has been a gamechanger. With some help(would not have been possible without them), I was able to build and deploy the last parts of the project.

Item 1) Serilaization With Newtonsoft on UWP takes a little toying with. Download the package and a portable path and download a seperate dll I will attach here.

Net: major part of the project.

Binding data to the GUI dynamically. By getting the GameObject and setting the material.

This was also huge and done with code below:

The Biggest thing just figured out and this was for the plane originally but applies for the bike was being able to for each mesh in parent render.

Today I built the plane scene, added keywords so the options can be said.

Still have to bind the quote number and updated price.

I worked two months day and night to be able to deliver tomorrow.

There is no doubt in my mind this was one of the biggest challenges I have ever had. From learning Unity, learning C#, learning how to Call Apttus APIs, importing 3D models and scaling and texturing them, solutioning the build, designing the GUIs, making it voice activated; overall yes, it was very difficult.

There were two things I will need to figure out with the build. How to render different materials of a GameObject On Tap… but I have… just thinking on it still.

And how to deselect an option in a group before selecting another.

Other than that, yeah, two three months of work. Never thought I’d work on that.

Enterprise Augmented Reality, Apollo.

Top Tips:

  • Deploy your apps to the Hololens using the USB cord. I was using WiFi for the two months of development and on the last day realized deployment took 30 seconds with a USB. (Depending on the size of the app, it could take 15 -20 minutes over WiFi).
  • TurboSquid –> Blender –> Unity
  • Leverage the Unity Asset Store
  • Export your Asset and project Settings / Create External Packages
  • Final 10% is the toughest


  • Shaders
  • Storyboard it out
  • Create Prefabs
  • Export Unity
  • Additive vs Subtractive Color
  • Vector3
  • Quaternion
  • Mathf
  • Everything is a GameObject
  • Declaration before Definition



Microsoft HoloAcademy

Unity Docs

Intro to Game Design, Prototyping, and Development  






CryptoSlackBot: n. A bot that executes buy and sell orders on cryptocurrency exchanges.

Aptbot: n. A bot that executes Quote-to-Cash functions from within messaging platforms.

Do you want to build your own slack bot, universal bot, facebook messenger bot? Eventually list it as an App and publish the bot to a directory?

Over the past 5 months I have developed bots for: Slack, Skype, and mobile web.

There is a common pattern when building these bots: dialog triggers, parameter gathering, message brokering, and response formatting. In this article I will explain:

  1. How to Build a Bot
  2. How to connect the Bot with any REST API
  3. How to host and deploy the Bot
  4. How to create a Bot API

How to Build a Bot

These are the tools and languages you are going to use to build the bot:

When building a bot it is important to understand that you are abstracting away the UI with intelligent cognitive services. There is an abundance of web based services and applications that are locked into their own interfaces. We have arrived at a time where often we interact with apps without a UI. Why do I need a phone to call an Uber, can’t I just tell the uber bot in a Slack channel to pick me up from work and drop me off at the train. The bot needs two parameters: from and to.

This new paradigm of having intelligent assistants is deemed conversation-as-a-service.

The front-end is the conversations that you will have with the Bot to gather the paramaters that are passed to your server in the form of a serialized JSON object. The server deserializes it, and responds back to your bot with its own serialized JSON object.

The user interacts with the bot –> formats the request with the parameters –> the API retrieves the call data –> responds with error/data –> formats the response to the user.

When gathering the parameters with a bot you need to initiate the conversation or dialog. To start a conversation or dialog you include an array of words associated with a particular conversation. When the bot hear to execute a program, this is exactly triggers the specific dialogue, and ultimately what drives the JSON request to the API service.

You can also combine Natural Language Processing with your bot to make it more intelligent using a service like LUIS AI. Take an utterance and match it to a particular intent which is tied to a set of questions (the dialog).

Once this is achieved, the bot will store and pass this as a request in a serialized JSON object, the server deserializes it and responds back with callback data.

Everything in Javascript is an object.

Everything, in Javascript, is an object.

URL Hacking | Passing of Parameters

Once you pass the various parameters needed to the API, it responds back to your Bot at which point you can drive another action.

Essentially you are pulling in the functionality of any web service into a command line where you have interactive programs branching and executing various functions.

Let’s Start Building

There are a number of company’s that enable you to build a bot:

  • Howdy.Ai’s Botkit
  • Microsoft Universal Botbuilder
  • API.AI

In order to get one of these up an running you are going to need to execute the following code.

Botkit for a Slack Bot

In this turorial I am using Botkit.

cd c:
mkdir newbot
cd newbot

npm install botkit
npm install superagent
npm install body-parser
npm install express

npm init

git init
git commit "first commit"
git push -u origin master

git add .
git heroku:set -a <appname>
git push heroku master

Let’s break it down:

The first thing we are going to do is create a new folder for the bot application:

cd c: 
mkdir newbot
cd newbot

Once you have your new folder you are going to create an app on Heroku.

Then you need to install the various NPM packages that you need to get the bot up and running.’s Botkit is a great way to customize and get a bot up and running for a variety of different messenger platforms.

npm install botkit
npm install body-parser
npm install express
npm install superagent

Express will be used for the server and body-parser will be used to format the hypercards in the platform channels.

npm init will create your app’s JSON package.

npm init

Once you have your application setup the next step is to deploy it to Heroku.

Make sure you setup a Procfile so that your bot can “live” on the server.

Create a Procfile in the directory with the text worker: node server.js

Now that you have the base bot app setup you can begin deploying the code to Github.

Create the repo on Github and then set the remote in your directory.

git init
git commit "first commit"
git push -u origin master


Connecting Bots to a REST API

Download the npm module of whatever rest api or wrapper you want to bot to connect with. Check out my github page to see examples.

Deploying to Heroku

It is important to configure the vars in your Heroku Application so that they are not explicitly declared in your code.

The variables needed are your Slack Apps Client ID and Client Secret.

git add .
git heroku:set -a <appname>
git push heroku master

Deploying to Azure

It is important to configure the vars in your Azure Application so that they are not explicitly declared in your code. You also want to register your app on the bot framework you can connect to various platforms/services.

The variables needed are your Microsoft App ID and Microsoft Password.

Create an Azure account and create a new Web App. On the Bot Framework portal, set your website and app id/password.

If your web app is up and running and your bot is deployed you ahould be able to interact with it on your site.

OAUTH2 and Slack

Instead of just having a custom integration bot, what about creating an actual Slack app?

This is arguably the trickiest part of getting your app up and running.

You want to enable other Slack teams to use your bot in a secure way.

Slack Authenticate’s users by exchanging an authentication token for a bot token.

In doing so it gives your app access to the org with the different access scope.

This can be for bots, /commands, and webhooks user access.

The key is creating the 1) response http request 2) then having the response 3) redirect to the /x http request 4) which contains the oAuth 5) and grant’s access.

One way to test is using ngrok and pointing the request URL to your local server which has the public reachable IP through grok.

Enter the Grok ID on your App ID in Slack, in the interactive buttons, and the URLs.

start up ngrok

ngrok http 8080

then start up your app locally

node server.js

then inspect the ngrok requests

ngrok http 4040

lastly, go to localserver in the browser.

In Conclusion

The bot logic can be used across multiple platforms in that there can be multiple inputs from any messenging platform/sensors/Holograms; the bot is the broker of these inputs to other platforms. When building keep this in mind. The bot is and will continue to be a catalyst for web services to be brought into single platforms. The new OS is immersive in that we have untapped, disconnected mediums that can now leverage the same bot logic and state. 

Next part will be on how to create your Bot’s own API.



This article is about what hasn’t been in the headlines in the crypto space.

By crypto space I mean: cryptographic currencies, decentralized ledgers, distributed consensus protocols and thee / a blockchain protocol.

It is fast pace, riveting, real-time, global; it never sleeps.

From the highly anticipated Halvening, to the Rise of Ethereum and the Fall of the DAO, to the next big anticipated ICO; this year has arguably been the most exciting for this global phenomenon.

I haven’t posted in awhile, it still feels like the wild west times of cryptographic state transition machines. Lots has changed but governments still do not know how to classify it, exchanges have trouble securing it, people still can’t get enough of it; a true computational advancement growing before our eyes into a new global digital layer.

You have computing nodes around the world opting in to share the concurrent state of ownership of digital entities coupled with an arms race of specialized chips consuming immense amounts of energy incentivizing the search for a mathematical proof that secures and enables a robust cryptographic monetary system.

A truly born global and open enabler of immediate value transfer.

Clearing and settlement that relies purely on the underlying cryptographic stacking of blocks full, and I mean completely full, of digital cryptographic signatures.

On the Surface

Someone can securely hold digital entities of value, they can be exchanged and used anywhere in the world, there is no one that tells them how much they can send or spend; the rules are written in computer code.

One can engage in instant digital arbitrage and use a physical proxy for food at a restaurant or a means of transportation. This is the current reality we live in, or in other words:

There is a digital layer that not everyone in the world knows about. This layer is operated in p2p cryptography. It has already arrived, but is not evenly distributed yet.

One could leverage this layer in reality if they know the way to access it:

One way is to use Shapeshift to exchange one alt for another, set the withdraw address to a web wallet, send the alt from a web wallet a global digital exchange, sell for Bitcoin, withdraw to a wallet associated to a Bitcoin debit card then go to the nearest ATM for cash effectivo.

This could take maybe 15-20 minutes.

In real time using a variety of mediums, pure decentralized digital arbitrage. A seamless flow of taking a non-tangible digital unspent transaction output and turning it into cash.

At any point, regardless of location in the entire world, you can buy, sell, short, swap, any digital entity of any magnitude via a computer in your pocket and then go and use it IRL.

It’s unfathomable.

What other asset class can you trade digitally and globally at any time then immediately exchange for cash? That has this type of volitility? 

Now if buying dinner or booking a flight is the first step, this is only going to become more and more prevalent as more asset classes are put on the blockchain. If I can spend coins on the blockchain, why can’t I earn coins on the blockchain?

On the Machine Layer

Machines do not need a UI in order to interact with the blockchain.

You don’t have to be there for a machine to interact with your endpoint.

If right now I can do all of the above, trade, sell, spend, crypto, pull out money, then I should have just an easy a time earning the above via some digital mechanism.

This is what the 21 computer enables – one’s machines to earn bitcoin per http request.

This still really doesn’t encompass the profound implications of being able to directly interface with a global value transfer network at the command line or by writing a consumable API. Tapping into the network should be easy, creating a closed loop once in should be even easier.

Something I thought is fitting is it comes down to input vs output. The analogy is equivalent to one Elon Musk mentionend recently in that as humans our input sensors are incredible, however the output is very inefficicent ( I have been typing on the train as fast as I can for the last half hour and I am barely at 800 words). It’s even worse when we are on a phone. We have two thumbs. Two measly thumbs to try and explain. Nueral lace is a way’s out but I think being able to incentivise machines for output is a step in a indirect but somehow related path.

I need to make it more of a habit to code in Python on my computer.

__init__ method   | Flask 


I haven’t been writing as much because I have been building bots. I have been using’s BotKit to create a number of Slack bots.

Following tutorials online and eventually creating the conversations handlers, and connecting them to various APIs using a combination of npm packages, node.js, and heroku.

The platforms that are driving the new shifters Slack, Facebook Messenger, Microsoft. The big differentiator is that Slack was made enterprise team first. They have the most momentum and a great indicator of this is their growing appexchange.

As an operating system for teams of any size, there is a huge upside to bringing in the various tools one would use on a daily basis into one place.

Being able to leverage /commands, Webhooks, and bots will enable new levels of productivity and ultimately drive business outcomes.

I will have a post soon on how to build these integrations to Slack.

The next bots I make will be with Microsoft botbuilder and Azure.


serialize JSON, deserialize.


ICO’S and CryptoArbitrage

There has been a recent increase in the number of Initial Coin Offerings.

Lisk was a solid one. Despite the DDOS on the web wallet at launch, overall the coin has given strong returns, has gotten some great backing, and a has accumulated a relatively high market capitalization.

There have been a few other ones ICOs recently that I have not participated in. The big thing here is your looking at the the tech, the team, are devs going to build on the platform, what is the main differentiator, what exchanges are going to list it and last but definitely not least; follow the whales and traders on Twitter.

There is no question whether or not you can profit off Alts, you’re hedging a quick come up versus a platform and community that contributes to growth and continued innovation.

Don’t Just Hold

From an immediate coin flipping for profit point of view I would make sure that you have a few different mediums you could use to exchange the altcoin into BTC in a relatively fast way, within at least an hour. Confirmation times and amounts do vary by exchange and by the level of identity verification you have on the exchange but ultimately you want to make sure that if you are going to be investing in an alt that you know that it can be converted back into Bitcoin with out jumping through too many hoops.

When making an exchange in the crypto world it comes down to liquidity and security. If you want to you can completely trade via your phone, log into your various wallets via web browsers, and refresh and count blocks until your money has moved. Not really recommended for various security reasons but it does work.On the flip side you can get a device for an offline wallet or create, print, and send a multisig paperwallet.

Just a side note I would make sure when trading that you send a little bit first to an address verify it got there and then send the rest, just good practice. On the flip side if you are cashing out from bitcoin to a bank account make sure that the card / account your are withdrawing the money to is not closed or inactive.

Definitely keep an eye on:

WhaleClub, twitter feeds

check what time it is in China, NY, and SF.

On the Protocol

I often forget that the code that operates all of this can be directly interfaced with. Actually sending the raw transaction data.

Actually piecing together EVM assembly.

Review the code of the protocol. In a sense if you find a bug the bounty could be millions.

On Nodes

The number of nodes that keep a copy of the blockchain needs to be increased. This also means that the number of nodes running the same version of a protocol needs to be increased as well. A network of Raspberry Pis can create a interactable global digital layer if you know how to directly interface with the Bitcoin Protocol or a high level level language that does so.

I don’t think that Ethereum should soft fork or hard fork, disclaimer: did not throw DAOn.


Overall I think that there is a bigger trend in play that is the same way that everyone learned typing, cryptography will be the same way. Everyone will be learning / using cryptography.

Think about that you have this entirely new layer that not that much has been built on yet.
Look around, nothing really is running on the blockchain yet.
Think about what the Internet as a communication layer between people looked like.
What if cars ran on a P2P blockchain mesh network. Each stored a copy of the blockchain.
Would it make sense for cars to be connected via a blockchain layer vs an Internet layer?
Or better yet is a easier for to achieve the outcome by calling directly it from a blockchain?


More Research on:

Seg Witness

OP Return

Recursive Bots and NLP


A big question was whether or not Bitcoin was going to be the first or the last cryptocurrency. It’s definitely not the last, but will the alts stick?

Which of the big 5 tech companies will make the first major Bitcoin acquisition?




This post is from my time at the Consensus 2016 Hackathon a few months ago.

The consensus from the 2016 Hackathon was that smart contracts and decentralized applications will drive blockchain innovation and businesses into the future.

This year’s hackathon was held in the heart of Times Square at Microsoft’s Technology Center. I would say the event had about 4x as many devs compared to the hackathon last September. Out of the 25 different teams that presented on Sunday, about 15-20 were built on Ethereum; a huge increase from the 3 of 15 teams at last year’s hackathon. A few of the applications including the winning one, Decentralized Energy Utility, were built using Hyperledger on IBM’s Cloud and Tierion was used by several teams as well to embed data at scale into the blockchain.

Though the majority of the focus from a development standpoint was not focused on the Bitcoin blockchain, there were exciting  announcements by 21 around the Machine-Payable web and Bitcoin as the 3rd layer to the Internet. They have now open sourced the 21 libraries which effectively could make any computer a Bitcoin computer. This could spur a whole new set of financial innovation webs with different P2P escrow and lending models, micropayments and connected blockchain technology stacks.

Another huge launch was the Bitcoin Market Open Bazaar. This is a next generation open market built on Bitcoin. This is the first of many of these types of markets and platforms or even business models that will be completely recreated using blockchain technology. In order to support these types of new business there needs to be a scalable backend .

One of the biggest takeaways from the hackathon was that Cloud platforms such as Microsoft Azure, IBM Cloud and AWS are partnering with various Smart Contract and blockchain companies to build consortiums and spark blockchain innovation. This could be by listing the app on the platform, running POCs or sponsoring / hosting hackathons.

These huge cloud companies have started a chains race to attract the best developers and the newest most innovation companies in an effort to “make blockchain real”. By leveraging the cloud infrastructure of these different platforms, blockchain applications can be rapidly deployed and scale. With this notion in mind, I knew going into the Hackathon the I wanted to build using the Azure platform.

We built MicroSaas using Blockapps, the best-in-class blockchain application platform that enables developers to quickly build and scale applications on Microsoft Azure.

So what is MicroSaas?

MicroSaas is a enterprise software platform and marketplace to aggregate micro-consumable APIs across multiple cloud software vendors and service providers. Through Ethereum Smart Contracts, we enable vendors to be paid on a per transaction basis in real time as API calls are made by users. As the calls are made by the user, ether is deducted from the smart contract and paid to the vendor. If the user wants to switch vendors or do some other business function, they can buy a different contract from the market.

This new model frees users from the Per-User-Per-Month SaaS model, provides a verifiable proof of vendor service level, and it enables early stage startups in developing markets to access these critical SaaS functions. The platform also allows users to switch vendors on the fly depending on the use case, performance demands, or cost.

MicroSaaS is the name of new age of enterprise computing; it enables Business-to-Business micropayments on a global decentralized network facilitating value transfer and state transition for SMBs. Businesses around the globe will grow on the MicroSaaS platform. The traditional model for enterprise SaaS software will continue to thrive at the commercial and enterprise level but MicroSaas enables new markets and businesses where a per user per month model is not feasible to grow the business.

Instead these businesses will use micropayments to make API calls embedded within JavaScript components running the commands that drive business growth; creating a contact in a database, sending an eSignature, appending a general ledger.

MicroSaas was the winner of the Microsoft’s hackathon award; 3 years of full access to software, services, support and $750 a month of credits to build on the Azure platform via the Micosoft Bizspark program.

This is the beginning of entire new business platform built on the world’s first decentralized virtual machine. We use Smart Contracts in Solidity to store the variable state and functions of traditional objects or entities in cloud business platforms such as Account’s, Opportunities, etc.  This completely new transaction and payment model also enables other software vendors to build their businesses with Ethereum smart contracts creating an entirely new range of decentralized software applications.

It enables new forms of data verification and automation using cryptographic hash functions at each stage of the revenue driving business process.

Companies can now operate under the assumption that both parties have cryptographic representation of every deterministic property of a process. The price of the API, the outcomes of the transaction, are completely based on met or unmet inputs that are cryptographically locked into smart contracts and active on the Ethereum blockchain. The amount of ether it is going to cost to deploy the contract plus the charge for using the SaaS application can be set in the properties and shared as fact in the state of the abstract virtual computer.

This is a revolutionary concept. Shared state, distributed consensus, validity; all properties derived from Bitcoin now applied to the enterprise software world.

Individual software vendors, system integrators, and partners will leverage this technology with their customers creating an immutable history of every transaction made between the service providers.

Check out MicroSaas on Devpost.


Solidity and the Ethereum Virtual Machine

Solidity and the Ethereum Virtual Machine

Welcome to the first decentralized global computational machine.

Over the past couple weeks I have been reading the Homestead release notes, the Solidity Documentation, watching youtube videos about Ethereum; really just an all out effort on trying to understand what this protocol is and why it is a technological successor to Bitcoin. In trying to explain it to others(or even write about it on here) I come to the notion that it is:

A global cryptographic, decentralized, immutable, permissionless world computer.

And in relation to the protocols of that which it is built on.

Internet = Communications

Bitcoin = Money

Ethereum = Computation

Without the Internet Bitcoin could have never existed and without Bitcoin, Ethereum could have never existed.

Now that’s a bold claim but I’m willing to make in that I truly believe that the predecessor technology has enabled this new paradigm in decentralized computing.

Bitcoin has and will continue to enable an unimaginable number of new and disruptive applications which will impact a number of verticals. I use my Shift card every day, wake up and check the price with an eye half open, and I anticipate my full attention will be back as we approach The Halvening. But right now, I want to learn how to write Smart Contracts in the Solidity programming language. I want to know how these contracts are compiled onto the Ethereum Virtual Machine (EVM). And how this is powering the next generation of peer-to-peer technology.

Installation and Setup

Download the latest Ethereum Wallet

Install Mix IDE, the IDE for authoring Smart Contracts using the High Level Language Solidity.

Program Solidity contracts on Visual Studio

You can also use the Online Compiler

The Ethereum Computer

The EVM is stack-based execution environment that uses Smart Contracts (similar to object-oriented classes) and HTML, CSS, and JavaScript to create dApps. When you are running a decentralized application (dApp), every instruction is executed on every node of the network. This means the operands for the instructions are taken from the stack, and it is also where the results are added. This is the low level assembly code of the EVM and the resulting flow-control functions that can be found in the Ethereum Yellow Paper. Items are pushed to the Stack and can be manipulated using POP (remove top item from the stack), SWAP (Swap item order on the stack / Limit of 16 elements), and DUP (copy and order new item on top of the stack).

Memory and Calldata

The stack also extends Memory and Calldata to be used in during program execution. Memory is an expandable byte-array used to store data during program execution. It can be accessed using the MSTORE and MLOAD instructions. Calldata is a byte-array, just like memory, but it is read-only. It contains the data from the transaction that triggered the code execution in the Contract.


Storage is a map used for fields in contracts. A contract can neither write nor read any storage other that its own. Essentially it is permanently storing the state variables within the contract.

Elements of the Ethereum Smart Contract

Contracts in Solidity are similar to classes in object-oriented languages. Each contract can contain declarations of:

  • State Variables
  • Functions
  • Function Modifiers
  • Events
  • Structs Types
  • Enum Types

with Parameters of:

  • The gas-price I want to pay (gasPrice).
  • The maximum amount of gas that may be spent (gas).
  • The amount of ether I want to transfer (value).
  • My account address (from).
  • The target account address (to).
  • The nonce (nonce).
  • The transaction data (data).

A smart contract’s code resides in a Contract Account. It is unalterable once deployed.

Accounts in Ethereum

There are two kinds of accounts on the Ethereum network: Externally Owned Accounts (Public-Private Key) and Contract Accounts.

Externally Owned Account (EOAs): an account controlled by a private key, and if you own the private key associated with the EOA you have the ability to send ether and messages from it.

  • Can have an Ether balance.
  • Can send transactions.
  • Are controlled by private keys.
  • Has no code.

Contract Accounts (CA): an account that has its own code, and is controlled by code.

  • Can have an Ether balance.
  • Can send transactions.
  • Can send messages.
  • Contracts are controlled by their contract code.
  • Only send transactions in response to other transactions that they have received. Therefore, all action on the Ethereum blockchain is set in motion by transactions fired from Externally Owned Accounts.
  • Every time a contract account receives a transaction its code activates, allowing it to read and write to internal storage and send other transactions/messages or create contracts.

EOA0 —-Transaction–> CA1 = Activate Code in CA1

CA1 —– Messages —> CA2, CA3, CA4= Perform functions in CA2, CA3, CA4

EOA1 —– Transaction —-> EOA2 = Send Ether EOA2


Ether, the currency used in Ethereum, is exchanged for computation on the platform. Gas is the name for the execution fee for every operation made on an Ethereum blockchain. Its price is expressed in ether and it’s decided by the miners, which can refuse to process transaction with less than a certain gas price. To get gas you simply need to add ether to your account. The Ethereum client automatically converts Ether to gas and gas to Ether when transactions are processed.


When a transaction is sent from an EOA to a CA, it is sent with input code and Ether. The input code and ether is then processed by the Contract Account, thereby activating itself and thus executes its code. A CA can then send a message out to other (CA) contracts.The contracts are essentially talking and passing messages between themselves, in this way, sending a message is exactly like calling a function. This could produce another smart contract, send Ether to another address, register a vote of confidence, open a door to a house; virtually any sort of call to or update to the state of the decentralized network.

The total cost of a transaction is based on 2 factors:

  • gasUsed is the total gas that is consumed by the transaction
  • gasPrice price (in ether) of one unit of gas specified in the transaction

Total cost = gasUsed * gasPrice

An EOA can also send a transaction to another EOA and nothing happens accept transfer some Ether (P2P payment or ether).


Visit the Solidity website to see example Smart Contracts and write and edit them within your wallet. You will be able to use Electron by Shapeshift to deposit bitcoin in exchange for Ether so you pay the mining fee and begin deploying your first smart contracts.

Start with the following three example smart contracts.

Create a cryptocurrency

Crowdfund your idea

Create a DAO

A new block is created every 15 seconds in Ethereum. Essentially you are sending binary data to invoke state transition rules through EVM bytecode at the assembly level thus updating the distributed state of the blockchain; AKA deploying your Smart Contract.

Mining Ether = Securing the Network = Verifying Computation on the Global Computer

Next: 3 RaspPi3’s, 32GB SD cards each a running the Ethereum computer (Web3.0, next-generation peer-to-peer technology platform) running on each…

Final Thoughts

Watch Ethereum for Dummies – Dr. Gavin Wood

A global cryptographic, decentralized, immutable, permissionless world computer.

Internet = Communications

Bitcoin = Finance

Etheruem = Computation


This thing is AWESOME! I have been deploying contracts, sending transactions, and it’s all (near) real time. I can create a couple wallets and a couple cryptocurrencies and exchange them back and forth all confirming within 12 confirmations < a minute or 2. It’s pretty wild to keep the network stats up on on one screen the Wallet on the other and see them contracts confirm. Working on the front end now, possibly Salesforce integration + React.


Ethereum White Paper

Ethereum Yellow Paper


The Rise of Ethereum

The Rise of Ethereum

The decentralized nature of cryptocurrencies are their biggest strength and their biggest weakness.

Often this is the case with something that completely disrupts the status-quo. The fact that decentralized currencies are open source also creates a unique situation where that which is the best given path or fork in the long run must be agreed upon and adopted by all (or a majority of miners in this case). However, when the consensus is not achieved at the level of those who truly are driving the development, alternatives rise. This is the case with the current rise of the Ethereum platform and the current value of Ether. In terms of the number of Dapps emerging, the amount of R&D investment at the enterprise level (IBM, Azure), and of course the current rise in Coin value; Ethereum is quickly becoming the more robust, more promising, and ultimately the more intriguing blockchain for developers, investors, traders, and anyone who has seen the evolution of blockchain technology and cryptocurrencies.

Does this mean that Bitcoin is done? Absolutely not. Bitcoin is still in it’s infancy and leads the pack in mining power, market cap, investment, startups, and overall global interest. The scalability issue is one which overall means that the network is working, in an unprecedented way it is really the first instance of a decentralized global consensus protocol. The question is not how do we mitigate risk with as some will say changing the path of a couple billion dollar plane inflight, but instead, how do we make Bitcoin, the global decentralized currency of the world, work. How do we enable people to build on the platform, host a node that’s relaying transactions and strengthening the network, run a miner that’s off the energy grid.

This could mean as some have proposed increase a block size from 1MB to 2MB to address an immediate issue. Or increase the blocksize in tiers over time so that the network scales. But I think the block size debate is missing the point. We need to think more in terms of off chain solutions.Examples such as, Tierion, embedding the Merkle Root of data into the blockchain, or Payment Channels and the Lightning Network facilitating offchain transactions between two parties with only an open and close broadcasted to the network, 21 building the ubiquitous machine payment layer and true micropayments ecosystem; these are types of companies and solutions that I believe will make Bitcoin the cryptocurrency of the world, work and serve as self-evident.

Again, that does not mean that other blockchains and more platforms like Ethereum will not emerge (Lisk). It is now very evident that private blockchains, within institutions will definitely serve a place in the years to come. In addition to this, sidechains will also serve to make the entire cryptocurrency ecosystem more robust. I truly believe in the statement that Intranet (oracle installation) vs Internet is an anology for blockchains(R3) vs The Blockchain. When you have an open protocol that is globally accessible, there is an unlimited and unimaginable number of potential future applications that will arise. This does not mean that internal blockchains developed by the existing financial ecosystem will not create new innovative processes and solve enterprise problems. But, the intrinsic value in having an open protocol for the world to build on especially when it comes to fintech and the tipping point we are at with the developing world onboarding into the digital age, I believe The Blockchain truly is more promising. I still am betting long on Bitcoin and I do hope that some sort of consensus is achieved amongst the core developers in order to enable people around the world to embrace this technology. Until that happens, I am buying more Ether.

Check out the new Ethereum Homestead Release







90% of the World’s data was created in the past year.

We are living in a time of exponential technological advancement. Recursive machine learning & artificial intelligence, distributed systems and decentralized value transfer protocols, everything on the web creating real-time distributed consciousness. Exciting times.

This past year I learned:

  • how to program and build on the force platform
  • solve enterprise problems using SaaS
  • last but definitely not least, more about anything and everything crypto-currency.

This is going into the fourth year I have written on this blog and the stats have increased year after year. I just about hit 32,000 all time.


Hit 14,568 for this year. Not bad.


2013: A Year in Review



Some of the highlights from 2015:

  • Building some of my first Mobile Apps & Demos
  • Moving into my own apartment in SF
  • Presenting in 3 Sessions at Dreamforce
  • Winning the Coindesk Makeathon (& visiting NY for the first time)
  • Going to Texas for my first business trip

Focus in 2016:

  • Get 60K views on the blog
  • Build my own 21 endpoints to my bitcoin mining tutorials.
  • Build a solar powered bitcoin node and solar powered bitcoin miner bundle. (100 W Panel, inverter, controller)
  • Learn React.js Framework
  • Learn Python (Finish Learn Python the Hard Way) and write my own scripts on the computer
  • Learn Aura (Lightning Framework)
  • Continue to Learn Chinese (Mandarin)
  • Finish the Portuguese Duolingo & move to next one
  • Continue to learn Salesforce APEX Development
  • Use a Myo band during a demo
  • Build out end-to-end Lightning Experience
  • Get it – 185
  • Read The Intelligent Investor
  • Keep a Journal and write in it daily
  • Trade crypto-currencies daily using ShapeShift, Liquid
  • Drink more water

Funny I just looked at the journal and had already written down 2016 goals; they were pretty much the exact same.

I took a career development class in Barcelona a few years back and we had to do a mental exercise. It led me to the sentence:

I felt like a Boss because I was in my Prime

That is definitely where I need to get to. It’s just finding a balance between the craft, the activity knowledge, the learn knowledge; the energy, the effort, the execution. Autosuggestion kicked in, fully engaged, rested, on point, and dialed in.

I kept my blog on instead of May be making the switch soon, once I have it in different languages I could hit my number.

On my Birthday in June I wrote down a few things:

  • Get Healthy Looking / Toned / Cut-up
  • Capitalize on Bitcoin
  • Read Autobiography of  Yogi
  • Build a Solar Mining Rig
  • Learn AngularJS
  • Continue Chinese Studies
  • Build a Hadoop Cluster onRpi
  • Work smart, delegate, innovate


I have bought some of my first Stocks using Robinhood. I also am currently reading the intelligent investor.


I have bought into Ether and the Ethereum platform. I am looking into other alt-coins but primarily will be investing in Bitcoin.

Taking It to the Next Level

I have a couple Raspberry Pis, a 21 Bitcoin computer, USB & ASIC Miners, Solar Panels, just ordered a BitSeed with 1 TB of storage (5+ years of future txns), I have a Tessel 2  on the way; I want to build the total Blockchain / Bitcoin system setup:

  • 100 W Solar Panel running +1 TerraHash
  • Running a Full-Node on the Bitseed + 1TB
  • Run a Full-Node on the 21 Computer
  • Run Ethereum Frontier on a Raspberry Pi
  • Run Kali Linux on the Other Pi
  • Connect the Tessel to the 21 Inc computer

Taking it to the next level is going back to my Combinatorial Creativity Through Technology. Combining all of these different technologies, JS, distributed consensus protocols.

Then expand this to Solar Farm with underground mining facility…one day. Keep programming in Python on 21 Bitcoin computer. Just writing Scripts, learning the syntax, building the memory.

Lastly My post from 2015

Lightning Network: Packets to Circuits The Bitcoin Computer

Managing Digital Scarcity: Enterprise Cryptocurrency Applications

2015 Internet Trends



MYO Armband

Hash and Ledger

How to Setup an AntminerS5

Salesforce Lightning


Happy New Year. Live the Dream.


The Lightning Network: Packets to Circuits

The Lightning Network: Packets to Circuits

There are three problems that developers see in regards to scaling Bitcoin:

  • Micropayments are not exactly cheap to make
  • the size of blocks/the blockchain over time
  • malleability

The Lightning Network aims to solve these problems by creating hash-locked payment channels facilitating instant off-chain real bitcoin transactions.

Before we can understand what the Lightning network enables, we need to have a baseline understanding of what exactly a hash and payment channel is.


A cryptographic hash function is a way to encrypt data and verify that data has not changed. The SHA256 hash function will take any input and output a 64 character string output. In order to produce a certain hash output you must know the secret input. The Sha256 hash will always produce the same output for a given data input.

domsteil –> SHA256 –> 1773a0ebb54be6bbc0c6be79fae0799046b7ecb089b11460e0070a62c6e319af

Payment Channel

A payment channel is an off blockchain P2P payment where confirmation is done by the parties involved and does not need to be announced to the network.

By combining these two technolgies we can create the hash-locked smart contracts between multiple parties to facilitate a counterparty-risk free transaction layer on top off the Bitcoin protocol.

T+3 an existing method in the financial system was created as a settlement period. The Lightning Network also creates a similar T+time settlement system using a hash-locked smart contract and appending a transaction to the resulting hash output.

Trustless Transaction Example:

Alice, Bob, Carol, and Dave.


Alice wants to pay Dave .01 BTC, but does not have a direct route.

Alice pays Bob, Bob pays Carol, Carol Pays Dave.


Dave has R, a preimage which produces cryptographic hash H within n blocks.

Dave can now get 0.01 BTC if she discloses R to Carol.

Carol discloses R to Bob.

Bob discloses R to Alice.


Pure P2P offchain settlement.

For more information read about the Lightning Network here. The Bitcoin Computer The Bitcoin Computer

After months of anticipation my Bitcoin computer finally arrived. I anxiously opened up what felt like Pandora’s box to a new age of the internet. The Bitcoin Computer is the first of its kind and is the foundation for a new range of applications.

First things first, if you want to run this as a standalone machine (linux) you will need:

  • Keyboard/Mouse
  • HDMI Cord
  • Monitor
  • Wifi Dongle (Included)
  • Powercord (Included)

I plugged in the powercord and the machine is up and running.

I’m feeling nastalgic, reminds me of when I set up my first raspberrypi, USB powered hub, ASIC mining rig. The command line experience is definitely helping with the setup.

I have just logged into the system, I setup my WiFi, and I am ready to begin building!

First Hour with the Bitcoin Computer

Off that bat the first tutorial I want to setup is the Bitcoin Payable proxy to one of my Antminer Tutorials. Since S5 is still getting a lot of hits I will go with that one.

Correction: First things first, run the 21 update command in the command line.

21 update

Daft Punk Pandora in the background definitely adding to the experience I might add.

Over a year ago, I built my first Raspberry Pi Bitcoin Node preconfigured with wifi and the blockchain preloaded to an SD card, bundle it with whatever ASIC you would like. The problem I wanted to solve: Increase the number of Nodes around the world, read here. That was when there were 7,000 nodes, now we are down to 5,000. Hopefully these Bitcoin Computers are the key to strengthening the network and bringing back a decentralized state to the network.

This machine takes that idea to the next level, still running updates…

Again before I setup this proxy server for one of my tutorials, I need to setup my account and start the miner.

Updates are done I believe the screen went dark.

21 Successfully installed!

Ok now to start the miner:

21 mine

Creates a wallet for my with a 12 word HD wallet.

Ok got that written down.


Set up my Account with, have my mining payout address, and I am mining, again!

Now to check out this mining dashboard:

21 mine --dashboard

Let’s take a look. Dashboard Overview, Monitor, Log.

Running around 50Gh/s I just made 20000 Satoshis I can now use to buy API calls.


21 mine

Another 20000 Satoshis.

Ok now i’m starting to get it.

(Probably not even at the tip of the iceberg realistically)

Ok so I have 100000 Satoshi now after running 21 mine a few more times.

Time to start testing out some of these apps.


Concept of “buffered pooled mining”.

It basically allows you to quickly mine some satoshis in order to make an API call.

Caution: Before you think wait I can just run 21 mine (command) all day and I’ll be rich! If you run it too many times in a row you will be rate-limited by a difficult hashing problem sent to your chip, so don’t abuse it!

Ok sending out sms with Bitcoin. Only cost 1000 Satoshi.

Search on the web; also just a few satoshis.

Now to do this programmatically:

sudo nano


#!/usr/bin/env python3
import json
from two1.commands.config import Config
from two1.lib.wallet import Wallet
from two1.lib.bitrequests import BitTransferRequests

# Set up a bittransfer. The wallet's private key
# is used to sign transactions, confirming that the
# balance is spendable by the given 21 username.
wallet = Wallet()
username = Config().username
requests = BitTransferRequests(wallet, username)

# Determine the price of a given endpoint, in satoshis
url = ''
info = requests.get_402_info(url=url)

# Buy the endpoint
results =, data=dict(query='how to flip bitcoins'))

Setting up my own digital store when someone can pay me in bitcoin for access to tutorials on how to setup bitcoin miners.

This is powerful technology.

It wraps around Bitcoin as a Protocol. Enabling you to create an unlimited range of decentralized applications. I just created another user in the system.

I can now have multiple agents. This is also a great way to test any application you are building, you can have multiple users with different balances and simulate the application behavior.

12/28/2015 has released an API documentation library with four primary modules:


I am currently redoing exercises in Learn python the Hard way and building out the examples in the API documentation tutorials.


Consensus 2015 Makeathon

Consensus 2015 Makeathon

Our Team built a blockchain application on Tierion, the bridge to the blockchain and the only way to embed data into the blockchain at scale and receive a verifiable record of the embedded data. This application was a Claims Data process application for USAA. We successfully were able to create an Android mobile application that collects claims data and embeds the claim data into the bitcoin blockchain. A receipt is then sent to the customer and to USAA creating an auditable, timestamped trail throughout the Claims Process. We then created an integration via Zapier which then adds a new row into a Google Sheet every time a claim is made. The workflow enables Call Center users to work in excel and have data recorded back into the blockchain. For example, if the status of the claim is updated, the approval is then recorded into the blockchain and a receipt is sent to the customer. This provides a verifiable proof which can be resorted to in the case of a dispute, a transfer of insurance coverage providers, removing siloed centralized record bases, and reducing fraudulent claims and ultimately costs to the provider. This type of blockchain application built on Tierion could be the foundation for an unlimited number of industry agnostic blockchain applications eg. mortgage, financial services. I can only imagine what else will be built on this new and exciting platform.
Overall, the Makeathon had brought together a very diverse group of participants, mentors, and attendees from around the world and the Bitcoin / Blockchain community. The makeathon was held at General Assembly’s space in the Flatiron District of Manhattan, a very excellent working environment.

The three biggest themes that I believe were resonating throughout the teams:

1) Reputation is the new currency: How do you establish credit in a third-world country? How do you aggregate a reputation basis? How do you determine who can verify it? Can the blockchain be the answer to microlend, loan, fund, aid, someone you do not know you can trust? Can you embed reputation on the bitcoin blockchain or do you need to use a different tokenized asset? If so how do you distribute this token? Can you thether social network identity to decentralized blockchain identity database?

Whatever the answer, one thing is for certain: International Micro-Credit, Loans, Reputation Services, Identity; using Blockchain technology as the medium of record is being looked at closely.
2) How are you going to embedd data into the Blockchain: The Bitcoin blockchain can only have support a small amount of data being embedded into it each write. In addition each transaction cost you a micropayment but still if you are trying to embed data into the blokchain say for your entire business process, how can you create a scalable model that does not flood or spam the blockchain, is economical, and is effective?

3) Ethereum/Blockchain applications are on the way: half of the teams at the makeathon built on top of ethereum or using tools built on ethereum such as It is still very very early in these stages with Ethereum frontier being released only a few weeks ago but the platform was in high use this weekend for decentralized governance applications, aid funds, and a few other distributed consensus applications. Definitely going to be buying some more Ether.
I believe that these themes reflect that we can use the technology to model/predict outcomes, streamline processes across verticals, and given that the rules are in place automate any point in the process based on distributed consensus met/unmet inputs. This could be real-time triple entry accounting ledger, trust and verification that the funds you sent for disaster relief were indeed used properly by the company, that your Submitted Insurance Claim vehicle was indeed a recorded, processed, and approved.
I want to give a shoutout to Coindesk for doing an amazing job with the space, the food, the atmosphere and overall organizing and kicking-off this event from the beginning with the Slack group. I think they have created a great model for a top notch event where new ideas can be developed and shared and people can network about technology they are passionate about. Although I was not able to be on stage today, I was ecstatic for the team to get up there and show off what we built. It was a great experience that I am very thankful to have been selected to and to have been a part of the team that won.
Here were some of the project overrviews from the Makeathon:

-HedgeFund on Ethereum
-Reputation & Credit on distributed ledgers.
-Current reputation database
-Lending – Credit Scores on the Blockchain.
-Microlending using digital currencies and smart contracts.
-Will on the blockchain
-Reputation, Credit, Notorization on the blockchain.
OPReturn Financial Reporting , Accounting, Compliance
-Open Accounting Protocol
-Credit Scores on the blockchain.
-Credit on the Blockchain.
-Data Governance with Identity tokens on Ethereum
-Insurance Claims Data on the Blockchain.
-Resource Allocation on the Blokchain.

For more information on the project check out Coindesk’s article here.