sharadsinha

Archive for the ‘Engineering Principles’ Category

Translational Research: What I learned doing (seemingly) mundane task of video annotation

In Design Methodologies, Education, Embedded Systems, Engineering Principles, Research and Development on November 27, 2016 at 3:04 PM

In the recent past I have been doing some work related to automatic video annotation. Videos that you and I take can be annotated with data about the contents of the video. The contents of the video can mean: objects, their types, their shape, background scene (moving or static), number of objects, static and in-motion objects, color of objects etc. One would like to keep a track of objects as the video progresses. Tracking helps in knowing when an object appeared in the scene and when it disappeared. All of the prior work on automatic video annotation is not really completely automatic [1], [2] etc.. They are semi-automatic at best and manual input and control is still required when annotating using these methods.

While doing this work, I developed a better understanding of some of the so called “automatic object tracking for surveillance” solutions out there in the market.  None of these solutions can ensure a complete hands-off scenario for humans. Humans still need to be involved and there are reasons for that.  At the same time, it is also possible to do everything in cloud (including human interaction) and claim it as “hands off for a user”. In this case, it is simply that the client is paying someone else to provide the service. It is not a stand-alone autopilot kind of system installed in a user’s premises. Real automatic video annotation is extremely hard, especially when the scene can change without any guarantees. If we add “video analytics” i.e. ability to analyse the video automatically to detect a certain set of activities, it again becomes very difficult to propose a general solution. So, assumptions are again made and these can be based on user requirements or can be domain specific (say tennis video analytics at Wimbledon). Here is a system which may be of interest to you: IBM’s Digital Video Surveillance Service and a few others described in the paper titled “Automated visual surveillance in realistic scenarios“.

Most of the research work makes certain assumptions either about the scenes or about the methods they use. These assumptions simply fail in real world scenarios. These methods may work under a “restricted real world view” made using a set of assumptions, but when assumptions fail, these methods become limited in applicability.

I believe this is a critical issue that many researchers who want to translate their work into usable products have to understand. This is where both strong theoretical and practical foundations in a discipline are needed: theory gives the methods and the tools, engineering tells you what can/cannot be done and the two can interact back and forth.

Economic Cost of Badly Designed Software Systems

In Design Methodologies, Education, Embedded Systems, Engineering Principles on July 18, 2016 at 10:47 PM

The goal of every design activity, whether in computing or in some other field, is to come up with a system that serves some economic purpose. So, there are software and hardware systems that fly an airplane, that run our cars and power grids etc. In the past, people were distantly connected with these systems. They were mostly passive users with these systems being used for very specific purposes. However, there has been growing emphasis on using these systems, especially software systems, in governance and delivery of public services to citizenry. A lot of these public services are routine in nature and not particularly associated with life threatening risks (unlike power grids, cars etc.). Perhaps this is one reason why so many software systems for the delivery of public services are so poorly designed. Not only the design itself can be poor, but also the testing and validation for these systems is taken very lightly. I also feel that the testing and validation of these systems have to sync with the general life style and attitudes of the citizenry they serve. However, this is perhaps asking for the famous Swiss chocolates when not even a basic candy is available. 😛

Software systems that are used in industrial systems undergo rigorous testing and validation and still they can fail, crash, malfunction and give erroneous results. Studies conducted on the economic cost of such badly designed systems have reported losses of billions of dollars (see here and here). However, if badly designed software is used to provide citizen services, I am not aware of any report that analyzes the associated economic loss. You may be wondering what triggered this post or this conclusion. Well, in India, the government has mandated booking of cooking gas via dedicated hotline numbers which connect to a software system that manages the booking request, generation of customer invoice etc. However, during a recent such exercise, my father received a SMS that the booking has been cancelled (with an even funnier reason stated in the SMS: “Reason: Cancelled Booking”). He did not apply for cancellation. So, he had to drive to the vendor to inquire about this because a number of these vendors are not responsive enough to answer such questions on phone. The vendor replied that it is a software glitch and the booking will be processed shortly; the SMS can be ignored. Not only all this put stress on a citizen but also resulted in precious petrol going down the drain. Now multiply this one incident with another one lakh (a hundred thousand; a very conservative estimate) such cases a month and you get the picture. By the way, there are around 15 crore (i.e. 15 million) consumers of liquefied petroleum gas (LPG, the primary cooking gas in India) (see here).

