Archive for the ‘Azure’ Category

Understanding Ethereum

December 4, 2017 Leave a comment


Right now is absolutely the prime time to talk about cryptocurrencies. In November 2017, the value of Bitcoin exploded, surging so quickly, that it was the catalyst to bring Bitcoin into the public lexicon. However, Bitcoin is just the most well known of the cryptocurrencies – there’s a whole world of them out there. Many people who have been investigating cryptocurrencies have come across something called Ethereum. What is Ethereum ?

Well, Ethereum is NOT a cryptocurrency. Bitcoin is a cryptocurrency. Ethereum is a platform.

Ethereum is an open source platform, which exists to build and distribute decentralised applications. These applications will operate on a network of hundreds of thousands of nodes across the globe. There will be no central “server” for these applications, they operate in a peer-to-peer fashion. These decentralised apps are known as “dapps”, and many are excited but the potential they offer. The value of the Ethereum platform increases as more apps are written for it.

There are benefits to this approach. Applications that are centralized could, for example, have a higher risk of attack. In a decentralized architecture, there is no single point of failure.

The Blockchain

One trait shared with Bitcoin is the reliance on “Blockchain” technology at the heart of Ethereum. Bitcoin, as a digital currency, was the first and most well known use of the blockchain technology. Ethereum makes the blockchain technology available to uses other than cryptocurrency. Technically, you could say that Bitcoin is the first “dapp”, with the cryptocurrency being the first widespread application of blockchain technology. The proponents of Ethereum however will tell you that the real potential of the blockchain is to come. The blockchain nodes could run everywhere, on premises or in the cloud.

The developers writing applications to run on Ethereum need to write in something called a “smart contract”. This refers to a series of steps that will define how a transaction is handled. The smart contract can store data, perform logic or interact with other contracts. Developers can use Smart Contracts for things such as asset registration, land ownership and anything else where keeping a permanent record is essential.

Who is backing it ? 

Back in 2015, Microsoft became the first of the tech giants to really talk seriously about cryptocurrencies and blockchain. Firstly, Microsoft announced that it will support Bitcoin as a currency for purchases on the Microsoft online store. The details of how to go about this can be found here :

However, when it comes to Ethereum, Microsoft announced that it was betting big on Ethereum as a platform. Microsoft rolled out Coco, a framework designed to facilitate blockchain adoption by adapting existing blockchain protocols or by creating entirely new protocols, and the Azure Blockchain service, a BaaS (blockchain as a service) that enables businesses to quickly and easily configure and deploy a blockchain network.

The main advantages of the Coco framework are its ability to process over 1,600 transactions per second, something which neither the Bitcoin nor Ethereum blockchain can support at the moment (This would be for your private Blockchain).

The Coco framework will also use a unique technology called trusted execution environment (TEE). The trusted execution environment will be able to host the blockchain code in a secure box which will use Intel’s Software Guard Extensions or Windows’ Virtual Secure Mode in order to validate the environment.

Coco Framework

As you can see, the Coco framework works with a few Blockchains, but Ethereum is probably the most popular so far.

Now what is interesting, is that at the AWS re:Invent summit in November 2017, AWS has, surprisingly to many, not announced anything around Blockchain technology. Time will tell as to whether this is wise.

So what am I actually buying on my crypto exchange ? 

What you buy, if you’re investing in Ethereum, is something called Ether (ETH). This is the cryptocurrency piece of Ethereum. What is the relationship between the two ?

If you write an application on Ethereum, why should someone running a node process your program’s transactions ? Well, because you pay them to do so. And you pay them in Ether, the currency of Ethereum.

From – “It is a form of payment made by the clients of the platform to the machines executing the requested operations. To put it another way, ether is the incentive ensuring that developers write quality applications (wasteful code costs more), and that the network remains healthy (people are compensated for their contributed resources).”

If Bitcoin is compared to DIGITAL GOLD, an asset that is worth investing in, then Ether can be compared to DIGITAL OIL. Now that is a comparison that many of you would understand.

Some thoughts 

Now, to add my thoughts / concerns to the Ethereum debate.

