Re-imagining beta testing in the ever-changing world of automation (Article at Opensource.com)

lightning-test

Check the article at :  https://opensource.com/article/18/1/beta-testing-automation

Today’s beta test solutions aren’t working to develop products that meet users’ needs. It’s time for a new vision.

If you ask most people why beta testing and related tools are important, they’ll name things such as shortening of beta cycles, reduced time investment, increased tester participation, improved feedback loops and visibility. However, all the reasons why beta testing is so critical can be narrowed down to two major issues, both of which are predominant in the beta testing phase of the SDLC:

  1. The intersection of humans and technology
  2. Usability and quality standards

Read complete article here: https://opensource.com/article/18/1/beta-testing-automation

 

 

 

 

 

Advertisements

Omnipresent Operating System (OS) : Re-imagining the Next Killer Experience for future of OS.

ominipresent-OS-image

Reincarnation in the Hinduism is one of the fascinating philosophical concepts that says that a soul or spirit after meeting a biological death is capable of leading a new life in a new body. Being a Hindu, I also believe in the transfer of one’s soul after death into another body which produces a continuous cycle of birth, life, death and rebirth through one’s many lifetimes in Samsara.

Though this is an analogy from the mythologies and scriptures in Hinduism and other religious books, the concept of the same soul is passing through different bodies is somewhat can inspire the experience for the next-gen Operating System (OS) — an ecosystem where the OS is “omnipresent” as a soul and allows the user to move through different “systems” and “devices”(even we can extend this to IoT contexts!) .

A user story might record this user’s perspective something as —

“I should be able to use my application uninterruptedly and seamlessly across various devices/system as I move through different devices due to certain needs”.

It is like soul transfer — transferring consciousness from one body to another body.  In the movie The Matrix(1999), the Agents were transferring themselves to different person’s bodies. One interesting thing to note here is that being transferred to a new body they remember their goals, their memory etc.

(Fig: In the movie, The Matrix (1999), the agents can transfer themselves into other bodies at will.)

The idea that I termed as Omnipresent Operating System is to share application sessions (along with all the state/session data etc.) from one system to another system that allows to continue the application running on the later system in exactly in the same state and using the same session without the user to start the application from beginning or using a different application session in the later system to use all the benefits of available in the later system. This helps to achieve unifiedseamless & omnipresence-experience across different systems.

Use-Cases:

Following are five use-cases represented in images :

In each one, we can see a daily life usage where the experience for the user are extremely simplified through the proposed solution.

Historically the OS concept has progressed over time through many evolutions. Typically the OS is defined as a system of software which manages the hardware resources of the system to provide a base for its users’ programmatic computing needs. Throughout the history, multiple dimensions were addressed for operating systems such as performance, multitasking, usability, portability, mobility etc. We are witnessing a period of time when the transformation is happening to the evolution of OS at the highest rate possible. This is due to diversification of software technology, hardware, and evolution in new age eco-systems and new paradigms of digital devices. This is an age when we are witnessing the coming of IoT (i.e. Internet of Things) and cloud, where any device can be part of a bigger eco-system and be an extension of a cloud system.

So the question is what is the future of Operating system? Is it that cloud will be the ultimate operating system? At least by looking at the Chrome book, defining a thin-client based access to all the computational needs that stay in the cloud”. But still, the diversification of operating systems prompt us to pause and think, something is missing. The missing piece is convergence.

We have many derivatives of different types of OS. Android, iOS, Linux, Windows and OSX are to name the few of the variations, that continue the OS war. But users are limited by this. Imagining an application running in one OS . Can we use the same application in another one? No. Also imagine a situation, when you are reading an email and want to update it (the same email )on your PC…can you do it? No.

If we see the trends today towards the future, it’s all about micro-services and server-less architecture similar to torrent (peer-to-peer) or blockchain implementation, de-centralized and distributed eco-systems where the systems communicate to each other. In such scenarios, the next killer experience is to have the ability of the omnipresence across this distributed & de-centralized eco-systems.

Solution Implementation:

The solution can be implemented in two ways. To illustrate this assuming that there are two devices and the user initially starts using some application in the first one and then he moves to the second device and uses the same session and input data in the second device .

Approach 1. Both the devices (i.e. Device 1 & Device 2) will be running same Omni-present Operating System ( in real life scenarios it might be possible in some cases that they can be of different versions of the same OS ) which will have capabilities to transfer the application & user data including session/environment variables etc.. along with necessary components that will allow to render that in another device.

Approach 2. Both the devices may not run the same Omnipresent Operating System… they may be running 2 different OS (including 3rd party OS like Android and Windows etc.) .. in such cases both the device can have some Run-time Component installed to allow them to have the capabilities to transfer the application & user data including session/environment variables etc.. along with necessary components that will allow rendering that on the device on receipt of such data .

The following diagram illustrates the different fundamental components are to be placed in an architecture of the eco-system in order to make it work.

Description of the diagram :

100 and 200 are two devices connected over the same network via wifi/Lan/Bluetooth etc. (e.g. 150 & 250). 
110 is an application running in 100. 120 is the Runtime Component that helps to achieve the desired outcome proposed in the invention (might be part of the OS). 
100 is connected to internet via port 140. 
111 is the session data, 112 is user authentication and related data, 113 is environment related data (e.g. browser version, OS version, history, some system variable etc. ), 114 is any other metadata that might be associated with any of the components of the environment. 
115 is the application data (e.g. client session, user input data, cookies, local storage, application related variables etc. ). 
210 is an equivalent application running in 200.  
220 is the Runtime Component that helps to achieve the desired outcome proposed in the invention (might be part of the OS). 
200 is connected to the internet via port 240. 150 is a means of connection (e.g. wifi, LAN, Bluetooth, NFC, IR etc. ) of 100 with any other devices like in this case 200. 
250 is the similar means of connection. 
Both 100 and 200 are connected to each other - for which may 100 might be using any other port 130 and same for 200 where it might be using 230. 
Now when the user runs device 100 and runs application 110, his data related to that state is collected and transferred to the other device 200 over the connection. This transfer is depicted as 160. 
This data is stored by the runtime 220 as 111, 112, 113, 114, 115. 

Now runtime selects the compatible application 210 which may have it's own session 211 and other related data. 
Now runtime 220 uses 111, 112, 113, 114, 115 to determine what can be populated in 210 , which may include the text or any info the user had entered in device 100 and this allows to run the application 210 with the user's data. 
Now the user uses device 200 to continue using editing or working on his data using app 210 and once he finishes, runtime 220 collects the modified data from the app 210 and sends it back to device 100 , depicted in 260 so that in 100 the runtime 120 uses that to populate the app 110 and within the same session as 111 and if the need is to update some server over the internet, it can do so via using the same session and thread via the same network port as 140. 

Note : The above example shows only a generic approach and describes the overall components. Depending on the scenario the usage might vary slightly -- for example if the user does not need to use same session and the port to connect to server, the flow might be different where once the user has updated his info in 210 on device 200, instead of sending back the updated data to device 100 as depicted in 260, the 220 runtimes can submit it to server or backend using 240 over a different session.

Note: The above example shows only a generic approach and describes the overall components. Depending on the scenario the usage might vary slightly — for example if the user does not need to use the same session and the port to connect to server, the flow might be different where once the user has updated his info in 210 on device 200, instead of sending back the updated data to device 100 as depicted in 260, the 220 runtimes can submit it to server or backend using 240 over a different session.

Why is Omnipresence is the future for OS?

Interestingly, when Cloud OS concept came into existence, the driving force behind it was the thoayeught that a ‘good’ OS gets out of the way and lets the user get straight to what they want. In Microsoft’s approach – From the perspective of the user, they’re no longer using a program on a machine but consuming a service that lives in an arbitrary place. Because the service runs on an API common to all machines, it becomes easier to scale and failover. This is concept the drives Platform as a Service (Azure’s tour de force). [Source]

Big players like Microsoft also believe that the “perfect future [of OS] would mean that […] software is totally portable between desktop and mobile devices. “. The kind of attempts by such players are to converge the OS of mobile as well Desktops.

Though many attempted in the past to evaluate thin-client OS as the future (e.g. http://www.totalnetworx.com/computers-technology/google-chrome-os-operating-system-future/ ), also gradually started to foresee the future of OS as something that can not be seen in the light of only a server-client architecture rather it would be defined in something more organic that would be sustainable. Articles like Desktop 2.0 and the future of the networked operating system , interestingly long back predicted the conclusion that we are carrying forward today that the Chrome OS version of the future where all we need is a browser is wrong.

So how Omni-present OS concept is different than thin-client and (even some old geeks referring the Mainframes to get the secret-sauce for the future!)? Here are the basic differentiators:

The Begining:

As I mentioned, in today’s OS evolution, it is the diversification of operating systems that prompt us to pause and think about the missing bridge to the future. If we closely ponder, it appears that the missing piece is convergence. The Omnipresent OS concept is a thought towards that direction. It’s actually a beginning for us to be prepared for tomorrow’s decentralized networked world where the age-old philosophies will show us the way!

(c) 2017-18 Samir Dash, Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)

 

https://www.linkedin.com/pulse/omnipresent-operating-system-os-re-imagining-next-killer-samir-dash

 

Beta Testing in the Ever-Changing World of Automation

Beta testing is fundamentally all about the testing of a product performed by real users in a real environment…Beta testing relies on the popular belief that goodness will prevail, which defines the typical tools that carry out such tests. Examples are the shortening of beta cycles, reducing the time investment, increasing tester participation, improving the feedback loop and visibility, etc…we lack “smartness” and proper “automation” in Beta Testing Solutions…

Check out the complete article at RedHat Developers Blog:

https://developers.redhat.com/blog/2018/01/05/beta-testing-automation/

When Your Style Protects Your Data!

During the end of Summertime in 2013, while scanning through the news sites, one bumped upon an article about the vulnerability of the PIN we use in mobile phones to secure our personal data “PIN-Punching Robot Can Crack Your Phone’s Security Code In Less Than 24 Hours”. This made me explore more about the different approaches and mechanism employed across the smartphone and devices industry to loack /unlock the home screen. I came across the different workflows including the swipe to unlock, 3D gesture of hand infront of the camera of the device, biometric approaches (e.g. face recognition, fingerprinting ) along with smart ways like the “TimePIN” and Apple’s gesture based swipe etc.

 