Apart from the economic cost (whether big or small), such incident create friction and distrust in the system. This is a bigger danger as it cannot be put in monetary terms. Citizens begin to suspect service providers and begin to complain. All of this can be avoided if these social software systems are properly designed and the service providers educated about their proper usage. Unfortunately, this last part seems to be the least of concerns for many people involved in such exercises.

User Interface (UI) Design for Computer Systems

In Design Methodologies, Embedded Systems, Engineering Principles on January 13, 2016 at 8:03 PM

I believe that a proper User Interface (UI) design for computer systems is a must. All the technical, scientific and engineering wizardry that engineers may do while writing code and developing the system comes to a naught if the user interface is not human centric. There are countless examples of poor UI designs and one can find it at even those places which excel in research and development. Will it not be surprising if you happen to visit a renowned research lab or university where it takes time for a user to figure out how to use a machine to update some data on a card? It can be a bewildering experience.

When you go to an ATM machine to withdraw money, you are actually interacting with the machine through a user interface (UI). You insert your card, provide security details and choose options from the on-screen menu. This is all fine as long as you understand the languages used by the machine. These and similar other machines like queue number dispensers, ticket vending machines etc. are often used these days.

Among other things, I consider the choice of language as the most important decision that a user should be allowed to make before he provides other inputs to the machine for processing. If the user does not understand the current language and it takes a while to figure out how to set the language, it leaves the user with a bad experience.

The very-first view on the screen of such a machine should be related to the selection of a language. Now, the message there could be “Choose a language and a list of language is also shown simultaneously”. Of course, this assumes that  the user would understand the message “Choose a language” written in one of the supported languages. But I think a better option is to simply show all the supported languages without any message.  The user can then simply select one and thereafter the usual process follows. Such a design would work best with ATM machines, ticket vending machines etc. These are machines with which a user interacts instead of simply relying on it for information. For instance, the speedometer display of your car just provides you with information; you do not interact with it. For such interfaces, other UI designs will be suitable.

The problem with UI design in many systems is that it is done by engineers and managed by managers who have little training in this sphere or simply do not care to think as much as they would while doing software and hardware design for the system. This results in a clunky and sometimes dangerous user interface. Here are some examples of poor UI designs and their effects.

So, the next time when you do a UI design, please have some consideration for the poor users and let them have an easy life! 😉

Presentation as a Sales Pitch?

In Education, Engineering Principles, Research and Development on March 25, 2015 at 5:19 PM

It is not uncommon to hear these days: “make your presentation to sell your ideas”, “a presentation is a sales pitch” etc. What was earlier confined mostly to marketing and sales departments is now making its way to other places as well, including academia. Imagine going to attend a talk titled “Truth and Lies About XX” and after spending some time there one realizes that the presentation has no relation to the title at all! The catchy title was just meant to attract people but it lacked substance. Over the past few years, I have come across quite a number of such presentations where the title and the content are very unrelated. The sad part is that most of these presenters walk away with impunity without any member of the audience ever making a remark with respect to the gap between the title and the content. I find this practice not only misleading but also unethical. Most of the time, people come to attend a presentation with a certain notion of it based on its synopsis, speaker’s bio-data  and the title. The title plays a very crucial role in creating excitement. However, I don’t think that it should go so far as to end up unrelated to the content.

I agree with the view that one needs to polish and shape one’s presentation to help the audience follow it; that one needs to choose words and phrases carefully to highlight the main points, one’s contributions etc. However, I don’t agree with a blatant disregard for the audience’s intellect that becomes visible when such titles are chosen. The presenters may say that it was unintentional and that they were only concerned with making it more fancy. However, the fact  that it was unintentional itself says that the presenters did not think deep enough about their target audience.

