Analysis of a chat app and resolving the problem
A system in which concurrent events come in can affect behaviour depending on the relative timing of these events. Those working with embedded systems are probably familiar with this problem. Hardware interrupts come in at unpredictable times. One layer sends a message to trigger action from another layer. Data comes in via the wireless interface. A timer expires. How does one reliably handle all these events without taking the system to an unknown state? It would be worse if the system can't recover from such a state.
Real-time operating systems (RTOS) have some things to handle data synchronization, critical sections and race conditions. But can we have such problems in a web app? The answer is yes, as I found out recently when developing a "chat-like" app. The chat window of this app can be updated anytime by multiple users. When user A creates a new chat message, user B can also see it as long as the chat window is open. User B can then reply to user A's message.
At the intersection of design and technology
If you look at the development cycle of most products, design comes first and then the first iteration of the product is engineered to satisfy design requirements. What follows is testing, evaluation, re-design and re-engineering in an iterative fashion. There are of course two types of design: industrial design that deals with aspects of aesthetics, usability and ergonomics; engineering design that deals with product functionality, safety, maintenance, ease of manufacturing, and so on. Often these two disciplines are taken up by different teams and there's no common ground; at least, that's how historically people have been working.
Designers have for years been doing their primary work on pen and paper, doing concept sketches and perspectives. With computerization and associated tools, many designers have moved to the digital world, doing their designs with sophisticated object modeling and rendering. Yet, their focus has been on industrial design. Engineering design is left to engineers or at best considered at a later part of the development process. Some of this is changing in recent years.
Authors: Jack Ganssle
Publisher: Newnes, 2008 (Second Edition)
When I picked up this book, I half expected to read about a serious subject written in a serious textbook style. Within the first few paragraphs it was clear that this book surprises and interests, not least by its almost chatty informal style. It's a book written by an engineer for engineers. It's a book written by a practitioner with many years of solid experience. The author is not presenting here a theoretical framework or a wish list. He is rather condensing many years of experience from which readers can directly benefit. He gives loads of tips and tricks that engineers can start applying in their daily work.
The relevance of this book is of course obvious. Embedded systems are everywhere: in home electronics, in personal devices, in industrial automation and increasingly in tiny devices that are going to come in their billions as part of the Internet-of-Things. Now more than ever firmware developers need to learn from the experiences of others and adopt best practices. To learn from self-experience through mistakes and mishaps is something neither engineers nor their employers can afford.
Authors: Cole Nussbaumer Knaflic
Publisher: Wiley, 2015
I've been doing a little bit of data visualization for the last couple of months. The intent has been to get insights that could trigger decisions to add business value. While I've produced dozens of charts in the process, I've at times wondered if there's a better way. That's when I picked up this book written by an ex-Google employee who employed best practices in visualization to assist the HR department in their recruitment process.
If oil is considered as liquid gold, data is cyber gold. In the Information Age of today, data is perhaps becoming more important than ever before. Yet data remains just a bunch of numbers if we don't see past them to understand causes, patterns, trends, forecasts, dependencies, correlations and contexts. Yes, data can tell a lot about the systems and the world they represent. It's therefore important to analyze data. If data is cyber gold, it's not available in a glittering form. It has to be mined, processed and polished.
Notes from the Design Open event at Bangalore
Earlier today I was at the Design Open event held at the IISc Bangalore. Design Open is a 2-day event that started yesterday. Packed with talks, exhibits and workshops it was a place where academics, professional designers and students of design converged over the weekend. A lot was talked about the discipline of design but also about the undisciplined creativity that needs to be channelized to produce results. So what is design?
As basic as it might seem, a single definition of design is elusive. One can have a number of definitions that may all be correct depending on the context. It's because of this dependence on context that we have adjectives that are often used as qualifiers: responsive design, interaction design, interface design, emotional design, process design, product design, industrial design, engineering design, inclusive design, indigenous design, visual design, and so on.
A special coverage by an IEDF member
Makerfest 2016, held at the GIDC Bhavan, Ahmedabad, 22-24 Jan 2016, brought together makers from different parts of the world and drew in a large audience from many different walks of life and age groups. On display were a range of creations covering diverse areas including 3D printing, Internet of Things, assistive and interactive technologies, arts/crafts combined with engineering, and so on. The exhibits displayed were at different levels of maturity, from fully packaged commercial products to those that conveyed just the raw idea. This diversity is what makes the Makerfest so unique and attractive, for it gives the audience a wide-angled glimpse into the nascent thought processes that may become main stream in the coming days.
I will discuss briefly the stalls that I could visit. There was way too much going on to be able to absorb everything. In the true maker spirit, I request others to kindly add (through comments) what I may have inadvertently missed in my attempt to catch the action while also manning my own stall.
Author: Charles Platt
Publisher: O'Reilly, 2009
If there's one book that I should recommend to beginners of electronics, this one by Charles Platt would be it. In fact, it's so beautifully written that I kept asking myself why didn't I have such a book twenty years ago when I did my engineering. As a student, I had been made to learn a lot of theory that came complete with its dose of Fourier Series and Kirchoff's Laws. A handful of labs and a project did bring some practical exposure but this book turns the traditional approach to learning electronics on its head.
Subtitled as Learn by Discovery, this book presents the basics by way of simple experiments. Components are explained. Readers are guided through the connections. Wiring diagrams and schematics are presented cleanly without clutter. Theory is kept to a minimum and introduced only to clarify certain concepts. So who should read it?
Revealing the Aesthetics of Data
What's the one thing that the world is producing more than anything else? Take a guess. No, it's not greenhouse gases even though they are up there as well. It's data. This is the Information Age where we are producing data in the order of exabytes and petabytes. If social networks are producing data on such scales, with the Internet of Things just around the corner, data generation is going to grow several orders of magnitude. It's so difficult to put a number in terms of bytes that sites often stop with content generated per minute: 4.2 million Facebook likes per minute, 110,000 Skype calls per minute, 600,000 Tinder swipes per minute ...
Data collection for its own end has no purpose. We need to process it, analyze it and derive insights from it. There's such a thing as being surrounded by too much data but that's only when you have no idea what to do with it. We are currently living in a situation where we have lots of data whose potential is as yet untapped. The time is therefore ripe for changes and innovation.