Firstly, many are actually investing in Ether hoping to see similar returns as with Bitcoin. In other words, they want to see the price of Ether go through the roof. Wouldn’t this be bad for people running applications on the Ether Blockchain ? If the price of Ether is both highly volatile and also quickly inflates, how does that make Ethereum an attractive platform to run applications (Since your running costs for your application are in Ether) ?

On the other hand, if its too low, there is no incentive to mine. Perhaps someone can clear this up for me in the comments section.

Secondly, there’s the issue of blockchain size. While researching Ethereum, I decided to get into the spirit of things and do some mining, not to really make much profit, but to experience how it all works. After installing Geth, I waited for it to download the blockchain and I could then start. After downloading over 20Gb on my crappy connection ( with no end in sight ) I decided that this wasn’t a great idea ( I then saw that you don’t need to download the entire thing ). Still, some are saying that the Ethereum blockchain will be more than 1TB very soon. Good thing that there is talk of a sharding system.

Thirdly, transaction speed has always been an issue with cryptocurrencies. Bitcoin, believe it or not, can only really process about 5 transactions per second. Looking at other platforms :

•DASH – 10 transactions per second

•Ethereum – 20 transactions per second

•PayPal – 193 transactions per second average

•Visa – 1,667 transaction per second

•Ripple 1000-24000 transactions per second, real number is unknown

So Ethereum is better than Bitcoin in transaction speed, but considering what it wants to do, the transaction speed is not enough. There has been talk of a project called Raiden, however, which aims to dramatically improving scaling of Ethereum.

The other thing we’ve already seen is the blockchain become “jammed” and a whole backlog of unprocessed transactions form. The screenshot below shows a point where over 9000 transactions were sitting unprocessed in the blockchain.

Ethereum Network Jammed.jpeg

Once again, perhaps something like Raiden will address this.

Fourthly, there is the debate about running Ethereum nodes in the cloud – is this counter to decentralisation ? The one thing I can think of is the potential benefit of energy efficiency. There is already a debate about the inefficiency of mining from an electricity perspective, and how this in turn makes cryptocurrency inefficient. If nodes are in the cloud, however, remember that the large data centres are built at tremendous economies of scale, and you will not find better efficiency in smaller scale DCs, so from that perspective it may help somewhat.

Lastly, in spite of the early issues mentioned, there really is a sense in the community that Ethereum could be the Internet of the 2010s, and that we’re on the verge of something big. At the very least, it provides us with options.

As for Ether, I cannot tell you whether to invest in it or not, but as you can see, you do want to be following it very closely over the next few months.

Let me know your thoughts in the comments section.

Categories: Azure, Futurism, Tech

Demystifying A.I.

August 21, 2017 Leave a comment



With all the hype around “AI” and Machine Learning, I thought that I’d dabble in unpacking some of the key concepts. I find that most of my reading time now is spent in this area.

Firstly, Artificial Intelligence isn’t really something brand new. It has been written about for decades, most famously by Alan Turing in 1951. In his article “Computing Machinery and Intelligence” he spoke of the “imitation game”, which later came to be known as the Turing Test. There was a movie in 2014 called “The Imitation Game” which details Turing’s life, and how he cracked the enigma code in WW2 (starring the usually excellent Benedict Cumberbatch). Highly recommended.

In terms of actually experiencing a simple AI, the easiest way to do this is to play a videogame. Even in the 80’s with “Pac-Man”, as the player you were trying to outwit the 4 enemies on screen – the algorithms behind the enemy players could be considered an early implementation of simple AI. Modern games have more complex implementations of “AI” that may surprise you with their intelligence.


Pac Man

Was Blinky an A.I ?


So why is AI becoming more prominent now? Very simply, we have now reached a tipping point where Big Data, software advances and cloud computing can be leveraged together to add value to businesses and society. Even though we are still many years from creating a sentient AI like HAL 9000, we can implement things like Machine Learning today to bring about improvements and efficiencies.

Machine Learning

Machine Learning is a subset of A.I, not really A.I in totality. Way back in 1959, Arthur Samuel defined Machine Learning as “the ability to learn without being explicitly programmed”. Basically, this field entails creating algorithms that can find patterns or anomalies in data, and make predictions based on those learnings. Once “trained” on a set of data, these algorithms can very reliably (if chosen correctly), find those patterns and make predictions. Using tools like Azure Machine Learning, you can deploy this as a web service to automate the prediction process, and also do these predictions as a batch.