When people , who are not sales professionals, like engineers, scientists, doctors, lawyers etc. try to become like them, they often forget that there are both good and bad salesmen. That is why they teach sales and marketing in business schools. If it were just a matter of catchy title and pompous claims, business schools would not need to teach the subject. In their effort to sell their ideas, the presenters also forget that the audience has its own mind. In most cases, it won’t simply buy whatever is presented to it no matter how charismatic or fancy the salesman is. Of course, if a presenter knows that a certain audience has a bias, he can use all the tricks to impress the people. In general, I don’t think it is a good idea to keep emphasizing the “sales pitch” version of non-sales related presentations. Instead, what should be emphasized more is to connect truthfully with the audience.

Component Problems with Electronic Systems

In Education, Embedded Systems, Engineering Principles on December 30, 2014 at 9:37 PM

It is not surprising to find component problems with electronic systems. I was working with a Zedboard recently and it would just not boot from the supplied SD card. The serial driver was properly installed but the LED would not light up. The host PC’s operating system did not complain about any driver issues. Some members on the Zedboard forum complained about the micro-USB socket problem on the board. In any case, when working with a development or an evaluation board, it can become difficult to diagnose such issues. I tried different SD cards as well but to no use.  My laptop can recognize the SD card but Windows is unable to format it!

This experience makes me feel that it is relatively easier to simulate a design and test it for functional correctness. It is more frustrating when components on a board stop working and you do not know which one. For my case, the SD card could be corrupt, the SD card reader could be corrupt; according to forums, there may be issues with the serial port driver etc. It is not that it is difficult to diagnose the issue. It is just that you have try to isolate the problem by looking at different possible issues one by one. It wastes a lot of time especially when you expect a dev/eval board to be up and running quickly.

One board can take away so much time. Imagine if you have to do this for 20 such boards which is usually the case when such boards are procured for student laboratory exercises! Can’t there be a better way to know the status of components? Perhaps it is time to investigate this!

When Engineering Meets Art

In Embedded Systems, Engineering Principles on November 30, 2014 at 2:33 PM

Do you remember watching any spectacular acrobatics show? Imagine watching not only that but a lot more. This is exactly what you get at the House of Dancing Water show at the City of Dreams in Macau. The show presents a dance drama which not only travels in time but is also supported by stunning engineering work. In fact, I think without the engineering work, the dance drama would lose its effect by half. Seated in a 360 degree theater, the drama opens on a stage of water with actors swimming and coming out! Yes, it is water! Shipping platforms rise, incredible audio and light equipments create thunderstorms and lightning and the actors perform on these platforms. They tell a story and they also jump into the water on stage from the platforms that rise many meters in height. Water cannons shower water in all shapes which are used incredibly in the story. Small boats come sailing on the stage which itself alternates between a dry platform, no platform (only water), partially dry and partially filled with water. The water cannons shoot from holes in these platforms and the water sprinklers on the part of the roof covering the stage create rain. There is an incredibly complex mechanical control near the roof top spanning the stage area to slide actors onto the stage, pull them away, make them fly etc. Aside from the brilliant performance, you can only wonder at the amount of engineering ingenuity that has gone into making all this possible.

House of Dancing Water

House of Dancing Water

For one-tenth of the cost of a ticket to House of Dancing Water, one can also watch another show called “Dragon’s Treasure“. You can imagine yourself standing on a stage that cuts right through the center of a sphere. The top half of the sphere is the screen on which a story related to dragons is played with brilliant sound and light co-ordination. You need to turn your head all around to follow the movements of dragons on the gigantic screen.

Dragon's Treasure Show

Dragon’s Treasure Show

This immersive experience is enhanced further by the dragons spitting fire through the holes that you see on the screen in the image above. Of course these dragons are not real but the fire is!

