Sunday, March 11, 2018

Decentralized Exchange : Explaining Makers, Takers and the missing piece

To explain makers and takers concept I would take help of Mary Maker and Terry Taker. Mary wants to buy ( or sell ) BXL token ( Blockx Labs token ). Mary creates BXL Order doesn’t matter buy or sell. This makes Mary maker for the Exchange. Terry who just came back reading important announcements about Blockx Labs sees and interested in completing the order. Terry accepts the order and becomes Taker for the exchange.

To be identified as maker or taker buying or selling does not matter but if participant is creating or accepting the order. Generally speaking adding or taking liquidity. Liquidity creator is Maker and liquidity reducer is the Taker.

Centralized Exchange

In above example Mary created example absorbed by Central Software. If anyone wants to trade they have to talk to this Central Software. Central Software makes exchange centralized. While blockchain is running on tens of thousands of node a central server runs on way less nodes, possible only 1 server. Central server is generally owned by person or single entity. Such entity can be scrutiny and forced to censorship. Central entity could be target of attack by malicious group of people, country easily. Hence decentralized exchange provides more freedom and universal participation.

Decentralized flow

Everybody is running Central Book. Mary publishes to Terry and all other participants Central Book directly. When Terry accepts the order settlement happens on blockchain directly. All participants completes the trade without any Central Book.

Complications in Decentralized Flow

If Mary wants to sell BLX and Terry agrees. Terry would send Ether to Mary but Mary maliciously refuses to send BLX. The trust is missing and immediate settlement is missing. This is the missing piece of decentralized exchange.


Participant creating liquidity to the exchange is making the market hence he/she is the Maker. Otherwise participant is removing the liquidity hence he/she is the Taker. While centralized exchange provides trust limited by censorship and on hacker’s target, the decentralized exchange has a problem to solve for trustless participants.

Saturday, October 21, 2017

VR enables visiting MARS

NASA dropped Curiosity Rover on Mars year 2012. Since then Curiosity has been hiking and capturing photos like a savvy traveler.

NASA partnering with Google enabled visiting Mars with new hyped technology Virtual Reality. Virtual Reality creates near real visual experience and more actual engagement.

Project is ready for general masses at

With Access to Mars project Google and NASA creates virtual Mars with images taken by Curiosity Rover. However few images are gray and others are full RGB. Mostly due to Curiosity does not need to take high quality images all the time and skimming can be performed with enough accuracy with low accuracy. You can travel Mars with similar experience to Google Street View or access Curiosity's mission locations by clicking on specific icons.

Check it out again at

Sunday, October 1, 2017

Miami Dolphin owner responded to Donald Trump

People with high position responds with cleverness, thoughtfulness, smartness and compassion, except few.

Owner of Miami Dolphin has responded to racial slur whirling United States of America. Here is his tweet.

What is Ethereum

Ethereum is a distributed application based on Blockchain Technology. That does not answer all questions.

I found many blocks that manages to compare and contract Ethereum and Bitcoin and praises possibilities with Ethereum but in nutshell it's an engine that can rotate an axle.

From rotating axle you can build factories, trains, cars or anything else, but you need an engine, that's Ethereum.

Explaining more with examples Ethereum will be used as Platform for digital currencies, distributed ledger simply anything that needs event log / ledger / daily diary / log book.

Security, distributed nature etc can very well be achieved with other Peer to Peer technologies.

A Note on Serverless Architecture or FaaS

 Serverless architecture allows app owner to run process anywhere. Serverless architectures works with run-replenish pattern of application development. A service that wakes up and sleeps after logic is executed is a Serverless App / Service.

The provisioning is on demand for application . Application may run on shared or physical hardware and application runs in isolation to other processes. FaaS - Function as a service is new coined term accordance with SaaS and PaaS and many other *aaS. FaaS will be a useful pattern in microservices and related world.

FaaS will provide portable implementations. Auto Scale with increased usage and painless expansion managed by provider

Business Advantages
 - Time to market reduced
 - Cost to market is reduced
 - Experimentation is key and happening
 - Help save some trees by saving unnecessary CPU cycles