Now I personally became exposed to similar concepts around 2006 when working with SQL 2005. That product release included a lot of “data mining” functionality. Data Mining basically involved using algorithms (many built into SSAS 2005) to find patterns in datasets, a precursor to Machine Learning today.

I was really exciting by the possibilities of Data Mining, and tried to show it to as many customers as possible, however the market was just not ready. Many customers told me that they just want to run their data infrastructure as cheaply as possible and don’t need any of this “fancy stuff”. Of course, the tools today are a lot easier to use and we now include support for R and Python, but I think what was missing back in 2007 was industry hype. Industry hype, coupled with fear of competitors overtaking them, is possibly forcing some of those old I.T managers to take a look at Machine Learning now, while we also have a new breed of more dynamic I.T management (not to mention business users who need intelligent platforms) adopting this technology.

Machine Learning today has evolved a lot from those Data Mining tools, and the cloud actually makes using these tools very feasible. If you feel unsure about the value Machine Learning will bring to your business, you can simply create some test experiments in the cloud to evaluate without making any investment into tools and infrastructure, and I’m seeing customers today embrace this thinking.

Deep Learning

Deep Learning can be considered a particular type of Machine Learning. The difference is that Deep Learning relies on the use of Neural Networks, a construct that simulates the human brain. We sometimes refer to Deep Learning as Deep Neural Networks, i.e. Neural Networks with many, many layers. The scale of deep learning is much greater than Machine Learning.

Neural Networks

Neural Networks have been around for decades. As mentioned, this is a construct that mirrors the human brain. In the past, we could build neural networks but simply didn’t have the processing power to get quick results from them. The rise of GPU computing has given Neural Networks and Deep Learning a boost. There is a fast widening gap in the number of Floating Point Operations per second (FLOPS) that is possible with GPUs compared to traditional CPUs.   In Azure, you can now spin up VMs that are GPU based and build neural networks (where you might not have invested in such resources in the old on-premises world).


CPU vs GPU FLOPs (image courtesy NVIDIA) 

Edit 23/8/2017 : A day after publishing this , Microsoft announced a Deep Learning acceleration platform built on FPGA (Field Programmable Gate Array) technology – more here :

While Machine Learning works well with repetitive tasks (i.e. Finding a pattern in a set of data), a neural network is better for performing tasks that a human is good at ( i.e. Recognizing a face within a picture).

Narrow AI vs General AI

All of the above would typically fall under Narrow AI (or Weak AI). Narrow AI refers to non-sentient AI that is designed for a singular purpose (I.e. A Machine Learning model designed to analyze various factors and predict when customers are likely to default on a payment, or when a mechanical failure will occur). Narrow AI can be utilized today in hundreds of scenarios, and with tools like Azure ML, it’s very easy to get up and running.

General AI (or Strong AI) refers to a sentient AI that can mimic a human being (like HAL). This is what most people think of when they hear the words “Artificial Intelligence”. We are still many years away from this type of AI, although many feel that we could get there by 2030. If I had to predict how we get there, I would say perhaps a very large scale neural network built on quantum computing, with software breakthroughs being made as well. This is the type of AI that many are fearful of, as it will bypass human intelligence very quickly and there’s no telling what the machine will do.

Why would we need a Strong AI? Some obvious use cases would be putting it onboard a ship for a long space journey – it is essentially a crew member that does not require food or oxygen and can work 24/7. On Earth, the AI would augment our capabilities and be the catalyst for rapid technological advancement. Consider this : we may not know where the AI will add the most value , however, once we build it, it will tell us where.

The good news is that you don’t need General AI (a HAL 9000) to improve businesses in the world today. We are currently under-utilizing Narrow AI, and there is tremendous opportunity in this space. I encourage you to investigate what’s out there today and you will be amazed at the possibilities.

Image used via Creative Commons license
Categories: AI, Azure, Futurism, Tech

MSDN Azure Subscriber benefits

April 24, 2014 Leave a comment

In my last post , I spoke about the free Azure credits that every MSDN subscriber gets , and detailed the steps to activate them.

Well , the Azure channel on Youtube now has a video which talks about this.

Azure MSDN Subscriber benefits