These shows confirm that it is possible for art to achieve greater heights using engineering to its advantage. While engineering plays a secondary role compared to the story and the imagination of writer, it does enhance the overall effect! The audience walks away with a sense of having spent beautiful time and money worth spent.

 

Chasing Numbers

In Education, Engineering Principles, Mathematics, Research and Development on September 28, 2014 at 8:35 PM

In his book The Tyranny of Numbers: Mismeasurement and MisruleNicholas Eberstadt says, “Although he may not always recognize his bondage, modern man lives under a tyranny of numbers.” Other writers have also commented on how and why numbers alone cannot make us happy and how numbers can be both enlightening as well as confusing if not presented with the right kind of background information. This is very true with research literature, specially those pertaining to engineering and science disciplines where measurement plays a very important role in conveying one’s ideas to convince someone of their importance. I see this everyday when I read research papers. Sometimes I even see numbers and graphs which seemingly do not have any major relation to the central idea of the paper. Such numbers, graphs and tables are byproducts of primary measurement but are probably included with the hope that more numbers, graphs etc. make the papers not only look good but also appear convincing. Given the very short amount of time that most reviewers spend on a paper, it is only sometimes that one finds reviewers commenting on the unnecessary usage of such secondary artifacts. However, a cursory glance does make the paper look good and does give the impression that the authors have spent time analyzing their results (though this may not be the case).

When I see such papers I am reminded of Eberstadt’s statement. It makes me wonder if engineering and science people read papers and books from the field of social science or history or say English literature. Research is conducted even in these disciplines and data is also collected and analysed where needed. However, the force of the argument generally comes from rigorous analysis and reasoning. It is not always driven by the logic that since this paper achieves number X compared to number Y (where say Y is less than X), the proposed methodology is better than the one related to number Y. I have read Diffusion of Innovation by Everett M. Rogers and I have found it to be immensely enlightening. It not only uses numbers but also the force of reasoning. This is so strong that you begin to see what the author is trying to say. I wonder how, say a computer engineering scientist would review a sociology research paper.

Have you ever tried reviewing a paper or a book outside of your major discipline and trying to understand its logical progression?

Do you read User Guides?

In Design Methodologies, Education, Embedded Systems, Engineering Principles, Research and Development on May 14, 2014 at 6:32 PM

I am a member of LinkedIn and like many of you am also a member of quite a few LinkedIn groups. The good thing about LinkedIn groups is that the discussions remain professional in tone and content. This is why I like them compared to discussions on other social media platforms where they can vary in tone and content from the most professional to the most ridiculous. In a discussion on such a LinkedIn forum meant for engineers, someone admitted that very few engineers or users of tech tools read the user guides. This is not far from reality. I have seen this when I interacted with practicing engineers on a more regular basis than now. I also see it in academic life.

Personally, I find user guides of development boards, software and hardware tools extremely useful. Reading them once gives me enough confidence in extracting the best out of these tools. For instance, user guides of FPGA vendor providers are very helpful and I am more confident about my design after having referred to the user guide at least once though often these guides can be voluminous. I guess the verbosity of these guides is one main reason why people don’t feel like reading them. The other reason, I think, is the propensity of many practicing engineers, graduate students and others to get  their hands dirty as soon as possible. They want to write code, design a circuit, run simulations etc. without getting bored reading these guides. While this enthusiasm to start working is worth appreciation, ignoring the “reading” part leads to problems later on in the product development process, research methods and has the potential to creep into the results. Basically, this haste leaves one vulnerable to questioning at a later stage. Sometimes this can prove very costly as well especially if it is related to product development. Of course one can always talk about pressure for results from managers, supervisors, customers etc.; this is not a very good excuse. Good managers etc. also understand the importance of being abreast with background information.

