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.
An introduction and an opinion
Governments are typically not recognized as enablers of software creation. If at all e-governance is embraced, it's through tenders for which private entities will bid, deliver and maintain. Government departments are also notorious for being isolated from one another, which means that there's no possibility of sharing information, reusing code or coordinating actions. Systems operate in silos and often use different technologies. There's lack of standardization or guidelines for best practices. To solve some of these, the government has released OpenForge, a platform for developers to collaborate on open source software. The platform received coverage on news websites this week but it has been going through internal testing since last year.
Open source means that source code is open. Anyone can view the source code, file bug reports, improve the code and redistribute it. Of course, there are variations of this depending on the exact license that's used by the development team. For the moment, OpenForge does not seem to provide much information about what sort of license should be used.
A melting pot of ideas and conversations
Makerfest 2017 was held from January 6-8 2017 at the School of Engineering and Applied Science, Ahmedabad, just a short distance away from the venue for the last two years. Unlike the serpentine layout of maker stalls in the 2016 edition, the Makerfest in 2017 went back to the layout similar to 2015, with maker stalls located along criss-crossing walkways and a central stage for the talks and panel discussions. Nestled under a bright multi-coloured canopy, this was a perfect melting pot of ideas and conversations, where new thoughts and connections inevitably got forged.
As always there was a wide range of maker projects on display. Along with the regular candidates like 3-D printing, IoT, drones, mobile applications, virtual reality and so on, there were also projects and exhibits from the good old offline world. A student from NID showcased his work on creating digital archives for artisans. Shradha Jain, an NID alumni, caught the audience's imagination with her knowledge and passion for board games from around the world. There was an exhibit which demonstrated electricity generation using gravity. There were also at least two projects that dealt with new innovative methods of constructing buildings and houses and at least two that demonstrated upcycling of materials like old tyres and rejected PVC sheets into objects of daily use.