Drawbacks on Serverless architecture
   - Non Transnational
   - Third Party application coding
   - Hype, may need to have a realization curve
   - Discovery of such applications is difficult.
   - Operational issues : Deployment procedure needs modification.
   - Operational Issues : Packaging. Each vendor may required specific binding to logs, dependencies, code, startup
   - Operational Issues : Versioning of application is difficult
 - Implementations
   - Azure Functions
   - Web Tasks
   - Google Functions
   - Firebase
   - AWS Lambda

Sunday, August 27, 2017

Amazon Lowering prices for Whole Foods

Amazon bough whole foods months back. Amazon has been figuring out many ways to capture grocery market for long time. Now they have a shot at it.

Amazon is known for their specific tactics to enhance market prices. Whether its Amazon Web Services or or pricing Kindle. Amazon is a good competitor to market and brings aggressive competition to market.

Recently it came to notice that Amazon is going to police lower prices for Whole Foods.

These changes are interesting and would be of specific interest to Amazon Prime members. Amazon is planning to add special prices for their Prime members. Whether this prices are US only or North America or All Regions, that's something only time can tell.

See more information at below link :

Monday, August 7, 2017

Tensorflow Adds Java, C, Go Lang Support

Tensorflow is well known library for Deep Learning created by Google. Recently Tensorflow moved from 1.0 to 1.2. In this journey there we many architectural changes in Tensorflow library. I have gone through many Github libraries that cannot be ran because of version differences. I hope all major changes are done and future releases are more functional additions than incompatible refactoring.

Recently Tensorflow also added support for Java, C and Go lang. I can guess some reasons but not sure if Google can confirm so.

Java is a good additional. A lot of Enterprise infrastructure supports Java. It would be very useful to train the model in Python and load the same in Java. Normally Data Scientist and Deep Learning Engineers more familiarity with Python hence training is very production part of Model Development. However running the same model in production is better with Java and could give nicer edge to Tensorflow to its adoption.

Adding Go is on the same line as Java however the support seems more fine tuned to people who would like to run Deep Learning model at a very large scale. It could be a lot of savings in terms of time and infrastructure cost.

For addition of C Language was little surprise to me. However it look a little time to understand why. I am not iOS developer however I did play around with some development for iPad. Hence I believe addition of C Language was to ensure model trained on Python could run on iOS which is second largest mobile market after Android.

I am surprised to see there is no support for R language so far, but I hope it will be added soon enough. Also Microsoft is supporting R language very well so it could be tug of war between these giants to understand and build next platform and which language to choose.

Concluding supporting a lot of languages is not very new. Every big data framework is trying to be language independent atleast access and productionalizing point of view.

Sunday, August 6, 2017

Kotlin Examples

Google announcement has created sparse interest in Kotlin. Kotlin being Java / JVM Wapper concept could get wide acceptance and has potential to be top 5 languages.

Here I am covering some Kotlin examples I came across :

Kotlin Sevlet Example with Simple Hello World with rest and Java Sevelet. Thebuild platform be Gradle The could be found here.

A more advanced application with Kotlin and web example is needed. Spring has been core component of Java Ecosystem. With Gradle build system and Spring boot the example could be found here. This example is also restful and could serve as basic skeleton for projects.

It's easy to get started with Kotlin using their documentation. However if you are interested a developer's take on the subject then this link could be useful. Covering major high level constructs to build your knowledge base.  I also found Kotlin Practical Exmaple blog to be useful at the little lower level constructs.

Thursday, April 9, 2015

Java 8 without Lambdas to print elements using short hand

Print all elements in List with Java 8 without Lambdas and a short hand input.

In following code lets fill in the blanks to print all elements of given list.

    public void SimpleCollection() {
        List values = Arrays.asList(1, 2, 3, 4, 5, 6);

        values.forEach(/* fill the code here */);


As the solution is small and trivial the output looks as follows.

    public void SimpleCollection() {
        List values = Arrays.asList(1, 2, 3, 4, 5, 6);



Java 8 with lambda expression to print elements on screen

Using Java 8 and its new feature Lambdas lets print each element of List to screen.

We will start with following code and fill in to a piece of logic to push elements on console.

    public void SimpleCollection() {
        List values = Arrays.asList(1, 2, 3, 4, 5, 6);

        values.forEach(/* fill with lambda expression */);


We will a lambda expression e -> {/** code block **/} to manage the output logic. Something like this
value -> {

The complete solution looks like following

    public void SimpleCollection() {
        List values = Arrays.asList(1, 2, 3, 4, 5, 6);

        values.forEach(value -> {