Is this issue observed more in the engineering industry than say banking or insurance sectors or for that matter safety critical engineering domains? Perhaps. Engineers take great pride in fixing things. They can use patches for software, make new releases, change components or simply replace the product.  However, bankers and insurers cannot do much once money is gone. The fear of losing money is too great to sustain the dislike for reading guides, whitepapers etc. Similarly those involved with safety critical engineering domains are more mindful about liability issues that aversion to poring over thick user guides is probably a non-issue.

One can also argue that  the presentation style of many user guides is quite boring. I agree when you compare with things that provide “instant thrill” thus leading to a desire to know more. User guides do not provide that thrill but writing code, experimenting with a development board etc. does give a lot of thrill to many engineers. Nevertheless, when it comes to getting a job done properly, there is no other choice but to sweat it out! 🙂

Communication Skills for User Interaction

In Design Methodologies, Engineering Principles, Research and Development on April 12, 2014 at 9:06 PM

I recently used the IVR (Interactive Voice Response) system of an organization tasked with issuing identity cards to citizens. An IVR system is supposed to improve customer experience besides helping the organization in managing complaints,requests etc. Therefore,it plays a very important role. An IVR system comprises one or multiple menus which are read out to a caller who then has to select one of the options. Interestingly, sometimes there are just so many options that one just loses tracks. It also happens when the “menu items” do not sound similar to what the called user has in mind. So what do you do? You just navigate to the one that sounds closest  to what you had in mind and hope that it will solve your problem or you wait for the option to talk to a staff on the other side!

The IVR system that I referred to earlier had peculiar issues. If you selected the option that said something similar to “I would like to know if I need to reapply”, you would expect it to prompt you to give some information based on which you would be told “whether or not” you should reapply. However, this IVR system would give the response similar to “Please do not reapply as it is not desirable to have two identity numbers”. Now how on earth is that helpful?

The IVR system of a prominent smartphone company would give some even more hilarious responses. When you call the number hoping to find a relevant menu or speak to someone, it would tell you something similar to “Please visit our website to resolve your issue”. Now imagine that for some reason you do not have access to internet, then is that response of any help? Absolutely not.

This begs the question about the people (engineers, manager, UI guys etc.) involved in designing IVR systems. Do they really understand how people use a language to communicate? Do they spend some time understanding the common phrases that people use to refer to their issues and then distill a subset that they can use in their system? Do they spend time brainstorming proper responses to different kinds of questions? A good IVR system is not just a software development exercise. It involves understanding about communication and is affected by the communication skills of the team doing the design. Similarly, an IVR system with multiple menus and sub-menus can get difficult to navigate especially for old people. Does the design team understand who the end users are and what kind of communication skills they have? I think these are important questions that should be considered. An IVR system is supposed to provide an easy solution to a user. It should be simple, straight and elegant.

Frustrated with Passwords?

In Embedded Systems, Engineering Principles, Industrial Consortia on January 30, 2014 at 11:21 PM

There is a huge amount of research literature on security, privacy, hacking etc. associated with computer networks of all kinds. Almost all of these networks work on the principle of authenticating users before granting access.  Similarly, all internet based services like your email account, online banking account , Facebook etc. authenticate users before granting access. You need a user id and a password to access all these services. When you use multiple services, you need to create multiple user ids as well as passwords. The problem is that you need to be able to recall these when the need arises. So either you memorize them or write them down somewhere or store in the cloud. This indeed becomes frustrating when you try to use really strong passwords for your accounts. Can there be a better solution that using passwords? Can the sign-in process be simplified? People are making efforts in this direction. There is a an online petition against passwords movement that seeks to educate both users as well as companies to simplify the sign-in process to access services. There are industrial efforts also in this direction. The Fast Identity Online Alliance (FIDO) is also working in the same direction. However, this is not the end of this issue.  Solutions like using device authentication for online authentication restricts the ease of access with respect to devices. For instance, currently you can login to your Gmail account from any computer. However, if a solution ties this login to your personal laptop, you will not be able login through any other device. It remains to be seen how this story unfolds. Will there be really a solution or will users have to live with a compromise between security and privacy concerns on one end and ease of access on the other?