In almost all the options, the device was stationary and the user’s feature was in action or in motion for example the swipe to unlock uses the finger movement, where as the sign wave by apple was more geared towards the gesture made by the user and similar.

So I kept on exploring about the concept and started to play around the concept of locking and unlocking from the other angle. A few days prior to this while watching a movie of the Tamil Superstar Rajinikanth’s cult style of wearing a glass I was reminded about one of the key insights from a local dipstick study on the local user segments for a popular Korean mobile brand which was about the fact that the emerging market mass has the urge to maintain the identity with the bragging power or the “massclusivity

 

Massclusivity is the term coined around “Masstige” which is a popular trend now a days that is employed in mass-market products infused with prestige elements (think smartly packaged USD 20 shampoo sold in supermarkets), catering to emerging middle classes with an appetite for premium, but budgets that do not stretch to true luxury. This gives the user, in the mass, the exclusiveness of his sense of fulfilment of his identity among the mass, through some kind of fashion statement.

(Source: https://www.notjustalabel.com/editorial/age-fashion-massclusivity)

Looking at this aspect for smart phones, which are more personal to the user than any other device, I started toying with the ideas of how can we make the locking/unlocking a fashion statement.

The first step towards this was to give a fresh facelift to the user’s interaction point with device i.e. the moment he enters the data to lock or unlock the device. To move out of the confinement of traditional thinking around the interaction of locking or unlocking the device, I tried to see from the other angle, where the device instead of being stationary, is moving along with or in respect to the user’s focal point. This helped to elevate the user’s perception of being in a position to enter the data to something more fashionable, a style statement built with some movement motion and energy associated with. For this I sarted with the basic use of gyroscopic and magneto meter’s readings. The initial base concept was just changing of the values in device orientation and/or geographical /geological direction, while a pass code is entered.

The user interface provides an indicator for a number of taps/entries to be entered sequentially as a passcode.

The UI will have a button (B) that on accepting a tap/click from the user collects the values from system sensors related to “geological – direction”(D) and orientation data (O).

There must be an option in the settings while the user sets the passcode that allows users to instruct the system if it will record both the values G & O or just either one of them to form the final passcode to be matched for unlocking the device.

While this seemed practical enough, I wanted to take the next step, towards the style statement. So instead of moving a finger on the device, or making a hand gesture in fromt of the stationary device, I tried to flip the components of interaction so tha the device would be in motion and make the necessry style stament through the gesture recorded by the the orientation and directional data change through the sensors. The user can over the air can make some gesture while holding the device, that would help making a style sttament.

In this approach, basically, the user will move the device and while in pre-determined device orientation & geographical direction taps the button (B). A consecutive number of taps as required triggers the complete sequence to be matched with the previously stored passcode. If the match happens then the device is unlocked.

The user can provide a threshold of tolerance for accuracy error to be used while setting up the passcode. For example, the user can set the threshold for tolerance of accuracy error to 0 then the device will require exact value match.

If the user has set the threshold of accuracy error to a moderate level, then if the recorded value falls with-in the accepted range then the match happens.

Enhanced implementation (Approach 2) was another step forward that used a motion in the air to make a shape of a sign using the device as a statement that would be used to lock and unlocking the device. For example the user can make a shape of heart on the air while holding the device.

The great part of this was that this would act as a perfect USP for wearables like smart watch and fitness devices.

In all the discussed approches basically the saving and matching the saved signature or signature are the 2 steps.

STEP1:

Saving a path in 3D space as a passcode:

In this alternative implementation, the user moves the device in to draw a pattern over the air in physical world 3d space.

The system automatically records the consecutive device orientation values at different intervals during the movement to draw the path in virtual 3D space and uses that as a pattern.

STEP 2:

Unlocking Device

When next time the user moves the device in physical 3d space to draw the same path holding the locked device, the device matches this new path with the earlier saved path and if it matches then unlocks the device.

Note:

1.The device may map only the resulting path and not the exact co-ordinate and if similarity between the saved and user provided paths is more than certain threshold (similar to how we match signatures) then it can allow to unlock the device.

2.The saving of path can also be recorded along with the geographical direction so that only the user facing the certain direction should attempt unlocking. This can be higher level of security.

In Smartwatch also the user can move the watch to record a path as a passcode and provide the same to unlock the watch without even the need to look at it  –

In the small display area in devices like smartwatches, the invention becomes a boon as the user does not need to enter anything in the small UI

It’s always the fun and exciting to rediscover what we think we have already discovered. In case of this little idea, I feel that the excitement was the same and subject was worth re-discovering.

Re-imagining Beta Testing in the Ever-Changing World of Automation.

Based on the paper on the Beta Testing presented at RedHat QE CampX , Bangalore on 7 Dec 2017

Beta-Testing fundamentally is all about ‘A test of a product performed by real users in the real environment’ — and of course, there are many tags we use to refer to the testing of similar characteristics like User Acceptance Testing (UAT), Customer Acceptance Testing (CAT), Customer Validation and Field Testing (more popular in Europe) etc. Whatever the tag we use to represent all these testing cases, the basic components are more or less same — it involves the user testing and front-end UI as well as UX related testing to find out potential issues and rectify. Also, this always happens in the iteration of SDLC where the idea has transformed into a design and has passed the development phases where mostly the unit testing and integration testings have already happened.

Basically, the Beta stage of the Product Life-cycle Management (PLM), is the perfect opportunity to hear from the target market and plan for the road ahead.  When we zoomed into this phase of testing it has a board range of spectrum that ranges from Front-end or UI related testing involving UI functionality, Cosmetic, UI level Interaction and Visual look and feel at one end to the User Experience (UX) at the other end including User Testing involving more from A/B (Split) Testing , Hypothesis, User Behaviour tracking and analysis, Heatmaps, user flows and segment preference study or Exploratory testing and Feedback loops.

Beta Testing has the popular beliefs on the dimension of goodness that defines the typical tools that enable the user to carry out such tests, namely — Shortening of beta cycles, reduce time investment, increase tester participation, improve feedback loop and the visibility etc. However, if we dive deep into the factors behind the existence of tools from different angles, we will find two major reasons that advocate the importance of Beta Testing.

1. Left-Right Brain analogy that points out to the overlap of Human and Technology.

The typical belief is that the left-hand side of the brain mostly processes the logical thinking whereas the right part is more about emotional parts of the thoughts. Based on this popular analogy, when we map the different aspects involved in different stages of SDLC for a digital product across a straight-line from left to right, (refer to the diagram below) we will notice the logical and more human-centered aspects are divided by an imaginary line from the center. We will also notice the gradual progression of the emotional index for the components from left to right.

And when we map these to the beta testing phase, we notice these right-hand components are predominant in such testing phases. As users, as the humans, of the products, we are more emotionally connected to such aspects of the product which are validated or verified in a Beta Testing, thereby making Beta Testing as one of the most important testing phases in any SDLC.

Another interesting point to note here that when we look from the traditional software approach to define “criticality”, the areas that are tested during UAT / Beta, mostly fall into Class 3 and 4 type of criticality. But because these touch the core human aspects, they become more important.

To illustrate this here is a nice video https://www.youtube.com/watch?v=-jHDyhJdDb8that reflects the importance of technology touching the human emotions. This YouTube video posted was a popular brand that offers a glass for the color-blind people which can correct the colorblind vision issue in the real time for the end user. Interestingly this aspect is about “Accessibility” that is one of the aspects that is typically covered during a Beta Testing. Just by looking at this aspect “Accessibility”, in context to the video, naturally, the question comes “What can we do for this father and the son, as a tester or a developer or a designer?”. And when we look at the stats, we find the number of people the accessibility impacts are huge– Every one in five-person is challenged by some kind of disability. But unfortunately in some reports indicate that at more than 90% of the websites in 2011, were not conformant to W3C’s accessibility guidelines.

This itself shows the human angle, that advocates why Beta Testing is important to ensure these aspects are validated and verified so that the target user needs are fulfilled and not go unattended.

2. From the standard’s perspective – Evaluating from ISO/IEC 9126-4 (2001) dimension that defines the difference between usability and quality as a perceptive line.

The International Standards Organization (ISO) has been getting the standards around Quality vs. Usability evolved over time. During the 1998 ISO identified the efficiency, effectiveness, and satisfaction as major attributes of usability. Just a year after that, in 1999, the quality model proposed involved an approach to measure quality in the light of internal software quality and external factors. In 2001 the ISO/IEC 9126-4 standard suggested that the difference between usability and the quality in use is a matter of context of use. The ISO/IEC 9126-4 (2001) standard also distinguished external versus internal quality and defined related metrics. Metrics for external quality can be obtained only by executing the software product in the system environment for which the product is intended.   This shows that without Usability / HCI in the right context, the Quality process is incomplete. One interesting point to notice here that that “context” referred here is actually that is fundamental to a beta testing i.e. “real users in a real environment”, thereby making the case of Beta Testing stronger.

Now we know why the Beta testing is important, let’s explore the challenges that are involved with the Beta stage.  If we notice any standards defined, including ISO/IEC 9126, most of these are static — none of these models really describe the relationship between phases in the product development cycle and appropriate usability measures at specific project milestone. We should note that any standard also gives relatively few guidelines about how to interpret scores from specific usability metrics. And specific to usability as a quality factor, it is worth to note that usability is that aspect of quality where the metrics have to be interpreted.

In this light when we look at popular Beta-Testing tools of today, we can notice that the Top Beta Testing tools leave the interpretation to the customer’s or end user’s discretion. This brings to our Number one challenge in Beta Testing — How to filter-out pure perception from the actual & valid issues and concerns?   As most of the issues are related to user-testing, split-testing, and front-end testing, there is no optimized single window solution that is smart enough to handle this in an effective way.  Real users in the real environment are unless empowered are handicapped to comprehend all the aspects of beta testing and react. Also, it’s all perspective and all of them cannot be validated with real data from some benchmark/standards.

The World Quality Report in 2015-16 Edition indicated that the expectations from the Beta testing is changing dramatically. It hinted that the customers are looking for more product insights through a reliable way to test quality, functionality along with the regular usability and user testing in real customer facing environment.

It’s not only the Beta Testing rather in the overall testing scenario, more user-demand is also getting impacted by the rising complexities and the challenges which is increasing due to accelerated changes in the technology, development and delivery mechanisms and approaches. The 2017-18 World Quality Report reports that the test environment and test data continue to be Achilles heel for QA and Testing along with the fact that the challenges with testing in agile development are increasing. There is now a demand for automation, mobility, and ubiquity along with smartness to be implemented in the software quality testing. Many believe that the analytics-based automation solutions would be the first step in transforming to smarter QA and smarter test automation

While this true for overall QA and testing, this is also true for Beta Testing, even when this testing, unlike the unit testing, system testing etc. deal with the functional aspect of the product.

Let’s see where we stand today as per this benchmark. If we explore popular beta testing solutions, we will get a big vacuum in the area where we try to benchmark user’s need for more functional aspects along with the usability and user testing aspects are mapped. Also, you can notice in the diagram that there is ample space to play around with the smart testing scenario with the use of cognitive, automation and machine learning.

(Note: Above figure shows my subjective analysis of the competitive scenario.)

Basically, we lack “Smartness” and proper “automation” in Beta Testing Solutions.

Apart from all these, there are some more challenges that we can notice if we start evaluating the user needs from the corresponding persona’s viewpoint. For example, even when assuming that the functional aspect is to be validated, the end-user or the customer may have an inability to recognize it. As the product -owner, customer or the end-user who are the “real users in a real environment”, are part of the user segment who may not be aware of the nuts and bolts of the technology involved in the development of the product they are testing to sign it off. It’s like the classic example of a customer who is about to buy a second-hand car and inspects the vehicle before making the payment. In most of the cases, he is paying the money without being able to recognize “What’s inside the bonnet!”. This is the ultimate use-case that advocates to “empower the customer”.

Now how to empower the end user or the customer? The tools should support that in a way so that the user can have his own peace of mind while validating the product. Unfortunately, many small tools who try to solve some of those little issues to empower the user (for example the Google Chrome extension that helps to analyze CSS and creating the report or an on-screen ruler that the user can use to check alignment etc.) are scattered. The ground reality is that there is no single-window extension/widgets based solution available. Also, not all widgets are connected. And those which are available, not all are comprehensible to the customer/end-user as almost all of them are either developer or tester centric. They are not meant for the customer without any special skills!

 

When we look at the automation solutions in testing as part of much Continous Integration (CI) and Continuous Delivery (CD), are engaged and effective in mostly “pre-beta” stage of SDLC. Also, they require specific skills to run them. With the focus on DevOps, in many cases, the CI-CD solutions are getting developed and integrated with the new age solutions looking at the rising complexities of technology stacks, languages, frameworks etc. But most of them are for the skilled dev or test specialists to use and execute them. And this is something that does not translate well when it comes to Beta testing where the end-user or the customer or the “real user in real environment” are involved.

Apart from all these even, assuming we can have all these automation features enabled in BETA it still points to another limitation in the existing solutions. It’s because the employment of automation brings in its own challenge of “information explosion” , where the end user needs to deal with the higher volume of data from automation and with so much information, the user will struggle to get a consolidated and meaningful insight of the specific product context.   So what we need to solve these challenge? Here is my view — We need smart, connected, single window beta testing solution with automation that can be comprehensible to the end-users in a real environment without the help of the geeks.

For sometime since a last few years, I have been exploring these aspects for the ideal Beta Testing solution and was working on the model and a proof of concept called “Beta Studio”, representing the ideal beta testing solution, which should have all these — Beta-Testing that utilizes data from all stages of SDLC and PLM along with the standards + specs and user testing data to provide more meaningful insights to the customer.  Test real application in real environment by the real users. Customer as well as end-user centric. Test soft aspects of the application — Usability, Accessibility, Cosmetic etc.  Smart enough to compare and analyze these soft aspects of the application against functional testing data.

Use machine-learning & cognitive to make the more meaningful recommendation and not just dump info about bugs and potential issues.

Here is an indicative vision of Beta Studio:

 

Mostly this vision of the ideal beta testing solution touches upon all the aspect we just discussed. It also touches upon all the interaction points of the different persona e.g. customer, end-user, developer, tester, product owner, project manager, support engineer etc. across the whole Product Life Cycle and utilizes automation along with the Machine Learning components such as Computer Vision (CV) and Natural Language Processing (NLP) to gather information that has to be processed by the cognitive aspect to generate the desired insights about the product and recommendations. During this process, the system will involve data from standards and specs along with the design benchmark generated from the inputs at the design phase of the SDLC, so that meaningful insights can be generated.

In order to achieve this vision being translated into reality, what is that we need. The following diagram hints exactly on the same:

Basically, the first step should involve creating the design benchmark from the information from the design stage, that can be used in comparing the product features against a metrics based on this design benchmark.

The second thing that matters should be automated and manual tracking of the product during runtime in real time and categorize and collate these data.  The third step involves creating features to support the user feedback cycle and user testing aspects (exploratory, split testing capabilities).

The fourth step would be to collect all standards and specifications on different aspects — e.g. Web Content Accessibility Guideline (WCAG) Section 508, Web Accessibility Initiative Specs ARIA, Design Principles, W3C Compliance, JS Standards, CSS Standards & Grids, Code Optimization Metrics Error codes & Specs, Device Specific Guidelines (e.g. Apple Human Interface Guideline) etc.

The fifth is about building the critical components such as Computer Vision and Natural Language Processing units which would process all the data collected in all these stages and generate the desired metrics and inferences.

The sixth step involves building the unit to generate the model to map the data and compare against the metrics.  The final or the seventh step is to build the cognitive unit that can compare the data and apply the correct models and metrics to carry out the filtering of the data and generate the insights which can be shared as actionable output to the end-user/customer.

While experimenting for BetaStudio, I have explored different aspects and built some bare bone POCs. For example, Specstra is a component that can help create Design benchmark from design files.

When I was exploring Specstra , that was trying to address the issues related to the Cosmetic aspect or visual look and feel. Typically when it comes to cosmetic issues, more than 30% or one-third issue are non-functional and mostly Cosmetic, there is no reliable solution that helps in benchmarking this kind of issues against some specific standards. At a minimum, one third of the issues found during the beta / UAT stages of testing are mostly cosmetic and alignment issues including category 3 and 4 types. And these happen mostly because the two personae – developer and designer involved have their own boundaries defined by a mythical fine line.

When a developer is in focus roughly 45% of them do not aware of all the design principles employed or the heuristics of UX to be employed. Similarly half of the designers are not aware of more than half of the evolving technological solutions about design.

And in mostly three fourth of the of the projects, we do not get detailed design specs to benchmark with. Detailing out a spec for design comes with a cost and skills. In more than two-thirds of the cases of development there is the absence of detailed design with specs. Wherever it exists many of the designs are not standardized, also most of them do not have clear and detailed specs. Also being design is carried out by different tools it is not always easy to have a centralized place where all the designs info is available for benchmarking.

To solve this Specstra comes handy as it is an Automation POC that is more like a cloud-based Visual Design Style Guide Generator from the third party design source files – this is a case where the user would like to continue using his existing Design tools like Photoshop/Sketch or Illustrator, PDF etc.

You can view the video of the demo here

 

https://youtu.be/_o4taIXCvck or read more here https://medium.com/design-ibm/specstra-experimenting-with-automation-in-design-industry-4641c0b4244d or here https://yourstory.com/read/71b0d89e20-specstra-experimenting-with-automation-in-design-industry

Similarly, the single window solution of tracking and be getting the real-time data on accessibility, visual design, CSS, JavaScript & Environment etc. from the product is explored in this POC. View a video on Beta Studio POC here https://youtu.be/kItqD5wc4_4.

 

I know reaching the goal of an ideal beta testing solution might need the effort and time and the concept will also evolve over time. But for sure the journey has started for all of us to connect and explore how to make it a reality.

Feel free to ping me in the comment section of this article.

To explore the open-source project of BetaStudio poc , follow the link here –https://github.com/betaStudio-online (will be uploading all the code to the repos in these in coming times. )

The Evolution of Technology in the Context of Software Development & Design Process: Take-away from PatternFly Conference

[This post was originally published on Red Hat Developers, the community to learn, code, and share faster. To read the original post, click here.]

Last Sunday, I returned home, India, after attending a series of collaborative sessions in Raleigh, NC, with many designers and developers across Red Hat and the open-source community, at the UX Summit and the PatternFly Conference. The whole experience was inspiring, informative and at the same time thought provoking with many takeaways, out of which the most interesting for me was that cumulatively all the inspiring talks from the speakers of the conference were implicitly hinting towards a clue. How our attempt to solve the existing technical solutions also impact the existing work process and thereby demand a rethink on the process blocks we use.

Being part of the Red Hat UX Design team, it is always an exploration and giving value to the core principle of “being open” to the “Design” — this is something similar to how the “openness” is seen as the integral value of the “Development”.

“We approach user experience design in the same way we develop our products. It’s all about being open.”   – Jim Whitehurst, CEO & President, Red Hat

So, what’s so special about the design being open? Is it something different from how we design in a traditional enterprise organization? It’s natural to have such questions when we face the open paradigm of the design challenges — I had similar questions. One thing to note here is that designing for open-source has its own challenges that require a re-look at the existing design processes and frameworks especially in the software development scenarios that have been evolving over last two decades. With the focus to bring the user-centric focus to the existing sets of Software Development Life Cycle (SDLC) — these were mostly about advocating Human Factors in the perspective through which we have been used to see SDLC.

But as day-by-day major enterprises are going open-source to bring more and more collaboration with the community to develop the software, the open-source movement itself is getting mature by gradual evolution through different seasonings in the context of the growth of technology and the changing market needs that are driving shaping the SDLCs. For example with the rise of startups in last few years, the adoption of MVP-driven Lean Development models instead of traditional SDLCs has increased indicating the evolving dynamics of adoption of such processes.

In the traditional enterprise, the design process is more or less influenced by standard UX approaches that have evolved over the last couple of decades. Taking into account the SDLC defined towards the end goal of the organization in context to the user experience related benchmarks. Many take different components/tools and methodologies from the Design Thinking and other similar HCI process models, and align them into the SDLC, be it agile, waterfall or hybrid, and try to achieve the user-centered software development (UCSD) from an engineering point of view.

There are sects of organizations, who take into account the user needs related benchmark and make the existing SDLC components to align to that — be it through User-Centered Design (UCD) approach blended with a part of Iterative, Agile or Lean SDLC models or simply following a ready made Lean UX model. While everyone is attempting to solve the UX equation to come up with the best possible framework that works great in advocating user needs, the question is still unsolved — what UX approach works best in a diversified collaborative open-source culture?

In the very first PatternFly conference held on 8th of this month, in his keynote, Michael Tiemann, VP of Open-source Affairs at Red Hat, referred to continuous evolution in the software development domain in context to design. His expressed views, which resonated more with the belief that the sustainable design solution can evolve from an organic design process, where reusability can play an important role.

(Michael Tiemann, Vice President of Open Source Affairs at Red Hat, delivering the keynote at the very first PatternFly Conference at Red Hat Annex, Raleigh on 8th June 2017)

The PatternFly community project supported by Red Hat is an attempt in such a direction that promotes “design commonality and improved user experience”. Dana’s blog post, Are “Web Components” in the future for PatternFly?, is an interesting read in this context from a technical angle where he addresses the thoughts on building a UI framework when there are so many choices and so many strong feelings about the different choices? While every organization is still trying to find the solutions for challenges related to UI development for a better experience such as – how to structure and organize CSS code for reusability in the ever-growing complex world of UI framework choices like Bootstrap, Angular & React etc. It’s also important not to forget that with each adoption of UI framework the impact on how we implement experiences to our products is also evolving, thereby making an impact to the process blocks that run the design, and development testing phases of SDLC.

This leads us to the hypothesis that with the evolution of newer technology adoptions, we are bringing the change catalysts to our development process, which can influence how we conceptualize and deliver the best experience for any product we are building. Along with it, as SDLCs are now getting re-shaped due to needs like, “faster time to market” and to bring out more sustainable solutions for the business needs, so is the associated stages of “Design”, “Development” and “Testing”. These are also getting more mature through the focus on Continuous Integration (CI) and Continuous Delivery (CD); thereby bringing a sea of change to the way software was planned, designed, developed, and tested traditionally. To this model when we add the “Open” aspect that demands the need to improve the process dynamics in order to ensure the end-to-end software delivery is sustainable in coming times. Red Hat’s recent open initiative to announce OpenShift.io is an attempt that tries to address all these aspects, at least it is a “start” where we start re-thinking openly about the solution that we thought we already have.

Openshift.io as an end-to-end development platform tries to address multiple areas or the process blocks like Planning, Analysis, and Creation, that tries to answer one question – what is the best way to deliver a software product in the most effective, seamless and consistent way in a diversified work-culture with value and best experience possible. It would be interesting to see how this platform evolves in coming times with the support and collaborative effort from the open source community to address these process related change catalysts that are getting their way into the work practices due to an ever growing complexity of technology change.

In the forthcoming posts, I will be exploring this context with respect to existing UX models and methodologies try to reflect thoughts on “UX in the Open “. Stay tuned.

BlueTap — The Ultimate Virtual-Reality(VR) Keyboard

This is one of my IBM patents on a VR keyboard published recently that does not require the users to carry a keyboard device and allows to input your information even when you are in motion. Forget Google Glass, even the experience of Apple’s much rumored Apple-VR can multi-fold with this mother-of-all VR keyboard system and approach.

Back in 2014, while preparing my slides for one of my earlier seminar talks on accessibility Rediscovering Accessibility for Future Tech (you can read the linked post here https://www.linkedin.com/pulse/20140917025440-9377042-rediscovering-ccessibility-for-future-tech-everyone-is-affected), I hit upon the challenges and available solutions that were present for data input systems. The concept of mobility in devices has transcended beyond the scope of marginalizing telephony and computing, and has taken a shape in the form of wearable devices. However with advent of new technological invention in any field also gives rise to new challenges. In the smart wears one of such challenges is input of information to the associated system.

One such challenges was that — modern technologies are enabling people to interact with systems in distracted environments, while in-motion and while multi-tasking giving raising to its own set of problems which were not known in PC era. With the rise of smart-wearable devices, mobile computing and frequent use of access of information from cloud while on the move, one of such challenges is input of information to the associated system, as the systems are getting less in size and tending towards smaller displays. The recent trends in mobility domain, indicates the growth in the smart wearable devices. We are witnessing a time when every technology company is trying their best to own their part of innovation in Smart wears such as smart glass, smart watch etc. and this field aligns with IBM’s one of the currently prioritized strategies — i.e. mobility.

In most of the existing smart eye-wear device (e.g. Google Glass) , the input mechanism is typically via voice. While this is great for provide commands to the device, it is not still great for input longer texts. Again voice based input mechanisms are difficult to use in noisy and distracted environments. Also language localisation and accent issues adds to the list of issues in using voice effectively. Moreover when it comes to the productive work like drafting emails, writing a piece of programming code, voice-input method is not as effective as a standard keyboard based input mechanism (mostly found in PC, laptops, mobiles and missing in smart eye wears).

Usage of a physical keyboard or a secondary tooth enabled keyboard is possible but it requires the user to carry a keyboard wherever he goes. But even if the keyboard is carried, there is no guarantee the user will have a flat surface to place the keyboard or if he can comfortably use the keyboard while on the move. Imagine a person who is waiting on a busy bus stop and wants to reply his office email.

A set of new hardware are available in the market (e.g. Fin, Ring) which act as supplementary wearable to trigger pre-defined commands and provide limited input of information via finger movement and hand gestures over air. However none of them are effective enough to provide a keyboard solution that can be used for easier input of textual information into wearable device like a smart –eye wear or smart glass.

Also when it comes to input longer texts on a smart glass/eye-wear, there is absolutely no reliable method/system exists as of today which can work for users on the move and in distracted environments.

So with these problem statements in mind, I made a lit of dimensions of goodness —

  1. Effective even in typing-in long text into smart eye-wear system — can help user more productive. The user can input long emails or simply use smart-eye-wear to write a program or code even on the beach.
  2. No cognitive load on user to remember pre-defined commands/key names /gestures etc. (unlike the wearable rings based command trigger systems as detailed in prior art section)
  3. Can be used effectively while on the move & distracted or multitasking state (standing in que, at bus station, while having dinner, while driving, walking, in home while watching TV)
  4. No need for any extra or supplementary hardware required along with smart-eye-wear. No need for the user to carry separate input devices.
  5. A method that uses age old natural human habitual way of processing information through fingers
  6. Explore the new way to have a device free of any physical input accessories

With these pointers on the goodness, I iterated over a conceptual design of a Virtual Reality enabled keyboard for effective data input system (named it BlueTap) with many innovative approaches in a pattern of gestures that can be used in a augmented virtual space and was filed as a patent by IBM. BlueTap is basically an Input keyboard system with a set of gestures and methods that uses both fingers-tips & finger-joints, as a keyboard for smart eye-wears and a set of gestures to control the human-system interaction in the real life 3D virtual space using this keyboard system.

BlueTap is about an approach that uses natural human gestures in hand that are derived from the age old human cognitive approach of counting through fingers. This also focuses on the idea that there should not be any need for the user to carry separate input devices for typing long texts into the device. This helps the device to act as the independent device and not a supplementary device to some PC, tablet, mobile handsets. The user can input long texts any where any time – on the road, walking, in home while watching TV. This is an approach that allows to explore the new way to have a device free of any physical input accessories.

The idea uses a overlapping of a graphic/icons over a real camera stream on the screen is a known technique. Also recognize finger on a hand , finger tips and finger joints is a technically feasible technology using OpenCV , Kinetic type technology. Mapping of the alphabets and making visible these as graphic to finger tips and joints over glass screen on both hands in real time.Analyzing the finger movements to infer the “tap”, “double tap” and “swipe” gestures. This is also about a mechanism to sequence a string of inferred gestures to provide a typical typing kind of input experience.

The BlueTap proposes method and an effective and scalable interaction paradigm that  solves the issue of input of texts into a smart eye-wear in an effective manner even when the user is on move and is in distracted or noisy environments and there by making him more productive by allowing him  to use his fingers tips and joints as the keys to input the long texts effectively — which the user can do anywhere any time and does not need to carry a supplementary device (a key board or a phone/tablet with a virtual keyboard on it.). The invention can be used in digital smart eye-wear devices (e.g. Google Glass, “Jet” by Recon, Evena’s Eyes-On Glasses) in mostly consumer, enterprise and healthcare domain. This can be refined to integrate with in any future smart eye-wear product to provide quick and comfortable input mechanism to the device.

The interaction paradigm in BlueTap allows in run-time dynamic switching between different views (a view that can represent but not limited to any language and nature of selected keyboard layout ) and operation modes double hand as well as single handed keyboard operation, in case the user is busy in doing something (e.g. holding coffee cup, having dinner, driving, writing etc. ) or is having any disabilities of not having one hand.

BlueTap is more than just being a keyboard system, as it allows user to interact with eye-wear system in a new way – like interacting with an application menu of the system to open any app, or making a call to any phone number by enabling a dial pad or doing some calculations via an calculator interface displayed by BlueTap.

A set of unique gestures are also part of this system that allows to control different mode/view of Blue Tap, namely –

  1. Fist Gesture – Toggle among keyboard views such as aplabet and numeric or symbol keyboard views.
  2. Palm Flip & Back Gesture – To toggle between “keyboard” and “app menu” views
  3. Thumb Down & Up Gesture – Toggle between “enable” or “disable” state of BlueTap
  4. Thumb slide across Palm gesture – To slide between single handed and double handed keyboard modes.
  5. Double Tap on finger Gesture – Toggle caps lock state of keys.

BlueTap implements a novel way to super impose characters/symbols over finger-tips and finger-joints on the eye-wear view port and renders them in real time (through virtual reality technologies) to make them look natural tattoo kind of look n feel. Also the whole method of using finger joints as keys where virtually the key characters are visually rendered to create virtual visible keys, the tapping and double-tapping (to change caps lock) is novel in itself.

As far as implementation is concerned, BlueTap supports different technologies for finger detection — e.g. including but not limited to infrared sensors / thermal imaging based detection, body magenetism, camera visual image processing, additional wearable based solutions and/or any other technologies that can be utilized to detect finger tips and joints in 3D space.

BlueTap supports both or even any of the single hand to enter information. The user can easily swap between these single or double modes. Along with if the person requires left hand to type in he can move from double to single hand.

Along with this this is beneficial for the physically challenged person by providing an accessible way for data entry.

Different operational modes of the BlueTap are :

  1. Double Hand State (Default)
  2. Single Hand State

The double hand mode of the keyboard before the gesture made by the user to toggle into a single handed operational mode.

BlueTap also supports views like an Application menu or Home-screen, where the user can trigger different application for the eyewear. In such mode, the application icons appear instead of the alphabets. The user can easily pick and select the app to run.

The keyboard layout is flexible as well as dynamic to switch between various views, one such example is the user can open a numeric view or even a dialing interface.

Specific new sets of palm and hand related gestures are part of the BlueTap keyboard, that allows to quickly move between different views as well as typing mode.

BlueTap is comprised of the following key components which are involved in the generation of the virtual keyboard over human palm:

1.  Activation/Deactivation of BlueTap :

There can be a physical switch/button or via voice control or via launch of an app can trigger the activation or deactivation of BlueTap. This is simply switching ON/OFF of the BlueTap system.

2. Enable/Disable of BlueTap:

If the system is active, the user can disable the hand and finger monitoring by the BlueTap system. This is similar to enable/disable of virtual keyboard in typical mobile devices.

Different Modes of BlueTap:

1.      Keyboard Mode – This is the default mode of BlueTap System. This allows to render a keyboard over user’s palm.

2.      App Menu Mode – This mode renders the different app icons of the eye-wear device on the palm of the user so that the user can tap to trigger any app.

Note: Optional modes that might be introduced – for example :

3.      Call Dialer Mode – a call dialer pad layout will be rendered on the palm to allow the user to dial any number to make a call or similar activity.

4.      Calculator Mode – a calculator interface will be rendered so that using it calculation activities can be easily carried out by the user.

Different Keyboard views available are:

  1. Alphabets View
  2. Numeric/Special characters view
  3. Typing Email keyboard view
  4. Coding in HTML keyboard view
  5. Caht keyboard view with smileys
  6. Different keyboard views for different languages.

The BlueTap keyboard patent details:

Publication number: US 20170090747, Filed: Sep 24, 2015, Publication Date: Mar 30, 2017, Inventor: Samir K. Dash (Bangalore) , Application Number: 14/863,832, Assignee – International Business Machines Corporation (IBM)

Samir Dash is working as Associate Design Director at IBM based in Bengaluru, India. The above article is personal and does not necessarily represent IBM’s positions, strategies or opinions.

 

BlueSalt — The New Patented Data Encryption Security System for Making Data Centers Fool-proof

This is the story about my patent titled “BlueSalt Security” owned by IBM, an invention in data security that is about an unique strongest ever encryption system for sensitive data like that of financial, government or federal as well as industrial enterprises, where it binds the data to environment in a way so that even in case of war, terrorist attacks or riots when the data-centers are captured physically by the enemy, the data can not be retrieved back.

 

This is the story about my patent titled “BlueSalt Security” owned by IBM, an invention in data security that is about an unique strongest ever encryption system for sensitive data like that of financial, government or federal as well as industrial enterprises, where it binds the data to environment in a way so that even in case of war, terrorist attacks or riots when the data-centers are captured physically by the enemy, the data can not be retrieved back. This is also designed for modern IoT (Internet of Things) as well as BYOD (Bring Your Own Device) kind of setups. Another important aspect is that BlueSalt encryption does not need to store the key used in the encryption process for decryption and getting the data back, unlike traditional cryptographic approaches where the key is stored in crypto-processors and similar methods, there by making it the most secured data encryption approaches.

In current age of microprocessors, the information security is critical. Specially in case of financial institutions/banks, research centers & labs, high profile data-centers, high confidential enterprise, military, government locations where high confidential information is stored, it becomes a necessary to ensure highest level of security to be implemented to avoid any cyber-attack, theft of information.

Many organisations have adopted multiple security approaches, starting from physically securing the data-centers to adding firewall and using high level of encryption to the systems in order to protect the data. Some examples are self-destruction of data on multiple failed attempts in the authentications process. Higher grade of encryption used in storage and databases are very common in IT services industry. Similarly in IT industry also isolating critical projects with higher degree of client sensitive data, are carried out in isolated physically secured location or (e.g. forming Odessy for projects ).

However all authentication process has some limitations — for example: in case the hacker gets hold of the physical system with passwords used at multi levels he can access the information. Also during the time the information system comes under terrorist attack, or during the time of war or riot etc. the physical systems can be captured and moved to another location and environment to decipher the information stored.

To improve security to the highest degree in cryptographic methods and approaches, IBM BlueSalt allows to bind the encryption process to system’s environment and state under which it is supposed to be running. IBM’s BlueSalt makes use of system’s built in as well as additional set of external sensors that are either part of the local environment or part of remote network or under Internet of Things (IoT) kind of framework, to generate salt for encryption process.

From history there are plenty of real-world examples are available on the physical capture of devices containing sensitive information. BlueSalt makes it impossible to retrieve the information in such cases. Specially in case of modern day scenario of data centers it is more complex. Many data centers contain easy-to-exploit physical vulnerabilities that don’t require hacking into the network. Also we no longer live in an on-premises world with a defendable perimeter. According to Gartner, over half of information workers report using three or more devices for work. The topic these point to such dimensions — Data centers are a bit unique when it comes to security ..including physical security , In Physical security: The overlooked domain , “With today’s complex threats, physical security has unfortunately taken a back seat”.

For such scenarios, BlueSalt tries to bring a solution by focusing on goodness such as — It would be really strengthen the security of the information if the system’s encryption of data does not only depend on passphrases or key files that are generated from some password, pin. The information should be bound to a particular environment or state so that any deviation from that state will fail in decryption of the data, this would mean that by carrying out storages or the whole system that contains sensitive data cannot be decrypted in a different environmental conditions. An attacker could not simply fake a “salt” value just by knowing passphrases/key/PIN associated with encryption method, as the salt will be based on environmental variables.

Under BlueSalt method, once an encryption is made considering the parameters of the controllable (surrounding temperature, luminosity, Bluetooth/infrared/wifi signatures, IP addresses/passphrase/bio-metric data etc. ) and non-controllable (GPS or geo-location co-ordinates of the system , direction/orientation of the system etc. ) parameters results in a higher level of encryption where any deviation in the environmental change (e.g. increase in room temperature due to fire, physical orientation, direction of the system changed even in the same location, or system being moved to a different location, or absence of any of the running Bluetooth, infrared or wifi signatures) will result in a failed decryption of information and additionally it might take precautionary measures (e.g. shutting down the system or inform nearby security centers etc. )

The salt value generated through BlueSalt can be used in any existing Cryptography technologies like SHA-1, Blowfish etc. where there is support for creating keys for encryption. IBM BlueSalt can even be simply used in a system to encrypt the hard-disk or databases salt value generated. And when ever the salt value does not match the decryption fails.

In cryptography, a salt is random data that is used as an additional input to a one-way function that hashes a password or passphrase.

In cryptography, a salt is random data that is used as an additional input to a one-way function that hashes a password or passphrase. BlueSalt Encryption is a method that uses one or combination of many parameters of the system’s surrounding environment and state in-order to create a salt to be used in the encryption key. Some examples of the parameters regarding environment is collected via the enabled sensor are:

1. System position in 3D space including direction — typically can be collected via the sensors like gyroscope, accelermeter , compass and /or any other system orientation, state detection mechanism that can point out the system in the 3D space.

2. System location — Latitude &longitude and or any parameter which can be obtained via any indoor location technology or standard GPS or geo-location and/or similar technologies.

3. Available connection points signatures — Surrounding Bluetooth, wifi, NFC, infrared or any other devices signatures available in the surrounding.

4. Temperature — surrounding environment temperature condition values.

5. Pressure and height from sea level — barometer data

6. Light luminosity & humidity etc. of the surrounding

7. Motion data — accelerometer readings

8. Proximity sensor data

9. Biometric data — any biometric information of authorised person(e.g. face recognition/eyelid recognition /fingerprint)

10. Ip address of the system — both internal / external etc.

11. Custom value — passphrase/ pins etc.

12. Any other environmental or system state (physical / virtual ) parameters.

The salt generated is a function of one or any combination of these parameters, which is used in the data encryption process. At the time of decryption of data again the salt is generated in the same process and is used to decrypt the data. As long as all the parameters are same, the decryption becomes successful, else it will fail.

Unless the originally set salt at the time of encryption is matched at the decryption process the system does not allow the decryption process to be carried out or the decryption process fails resulting out the meaningless decryption.

BlueSalt is also designed for modern IoT (Internet of Things) as well as BYOD (Bring Your Own Device) kind of setups. Another important aspect is that BlueSalt encryption does not need to store the key used in the encryption process for decrypting and getting the data back, unlike traditional cryptographic approaches where the key is stored in crypto processors and similar methods, there by making it the most secured data encryption approaches.

In the following diagram , there are two different systems in different environments. So the salt generated Salt A is not same as Salt B. Even if just one of the parameter is changed that will impact the salt generated and will result in failure in generation of proper decryption key.

BlueSalt based cryptographic eco-system in any network

The BlueSalt method binds the information to it’s original environment and state. If such encryption is enabled, then two systems even in the same location will have unique and non-replicable encryption keys even if the user provided pass phrases are same.

(FIG: Conceptual diagram showing data encryption through BlueSalt.)

In such cases typically, all respective systems can use their own environmental variables to create salt for encryption and decryption process which will be unique and will be impossible to replicate in another system or environment. This is shown in the following figure where SaltA and SaltB are unique.

(FIG: BlueSalt implemented network environment.)

Alternatively a common shared salt value is created using parameters from different systems in the network. The following diagram shows that scenario:

(FIG: BlueSalt implemented alternative network example)

BlueSalt based cryptographic eco-system in a network with IoTs

In IoT (Internet of Things) scenario, various distributed sensors (shown as sensor units in the diagram below) can be used to form the ‘salt’ for the cryptography. For example — apart from using a target system’s local environment and state, remotely placed sensors can be placed to strengthen the salt value. In such a situation a BlueSalt based cryptographic eco-system can be formed, where multiple systems and their respective environmental and state related parameters can be collected and combined to form a salt for cryptography. This kind of eco-system can help in managing one or multiple systems with sensitive/confidential/critical data by multiple stakeholders.

Note: in this kind of eco-system different sensor units and data-centres may operate in same or combination of locations in intranet(local network) and cloud(remote network).

(FIG: BlueSalt implemented IoT)

BlueSalt enabled theft prevention framework

BlueSalt method not only helps in creating the salt for the cryptography so that the system ( storage or database) is encrypted, but it can also be used to define a framework that can prevent data theft.

In such a framework, the failed attempts of accessing the data from the system initiates some predefined (by system admin) preventive actions such as showing warning, or self-destructing the system data, or auto sending out SOS messages to designated security officials etc.

How BlueSalt works?

To improve security to the highest degree in cryptographic methods and approaches, BlueSalt allows to bind the encryption process to system’s environment and state under which it is supposed to be running. BlueSalt makes use of system’s built in as well as additional set of external sensors that are either part of the local environment or part of remote network or under Internet of Things (IoT) kind of framework, to generate salt for encryption process.

In cryptography, a salt is random data that is used as an additional input to a one-way function that hashes a password or passphrase. Under BlueSalt method, once an encryption is made considering the parameters of the controllable (surrounding temperature, luminosity, Bluetooth/infrared/ wifi signatures, IP addresses/passphrase/bio-metric data etc. ) and non-controllable (GPS or geo-location co-ordinates of the system , direction/orientation of the system etc. ) parameters results in a higher level of encryption where any deviation in the environmental change (e.g. increase in room temperature due to fire, physical orientation, direction of the system changed even in the same location, or system being moved to a different location, or absence of any of the running Bluetooth, infrared or wifi signatures) will result in a failed decryption of information and additionally it might take precautionary measures (e.g. shutting down the system or inform nearby security centers etc. )

Typical BlueSalt encryption scenario:

Typical BlueSalt decryption scenario:

Ideally the goal of BlueSalt is to make it impossible to retrieve the data unless all the conditions are met. So the optimum usage of BlueSalt does not store anything in the system . However alternative data recovery option can be used if needed. This recovery option uses multiple encryption levels and storing encrypted version of key in system. The following diagram shows the encryption supporting an alternative environment for data retrieval:

And here is how the decryption is supported for alternative environment :

Hopefully, with BlueSalt, the new age data centers, BYODs and critical data storages can be made more safe and secure by adding additional layer on security.

This idea/invention is patented in US, India and internationally by IBM. The patent details of the invention:

BlueSalt Security — US9590957 A1,  Issued on :7 March 2017, Inventor: Samir Dash, Assigned to & Owned by: IBM

Samir Dash is working as Associate Design Director at IBM based in Bengaluru, India. The above article is personal and does not necessarily represent IBM’s positions, strategies or opinions.

The Smallest Virtual Keyboard That Can Fit Into Any Wearable

The story of  smallest virtual keyboard that will make the gadgets like smart eye-wears, smart-watches independent in data input without the need for the user to carry a secondary data input mechanism.

With the advent of evolution of semiconductor technology, digital devices have becoming small in size. Keyboard layouts have improved over time to cater to the need of the new age devices with ever shrinking smaller display size. But none of the keyboard solutions/concepts is useful for smart devices like wrist wears, fitness wearable-devices, and watches. This is mostly due to lack of sufficient real estate in these slimmer and reals estate constrained devices.

(FIG : With the advent of evolution of semiconductor technology, digital devices have becoming small in size.)

The major challenges we face while designing UI interaction for screen real-estate constrained devices is that, when we use touch enabled UI, we do it via our finger tips and pads, which there by requires a minimum size of UI elements/buttons on screen that are expected to be tapped or touched to trigger some actions. While using touch enabled devices, standard recommended minimum touch area is defined to ensure the UI area is usable.

For example Apple recommends a minimum target size of 44 pixels wide 44 pixels tall on a 3.5 inch display at 164ppi. Similarly in the Windows Phone UI Design and Interaction Guide (PDF), Microsoft goes further and suggests: a recommended touch target size of 9mm/34px; a minimum touch target size of 7mm/26px; a minimum spacing between elements of 2mm/8px; and the visual size of a UI control to be 60-100% of the touch target size. Nokia’s developer resources suggest that touchable interface elements should not be smaller than the smallest average finger pad, that is, no smaller than 1 cm (0.4″) in diameter or a 1 cm × 1 cm square.

So on an average for usable UI control the minimum size is around 44point (pixel free unit) and is approx. 7mm x 7mm area. When a keyboard layout is designed, this minimum area of touchable surface on UI matters the most, there by restricting us from using a keyboard based input system on small or slim wearables like smart watches, wrist wears or any other device that has limited real estate.

During past few years many cell phone device makers came up with multiple approach to deal with small UI area while designing keyboards on smaller devices. One example is T9 keyboard.

(FIG: T9 keyboard is an example of using unique interactive method for a keyboard for small real estate.)

When iPhone attempted providing QWERTY type keyboard, it used multiple views of keyboard to accommodate all required keys . This was followed by Android and almost all touch enabled phones.

But The evolution of devices resulted into even smaller devices with minimal possible touch enabled displays / panels – many examples are the smart Watch, Wrist bands , medical equipments and many smaller and slimmer devices.

This has gave raised to a new problem. Now even the T9 or any other such keyboards do not have enough space in the screen area to fit into these devices. The typical physical dimension of the touch enabled displays of these devices come in different types – some are slim ones, some are oval or round shapes. For example main display size of Samsung Fit(slim) is 1.84 inch with 128 x 432px. Similarly the iWatch is around 2.5inch.

When I initially tried to explore the existing solutions available, I bumped upon Minuum which  needs at least a 1.63-inches (that is almost the same display area of Samsung Gear ) — it is due to the implementation provided where the sub panels appear to provide selection for character based on earlier selected character. So it was even not useful in slim-wears as well as any touch surface below the 1.63 inch surface.

So practically there was no significant keyboard was used in wearable devices with constraint real-estate. Rather most of them used on alternative methods of input mechanisms like voice and a secondary bigger device like a smartphone.

Most of the smart devices use voice as the major input systems due to lack of real-estate to accommodate a keyboard on them . However the voice based input systems have their own problems such as – (i) In noisy environments (e.g. out-doors, or in crowd) its really difficult to enter the texts via voice commands in an error free way (ii) due to variations in accent, tone of the speaker the voice input based system may not be totally effective and give raise to the scope of error. Surprisingly new age smart devices are more used as wearable and are used out doors which frequently are operated in noisy and distracted environments. Also the processing power in small devices makes it a thumb-rule to have the voice processed in cloud rather than in the device itself, for which the device needs to be connected to network.

(FIG: Due to lack of real estate, primary input system to many wearable-devices are mostly voice based.)

Using voice as an input system has it’s own problems:

1. Voice input systems are not 100% error free and accurate. As voice of different persons are different due to the use of pitch , tone and cultural influence, there are significant chances that such voice recognition systems may fail at certain times.

2. Having a full fledged voice recognition system is resource heavy and consumes lot of CPU and require heavy processing. So, practically , all of these wearble-devices now-a –days depend on cloud based voice recognition systems . This means, To use voice input, you need to be connected to internet, else you will not be able to input data to your system. In addition to this staying connected to cloud comes with additional issues, like high battery consumption and data charges. Specially power is an issues with smart watches and similar wearable-devices, so it becomes critical for the user . Many companies like Apple, Google are still fighting with challenges of reducing power consumption and improve battery life of wearable-devices.

3. Third issue with voice is it is prone to error in distracted and noisy environments. As wearable devices are expected to be used in motion and out doors, this becomes a critical issue for effective data input into the systems.

So all these remind us of good old keyboards, where the data entry is lot easier and error free.

(FIG: Some wearable-devices use alternative approach for text inputs – use of a mobile phone as the main input system.)

Some wearable-devices use alternative approach for text inputs – use of a mobile phone as the main input system. In such scenarios, the user uses the mobile phone as the primary device where he enters the text using phone keyboard . Many popular smart watches use this approach as this is more convenient for the user to input texts than voice mode. Samsung Gear, Microsoft Band, Apple iWatch and Moto 360 are examples where these devices are packaged as secondary devices to Samsung and windows phone.

The problem with this approach is the smart wear device is never plays the role of the standalone device. It always acts as an auxiliary devices. This strictly limits the device functionality and usage . Also the user is forced to carry additional hardware and a mobile phone to control and enter texts.

In such cases the smaller warbles most of the time act only as readable devices. For example, the user can read a “Shopping list” that was compiled on a phone. On the phone he can check and un-check the items from the list, how ever he won’t be able to alter the list by adding new items to it on the wearable device. He needs additional phone or hardware to make changes to the list. This kind of usage of the wearable are severely limiting the functionality of the wearable.

So in such cases a dimension of goodness that one would be aspiring for is to be looking forward to a future of human machine interaction, where wearable-devices, super small display-enabled or display-less smart devices will play an important role, it is highly important that we need to fix such major limitations of these devices, by providing a easy to use and implementable solution for text input method to the system.

Other dimensions of goodness should also take care of the following :

1. We need an effective keyboard that can work with super real estate constrained devices – especially like a smart watch or wrist wear etc. for effective data entry.

2. And the solution must be (i) Compatible with different display sizes with real estate constraint and (ii)  can work without the need to relay on voice or cloud (iii) can work in standalone way without the need of any additional hardware or secondary devices like a phone (iv) must be flexible enough to accommodate different language (v) must be scalable to meet different needs and work in various environments (vi) must work on touch enables displays or panels.

So here it is – the answer to this problem we face – the BlueSlide keyboard, a patent assigned by IBM about a keyboard that works effectively on real estate constrained devices. Also this is the keyboard that is the smallest one as it can be enabled with a surface of a square millimeter touch surface.

The core idea behind the “BlueSlide” keyboard is based on the principle that when one or more fingers are swiped across the touch enabled area, the system records the direction and the number of fingers involved in the swipe/slide action. Based on the a predefined key mapping with the finger count and the direction of swipe, the system concludes a text input character and records it.

Ergonomically swipe gesture is lot easier than point and click/tap — as point and focus requires attention and focus during operation . It also adds cognitive load on user. Persons wit shaky fingers , elders and people who are in distracted environments and in motion (where most of the wearable are expected to be used), will have difficulty in tapping — specially in small display areas. Swiping is less focused, easier to handle even in motion..as it requires less focus and accuracy than a point and focus element.

When initially I conceived the idea, I tried to implement to test the concept and see if it is really effective. To implement the prototype , I put a paper with a wearable printout where the display area is cut out. Placed this paper on a Samsung note 2 phone display , so that the interaction area on the display is now limited by the cut-out area — this is the actual area we will get in a similar wearable watch. Now I run an app implementing the concept and interacted using fingers to type in some character and changing keyboard view through touch interactions like double tap and double tap. Just to note: the video shows the basic prototype, that tries to showcase that the basic principles of the invention was intended to be put to practical use. As per the final concept & the patented invention the layout and UI elements might change based on the need of the case where it has to be implemented.

When I tested the results of accuracy and speed, it turned out well in similar set of touch surface real-estate. There was no accuracy issue, as all characters are mapped to different finger count and direction, which results in fairly good amount of error free operation.

https://www.linkedin.com/pulse/api/edit/embed?embed=%257B%2522type%2522%253A%2522video%2522%252C%2522title%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522BlueSlide%2520POC%2520-%2520Smallest%2520Virtaul%2520Keyboard%2520%2528Patented%2529%2522%257D%257D%252C%2522description%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522This%2520is%2520a%2520proof%2520of%2520concept%2520of%2520an%2520implementation%2520of%2520BlieSlide%2520%2528IBM%2520Patented%2520invention%2529%2520virtual%2520keyboard.%2520BlueSlide%2520is%2520smallest%2520virtual%2520keyboard%2520that%2520can%2520be%2520us…%2522%257D%257D%252C%2522author%2522%253A%257B%2522name%2522%253A%2522Samir%2520Dash%2522%257D%252C%2522provider%2522%253A%257B%2522name%2522%253A%2522YouTube%2522%252C%2522display%2522%253A%2522YouTube%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252F%2522%257D%252C%2522request%2522%253A%257B%2522originalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DMy8X8A4_Ngg%2522%252C%2522finalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DMy8X8A4_Ngg%2522%257D%252C%2522images%2522%253A%255B%257B%2522url%2522%253A%2522https%253A%252F%252Fi.ytimg.com%252Fvi%252FMy8X8A4_Ngg%252Fhqdefault.jpg%2522%252C%2522width%2522%253A480%252C%2522height%2522%253A360%257D%255D%252C%2522data%2522%253A%257B%2522com.linkedin.treasury.Video%2522%253A%257B%2522html%2522%253A%2522%253Ciframe%2520scrolling%253D%255C%2522no%255C%2522%2520allowfullscreen%2520src%253D%255C%2522%252F%252Fmedia.licdn.com%252Fembeds%252Fmedia.html%253Fsrc%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fembed%25252FMy8X8A4_Ngg%25253Ffeature%25253Doembed%2526amp%253Burl%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fwatch%25253Fv%25253DMy8X8A4_Ngg%252526feature%25253Dyoutu.be%2526amp%253Btype%253Dtext%25252Fhtml%2526amp%253Bschema%253Dyoutube%255C%2522%2520width%253D%255C%2522459%255C%2522%2520frameborder%253D%255C%25220%255C%2522%2520class%253D%255C%2522embedly-embed%255C%2522%2520height%253D%255C%2522344%255C%2522%253E%253C%252Fiframe%253E%2522%252C%2522width%2522%253A459%252C%2522height%2522%253A344%257D%257D%257D&signature=AZR0m7dTHJfUbCQOEZWRD8MzkYmn

(VIDEO: Showing the earlier version of a quick working prototype of the invention.)

The “BlueSlide”keyboard concept utilizes combination of multiple fingers slide across the touch enabled display or panel to trigger key-input to the system for based on predefined key mappings. The proposed concept uses different combinations of minimum one to any number of fingers to slide over the touch panel. The minimum touch enabled surface dimension can be the width of one finger tip area or less in physical dimension.

So how the thin touch panel counts the number of fingers sliding across within a duration?

(FIG: how the thin touch panel counts the number of fingers sliding across within a duration?)

Each finger is sliding across the touch panel and the system records that count. There will be intervals between each finger is sliding across the thin touch panel consecutively within a duration.

(FIG: Using any standard smart watch dial interface (e.g. Moto 360 or iWatch), similar embodiment might look like this.)

(FIG: The image shows an impression of how this embodiment might look like on a slim-wear unit.)

There are many areas this new keyboard layout solved challenges —

1. Solves problem of input of text on a real-estate constrained devices like wearable-devices (watches, wrist wears) or mobile devices with or without the touch enabled displays.

2. Simpler implementation that does not need to identify the finger and track them . Also does not need to track hand orientation. As less parameters are required to processed by the system to map the characters, it is lightweight and effective in it’s implementation and can be used in smaller less resource consuming devices .

3. Can work on a touch panel that is only single-touch sensitive –It uses sequence of consecutive touch inputs and their directions to simulate a multi-finger touch case to map to a wider number of characters.

4. Completely unique input text keyboard embodiment that uses directional swipe gestures of single/multi-fingers swipe gestures and does not require on conventional virtual keyboard approach to tap on characters to input text /characters.

5.The complete keyboard solution can work on smallest display area/touch area which can be as small as just one tap area.

6.The invention proposes the complete text input method based on swipe gestures (using any single or multiple fingers without requiring to identify each finger ) and interaction paradigm to cover all sets of characters of any language including special characters

7. The embodiment suggests the use of multiple views of the keyboard to accommodate any number of characters in keyboard along with the interaction approach on how to switching between these views.

Alternate implementation of BlueSlide: Using super minimal real estate on a non-display type thin touch panel.

(FIG: This is useful when in an hardware, we just want to provide a display-less touch-panel to reduce cost. )

This is useful when in an hardware, we just want to provide a display-less touch-panel to reduce cost. The non-touchable display might show a the key mapping, where as the user will use a touch panel strip (which does not have display and can deploy pressure sensitivity or any other technology to detect finger count and directions).

This implementation even though not optimal, can be practical to be used in super slim devices or in devices where use of a touch enabled display is not possible due to cost or some other constraint.

(FIG: Simulating multi-touch using single touch supported sensor.)

Each finger is sliding across the touch panel and the system records that count. There will be intervals between each finger is sliding across the thin touch panel consecutively within a duration. The count of consecutive slide of finger (and gap between each finger) is counted to determine the gesture. (e.g. 3 fingers sliding consecutively across, in the same direction is determined as 3-finger swipe in that direction.)

The BlueSlide can be used beyond the smart-watch and smart-wrist devices. It can be now also be used in case of a smart eye wear (e.g. Google Glass), where the touch panel will be in the rim of the eye wear and the display will be in the smart eye-wear’s projected image. This is a new improved addition as in such scenarios, typically the user does not directly sees the touch panel of the device. He rather focuses on the UI being displayed/projected to him.

The touch panel is situated outside the display area. While wearing the eye-wear the user can type in text without the need to concentrate on any keyboard.

(FIG: The rim of the eye wear holds the touch panel and user can use one or multiple fingers to type in as describe in the invention.)

The rim of the eye wear holds the touch panel and user can use one or multiple fingers to type in as describe in the invention.

(FIG: In virtual reality games devices like “Oculus” the BlueSlide can be used to implemented to provide text input mechanism easily.)

(FIG: In eye-wear there can be two touch panels which can use both hands to reduce the number of finger of each being used.)

Another non-optimal special type of implementation of BlueSlide is provided in the following, where to allow real estate for other UI elements like more input fields /information etc., the keyboard touch area is reduced even further to somewhat around 7mm x 7mm (i.e. the touch area of single finger tip) on a screen area constrained device. The following image shows this example, where only single finger swipe with increased number of keyboard views are used to input data into the system. Depending on the implementation this can be further reduced to one square millimeter of touch surface.

(FIG: Alternative implementation of the keyboard that usages only one finger.)

Similarly any number of fingers can be put to use to create alternative embodiment of BlueSlide keyboard to work across various devices of different dimensions and nature.

Read the complete Patent/invention (US 2017/0003872 A1 – Touch Encoded Keyboard) here: http://patents.justia.com/patent/20170003872

Read it in YourStory at: https://yourstory.com/read/5f95c7528f-the-smallest-virtual-keyboard-that-can-fit-into-any-wearable-

Disclaimer: Samir Dash is working as Associate Design Director at IBM based in Bengaluru, India. The above article is personal and does not necessarily represent IBM’s positions, strategies or opinions.

How I Created a Software That In-turn Helped Me Creating My Graphic Book

It’s the story of Rangoli , my own custom developed cloud based image editor software that helped in churning-out the print ready images to help in creating a graphic book with specific effects to set the desired nostalgic tone.

If I today look back in time, I find many memories from Rourkela, a small township around India’s first public sector steel plant. Like any other Rourkelite, I have been a true enthusiast about my town. This passion led me to spend some time in last few years to collects smaller yet evocative details of events that shaped the place and the life within it. Then a time came when I gave it a serious thought to give them a shape of a book. Last year I published the book as titled Rourkela – The Illustrated Journey Into The Life Of The City 

As the book was supposed to be a graphic novel, there were multiple challenges I had. The first and foremost of them was getting the images/photograph of the town across different times in history. Being a small town it was really difficult task as not much of the facts and history of the place was recorded from different aspects of life. before the Rourkela Steel Plant was built in 1950’s, the place was least known tribal area with in the dense forest across the hills. Even though a high level details I had collected from secondary research, still the details were not enough to come up with a photographic book with truthful and accurate particulars. The problem with photographs is that they are too real – there is a little room available for imagination when you see a bright sharp hi definition photograph. The less details are in photo including color, there is more to imagine , and no doubt that’s why a painting with less realism is always effective in igniting emotion in viewer than the same subject in photograph.

https://www.linkedin.com/pulse/api/edit/embed?embed=%257B%2522type%2522%253A%2522video%2522%252C%2522title%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522RANGOLI%253ACreative%2520Studio%2520-%2520Samir%2527s%2520Experiment%2520in%2520Image%2520Processing%2520over%2520Cloud%2522%257D%257D%252C%2522description%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522Rangoli%2520is%2520a%2520fully%2520automated%2520cloud%2520based%2520creative%2520studio%2520app%252C%2520that%2520helps%2520in%2520converting%2520images%2520into%2520complex%2520sketches%2520and%2520artistic%2520outputs%2520that%2520can%2520be%2520used%2520for…%2522%257D%257D%252C%2522author%2522%253A%257B%2522name%2522%253A%2522Samir%2520Dash%2522%257D%252C%2522provider%2522%253A%257B%2522name%2522%253A%2522YouTube%2522%252C%2522display%2522%253A%2522YouTube%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252F%2522%257D%252C%2522request%2522%253A%257B%2522originalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DGY27CzxwPp8%2522%252C%2522finalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DGY27CzxwPp8%2522%257D%252C%2522images%2522%253A%255B%257B%2522url%2522%253A%2522https%253A%252F%252Fi.ytimg.com%252Fvi%252FGY27CzxwPp8%252Fhqdefault.jpg%2522%252C%2522width%2522%253A480%252C%2522height%2522%253A360%257D%255D%252C%2522data%2522%253A%257B%2522com.linkedin.treasury.Video%2522%253A%257B%2522html%2522%253A%2522%253Ciframe%2520scrolling%253D%255C%2522no%255C%2522%2520allowfullscreen%2520src%253D%255C%2522%252F%252Fmedia.licdn.com%252Fembeds%252Fmedia.html%253Fsrc%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fembed%25252FGY27CzxwPp8%25253Ffeature%25253Doembed%2526amp%253Burl%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fwatch%25253Fv%25253DGY27CzxwPp8%252526feature%25253Dyoutu.be%2526amp%253Btype%253Dtext%25252Fhtml%2526amp%253Bschema%253Dyoutube%255C%2522%2520width%253D%255C%2522480%255C%2522%2520frameborder%253D%255C%25220%255C%2522%2520class%253D%255C%2522embedly-embed%255C%2522%2520height%253D%255C%2522270%255C%2522%253E%253C%252Fiframe%253E%2522%252C%2522width%2522%253A480%252C%2522height%2522%253A270%257D%257D%257D&signature=AQYbS5FyMfkBVs5b6NHV0b3Oc7aY

(FIG: The images in the published book – the line textured engraving effect gives the feeling of vintage nostalgia.)

As the book subject was history of the town with reference to different location within and specially about the town’s inception in 1950’s, and before, I thought it would be great to use illustration type graphics to match the old times, specially 50’s and 60’s of the town. In addition to that the challenge was that as it was a place, about which very less photographs along with recorded information was available, it was difficult to come up with a graphical history of the places through photographs. Secondly due to unavailability of details of life style and location description of the area, (as Rourkela was mostly unknown remote hilly area filled with jungle and aboriginal tribal before the steel plant came up in 50’s just after a few year of India’s Independence ), leaving something to imagination of the readers in images is ideal to evoke certain emotions.

When I started looking for a theme of the graphic book on history of a location, I explored many font types, graphic styles along with sketch patterns. I wanted the book to bring back nostalgia about the past that gone by, to remind the readers of the days gone by which no more exists. So natural tendency was to select vintage designs mostly popular in the periodicals, books and magazines printed using older print approach like wood-cut , linograph and engraves and the kind, when digital print didn’t exist which ever maintain the crispness of our printing methods today and had the printing imperfections. So I selected the wood-cut, old style text and textured background of the background images which help get the reader he feeling of vintage nostalgia.

The next step was to look for options to produce such an effect. After a search I noticed there are some plugins to Photoshop and other similar photo editors which provide the similar effects. But as I am more biased towards open source and used GIMP most of the time for my graphical needs, I wanted a good plugin that would provide the desired effect . There were some yet they didn’t match the exact way I wanted to represent the images. I wanted something to closely match the childhood local magazines that were printed and were more crude looking printouts. So the one of the best choice was to rather develop a program to quickly produce the exact effect I wanted to invoke same feeling. Initially I thought of learning to develop a plugin for GIMP, but that included additional work to learn the new language and the methods to build the plugin. Yet I did not want to depend on simple actions. Also I was not interested in depending on a commercial software and stick to it and was also not sure how long it would take me to learn and there by come-up with the solution that will in turn will help me complete my book project. I was stuck at a cross road, where the other option is to look around and find an approach that would be easier for me to come up with a software solution that will involve less work. I realized, I knew a decent level of PHP and some open source image processing libraries. In my earlier days of my career as a developer, I had played a lot with such libraries which used to run over shell scripts and via PHP through Execs. So Decided to try out this approch and decided will build my own Image Editor application that will allow to upload any image and convert that to the effect I desired. Thus my pet project Rangoli came into being to help me out to finish my graphic book project.

After spending two months over weekends, quickly I managed to build a working version with a feature to convert my images into the desired effect. As I used PHP, I was able to host it locally and use it across different laptops I use at home via the wifi , without the need to install anything on the system I was working with my book project. Later I added a few more variations of the effect and build a template that can be used to add more effects like plugins into ‘Rangoli’. One such addition was to remove either the white or black from the image and make it semi transparent (the same effect you get in Photoshop by turning the blending mode to ‘Multiply’).

(FIG: Rangoli Interface showing the list of effects available and the preview in center pane. Multiple effects can be queued and batch processed.)

Later added the feature to process multiple effects one after another based on the queue — more like a batch process but through the GUI and by following human friendly language than the geek’s favorite commands. These helped me build a system that is scalable and cross platform by the time I finished the book.

(FIG: Rangoli user-interface showing the rendered vector image with transparency, ready to be used in the book.)

Using this then I started creating visuals for my book. I merged multiple public domain images and some photographs I took some time back across the town, to create desired frame which then I processed in Rangoli to generate print ready vector that with old engraved vintage type image.

(FIG: From Left to right, different stages the source images were merged and then fed into Rangoli to get the old print type shown in right.)

The one more good thing happened – in my book I was able to provide dramatic scenes from past combining some modern day photographs and processing them through Rangoli.

(FIG: Blurring the realism – Left images are the original ones processed, where are the right one are the finally processed outputs from Rangoli.)

Finally I was able to complete the book that was referred as “Mini India’ Rourkela coming alive through flickers of images”. Though technology helped me in a greater way by empowering me to meet my goal which otherwise would have been impossible for me, I learned a new trick — sometimes, we need to spend time in building components that will help us in long run . In such cases even if the immediate or direct benefit may not be in sight, still they may act as the foundation stone to the bigger thing we desire to achieve.

You can get the book from here: http://amzn.in/9pobnWq 

https://www.linkedin.com/pulse/api/edit/embed?embed=%257B%2522type%2522%253A%2522video%2522%252C%2522title%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522Experiment%2520on%2520the%2520Book%2520Form%2520-%2520History-cum-Travel%2520in%2520Comic%2520Book%2520Format%2520%2528Book%2520on%2520Rourkela%2529%2522%257D%257D%252C%2522description%2522%253A%257B%2522localized%2522%253A%257B%2522en_US%2522%253A%2522Rourkela%2520-%2520The%2520Illustrated%2520Journey%2520Into%2520The%2520Life%2520Of%2520The%2520City%2520Around%2520India%2527s%2520First%2520Public%2520Sector%2520Steel%2520Plant%2520Author%253A%2520Samir%2520Dash%252C%2520Sangeeta%2520Dash%2520Format%253A%2520Paperba…%2522%257D%257D%252C%2522author%2522%253A%257B%2522name%2522%253A%2522Illustrated%2520Type%2522%257D%252C%2522provider%2522%253A%257B%2522name%2522%253A%2522YouTube%2522%252C%2522display%2522%253A%2522YouTube%2522%252C%2522url%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252F%2522%257D%252C%2522request%2522%253A%257B%2522originalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253Dzs34MxEXTmo%2522%252C%2522finalUrl%2522%253A%2522https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253Dzs34MxEXTmo%2522%257D%252C%2522images%2522%253A%255B%257B%2522url%2522%253A%2522https%253A%252F%252Fi.ytimg.com%252Fvi%252Fzs34MxEXTmo%252Fhqdefault.jpg%2522%252C%2522width%2522%253A480%252C%2522height%2522%253A360%257D%255D%252C%2522data%2522%253A%257B%2522com.linkedin.treasury.Video%2522%253A%257B%2522html%2522%253A%2522%253Ciframe%2520scrolling%253D%255C%2522no%255C%2522%2520allowfullscreen%2520src%253D%255C%2522%252F%252Fmedia.licdn.com%252Fembeds%252Fmedia.html%253Fsrc%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fembed%25252Fzs34MxEXTmo%25253Ffeature%25253Doembed%2526amp%253Burl%253Dhttps%25253A%25252F%25252Fwww.youtube.com%25252Fwatch%25253Fv%25253Dzs34MxEXTmo%252526feature%25253Dyoutu.be%2526amp%253Btype%253Dtext%25252Fhtml%2526amp%253Bschema%253Dyoutube%255C%2522%2520width%253D%255C%2522480%255C%2522%2520frameborder%253D%255C%25220%255C%2522%2520class%253D%255C%2522embedly-embed%255C%2522%2520height%253D%255C%2522270%255C%2522%253E%253C%252Fiframe%253E%2522%252C%2522width%2522%253A480%252C%2522height%2522%253A270%257D%257D%257D&signature=AQGLpYWXM5trMpF0f4NyvZxr60f_