Industry analysis and opinion
Smartphones play a vital role in our life; it is sort of panacea for us. It has achieved massive growth in the last decade. With such demand of the end product, it is obvious that the supply side has worked in overdrive. Semiconductor industry has seen massive growth due to smartphones. The number of OEMs increased to fulfil the volume demands, pulling more vendors into semiconductor industry to suffice the OEMs’ supply chain requirements.
A few OEMs made fortune in smartphone sales, with revenue exceeding billions cumulatively. Such capital inflow encouraged them to invest more money on product development, to fulfil the end users’ paradoxical requirement of more performance with more battery life (less power consumption) at a lower price. With cumulative silicon sales going into billions, the semiconductor industry responded positively, and focused on stretching the innovation into leading process nodes and other techniques to enhance performance.
If there's one thing that's unique about being human, we can't deny that it's speech. Sure, animals have a way of communicating but that's not in any way as refined as we humans do. The key lies in the way we are able modulate sound waves with the rolls and wags of our tongue. Perhaps, it's for this reason we have phrases such as "mother tongue". Aural communication in the rest of the animal kingdom is limited to coarse sounds that we simply name as moos, grunts and hee-haws. But it's not going to be long before we lose our monopoly of speech.
The best machines could do in the past were beeps and alarms. Those of us who have lived through the times of early fixed line modems can recall the staccato of beeps as they tried to handshake and establish a connection to a server somewhere on the internet. Of course, machines also talk among themselves silently, by parsing bits and bytes. But now the time has come for machines to talk directly to humans via human speech.
Development is more than just writing code
Technology is changing so fast that it's becoming hard to keep track of what's new or where it's going. It's typical for a developer to invest a few weeks learning a framework, a productivity tool or a new language, only to be told to her annoyance that there's something better and shinier that has came out just two days ago. Often there's no clear-cut comparison to suggest that one choice of technology stack is better than another. Developer skill-sets, community support, open libraries, documentation, cost, and application requirements are some factors that influence that choice. The problem has become so acute that some developers spend days or even weeks researching and get indecisive. Wouldn't it be nice to have a place that introduces technology to beginners?
When I say "beginner" I don't mean in the sense of someone in college or just starting his career. You could have years of experience in one technology and still be a beginner in Data Science, Big Data, Virtual Reality, IoT or any of dozens of new technologies that are coming up. I've found from personal experience that often initiations are in the form of Getting Started Guides, Setup & Installation Guides or Hello World examples. This fails because it's telling folks how to use something rather than explaining what it is or why it's relevant.
Ever watched the Ted talk by Simon Sinek, How great leaders inspire actions? Not yet? Then I encourage you watch this 20-minute talk. This video covers the most fundamental thing that most companies fail to address: connecting with customers! Often companies focus on their products, going into details about the technical features, price, engineering innovation, etc. However, they fail to address the basic thing that is needed for a successful sale: Why they are offering the product? Answering this question bridges the gap between product and market. Revenue is an outcome, not the sole purpose of a company’s existence.
Let us take an example of a conventional sales pitch for the embedded computing platform: System on Module (SoM).
“We offer SoM that has a SoC, memory, power circuitry, Operating System, and BSPs, all integrated on a small form-factor board that offers you a platform for building your next embedded product”.
Sounds exciting? Well, it depends. However, it does not generate a great interest. Now, how about the following as a sales pitch?
Image source: Kumar, M., 2013, ‘Digital Privacy, Internet Surveillance, and The PRISM – Enemies of the Internet’, The Hacker News; Security in a Serious Way.
The world we have built around us is due to human ingenuity as well as engineering skills. Tools play an important role in this. It's not an exaggeration to say that most engineers think about the tools at their disposal before starting to give form to their ideas. To sculpt something, you need first good chisel and hammer. To build a bridge, you need precision measuring instruments. To dig a tunnel, you need a boring machine. In today's digital economy, you need connected servers, software platforms and algorithms.
Tools improve both efficiency and effectiveness. The problem with the use of tools is the intent. A knife can be used to cut fruit or to kill your neighbour. A cook and an arsonist use fire in very different ways. Now imagine what will happen when a powerful tool is created with bad intent but the public is told that it is for their good. Aadhaar seems to be in this category.
An opinion on the diversity of cloud services
I've just returned from AWS Summit held at Taj Vivanta, Bangalore. It was a busy day of multiple back-to-back sessions interspersed with networking over tea, coffee and lunch. The venue was packed. The sessions were heavy, at least for someone like me who has never used AWS in any big way. I was familiar with some of the terms before coming to this event but I was surprised how much more there is to the AWS platform. They say that as a developer you can focus on developing your application while the cloud takes care of everything else: deployment, configuration, scaling, security, access control, monitoring, etc. While this is certainly true in the long term, as developers we need to put in upfront investment in terms of time and effort to understand the plethora of services that a particular cloud platform provides.
They say there are 90+ services in AWS. It's bad enough that developers need to aware of all these different services at their disposal. It's worse when you consider that making the choice of the right set of services for your application isn't trivial. This is particularly hard for folks used to only on-premise software built in monolithic fashion. We have to be really clear what we mean by the word "monolithic", which is usually not properly explained in such summits.
The new kid on the block
The emerging IoT industry is an aggregation of products and services, complementing each other to enable efficiency and cost optimization in multiple industries. It does not have a vertically oriented value chain. IoT end nodes will be scattered in billions in various industries.
As mentioned in my earlier post ARM vs Intel: The new war frontiers, COTS processors will not be ideal for building these end nodes, as the latter are application specific. Companies would be inclined to adopt custom processors as they offer flexibility to assemble only required parts. These parts can include analogue sensor, DSP, proprietary IP, etc. Further, custom processors substantially reduce BoM cost and die size, which will minimize power dissipation. It also helps companies to differentiate their product from those of their competitors. In view of failing Moore’s Law, customization is the answer as it can reduce the BoM cost significantly.
Visualizations in R and their discussion
Two days ago I was thinking of starting a new meetup group in Bangalore but in the process I asked a few questions. I wonder how many meetup groups are there in Bangalore? I wonder many of these are really active? Which are the big ones? How many members are there in total? To answer these questions and satisfy my curiosity, I downloaded some data from Meetup.com and analyzed the same.
In fact, Meetup offers an API to make this process easier but the API has its limitations. You can only look at the details of a group after you have joined it. So I adopted a manual approach since I was interested in only high-level metrics. I copied some overview data manually from the web browser. Subsequently, individual group information was obtained by web scraping. The language of choice for this and subsequent visualization was R. So, here are the findings.