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.
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.
Payments made easy
It was in December 2016 that the BHIM app was launched by our Prime Minister. BHIM couldn't have asked for better timing. It came at the heels of demonetization when all of India was focusing on cashless payments. Cash was in short supply and alternative means of payments were in demand. About two months later, YourStory carried a story about 27-year old Nikhil Kumar who had apparently built the BHIM app in just three weeks. A few days ago Nikhil Kumar spoke at a small gathering of enthusiasts at Thought Factory, Bangalore. I attended mostly to know about UPI and BHIM but also partly out of curiosity to see the man behind the app.
I am yet to install the BHIM app on my smartphone. While I'm not a Luddite who stands against the advance and adoption of technology, I'm certainly not an early adopter. Since I know the engineering side of things, experience tells me that early releases are prone to contain bugs. Particularly in today's world of MVP releases and lean/agile processes, no one waits for a well-tested product. First releases will certainly contain problems when test-driven methodologies are not followed; or test automation has been sidelined due to more pressing delivery deadlines. So I haven't been using BHIM but I certainly wanted to know what it was.
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.
Takeaways from Intel AI Developer Workshop @ Bangalore
Images in this article are copyright of Intel.
I just returned from a full-day developer workshop organized by Intel. The focus was on Artificial Intelligence (AI) and how Intel is contributing in mankind's best efforts to teach machines to sense, reason and decide. The event was a useful peek into what Intel is bringing to the table in terms of both hardware and software. Beyond that, it was not an event that I would call a developer workshop since there were no hands-on sessions, demos or even tips and tricks that developers can use. The event was structured as a line of talks in order to bring awareness of Intel's involvement in AI and where the market is headed.
AI originated in the 1950s but it was only in the 1980s when Machine Learning (ML) came about that people started to think it might be possible to realize AI. Machines can be trained and then asked to solve problems. Their algorithms could be tweaked as they learn and relearn with more sets of data. Deep Learning (DL) came about as a sub-branch of ML, where neural networks became the basis of learning. DL has brought us closer to the dream of realizing AI but DL alone did not achieve this.
Measure, analyze and optimize app experience
I come mostly from a web app background. I haven't done much work in the mobile apps except for dabbling with some sample code in React Native. Mobile has come a long way. Yes, it's built on the foundations of web app development but today it has a life and roadmap of its own. I was therefore glad to attend today's event organized by Flurry, which is a platform for mobile analytics. Flurry was founded in 2005 and acquired by Yahoo in 2014. The event this afternoon was attended by entrepreneurs, developers and marketing executives. There was so much information packed into one afternoon that I'm sure everyone took away something useful from it, even if they were experienced in the mobile space.
The format was a mix of panel discussions and focused talks. It was nice to see representation from a spectrum of Indian start-ups. It happens sometimes that events organized by US or European companies feature speakers who know quite well their US or European markets but nothing much about the Indian market. Today's event was quite different. With speakers and moderators from Paytm, Flipkart, CouponDunia, Wooplr, Bounty, YourStory and more, it was clearly and rightly focused on the Indian market. There were of course guys from Flurry, Truecaller and Branch Metrics who gave lot of additional insights.
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.