Connect with us

AI

Parable About ‘The Upstream’ Provides Key Lessons For AI Autonomous Cars 

By Lance Eliot, the AI Trends Insider   There is a famous allegory called the Upstream Parable that provides numerous valuable lessons and can be gainfully applied to the advent of AI autonomous self-driving cars.  The Upstream Parable sometimes referred to as the Rivers Story, has been attributed to various originating sources, including that some suggest […]

Published

on

Balancing the upstream with the downstream might be the best approach dealing with problems introduced by the advent of self-driving cars on the road.  

By Lance Eliot, the AI Trends Insider  

There is a famous allegory called the Upstream Parable that provides numerous valuable lessons and can be gainfully applied to the advent of AI autonomous self-driving cars. 

The Upstream Parable sometimes referred to as the Rivers Story, has been attributed to various originating sources, including that some suggest it was initially brought up in the 1930s by Saul Alinksy, political activist,  and then later by Irving Zola, medical sociologist, though it was perhaps given its greatest impetus via a paper by John McKinlay in 1975 that applied the parable to the domain of healthcare. 

I’ll start with a slimmed-down version of the story. 

You are walking along the bank of a rushing river when you spy a person in the water that seems to be drowning. Heroically, you leap into the water and save the person. A few minutes later, another person floats by that seems to be drowning. Once again, you jump into the river and save the person.   

This keeps happening, again and again. 

In each case, you dive in, and though you manage to save the person each such time, doing so denies you the chance to go upstream and ascertain why all these people are getting into the water to begin with, for which you might be able to bring the matter to an overall halt and prevent anyone else from further getting into the dangerous waters.   

And that’s the end of the story. 

You might be thinking, what gives with this?   

Why is it such a catchy parable? 

By most interpretations, the story offers a metaphor about how we oftentimes are so busy trying to fix things that we don’t pay attention to how they were originating. Our efforts and focus go toward that which we immediately see. And, especially when something is demanding incessantly our rapt attention right away. If you can take a breather and mull things over in such a situation, you might ultimately be able to solve the matter entirely by going upstream, make a fix there, rather than being battered over and over downstream.

In fact, it could be that one fix at the upstream would prevent all the rest of the downstream efforts, meaning that economically it is potentially a lot more sound to deal with the upstream rather than the frenetic and costly downstream activities. 

This can be applied to healthcare in a myriad of ways. For example, suppose that a populace has improper hygiene habits and lives in a manner that encourages disease to take hold. Upon arriving at such a locale, your first thought might be to build a hospital to care for the sick. After a while, the hospital may fill up, so you need to build another hospital. On and on, this merry-go-round goes, devoting more and more resources to building hospitals to aid the ill.   

It would be easy to fall into the mental trap of putting all your attention toward those hospitals. 

You might chew-up your energy on dealing with: 

  • Are the hospitals running efficiently? 
  • Do hospitals have sufficient medical equipment? 
  • Can you keep enough nurses and doctors on-staff to handle the workloads? 
  • Etc. 

Recalling the lesson of the Upstream Parable, maybe there ought to be attention given to how the populace is living and try to find ways to cut down on the breaking out of disease. That’s upstream and it is the point at which the production of ill people is taking place. Imagine, if you did change the upstream to clean things up and prevent or at least reduce by a large measure the rampant disease, you’d no longer need such a large volume of hospitals, and nor all that equipment, and nor have the issues of staffing the medical teams in a large-scale way.   

Notice too that everyone involved in the matter is doing what they believe best to do. 

In other words, those building all those hospitals perceive a need to heal the sick, and so they are sincerely and genuinely “doing the right thing.” Unfortunately, they are consumed mightily by that task, akin to pulling drowning people out of the rushing river, and thus they fail to consider what’s upstream and potentially better ways to “cure” the people of their ills. 

Okay, that’s the overarching gist of the upstream and downstream related fable. 

There are numerous variants of how the story is told.   

Some like to say that the persons falling into the water are children and that you are therefore saving essentially helpless children (and, as though to go even further, sometimes the indication is that they are babies). 

I guess that might make the parable more engaging, but it doesn’t especially change the overall tenor of the lessons involved. 

Here’s one reason that some like to use children or babies in place of referring to adults.   

A bizarrely distorted reaction by some is that if it is adults that are falling into the water, why aren’t they astute enough to stop doing so, and why should it be that anyone else should be worried about saving adults that presumably should know better (thus, substituting children or babies makes that less arguable, but I must say that the somewhat cynical and bitter portrayal of adults is a bit alarming since it could be that something beyond their power is tossing them into the drink, and anyway it fights against the spirit of the parable overall). 

Another variation of the story has a second individual that comes to aid in saving the drowning subjects. 

At the end of the story, this second individual, after having helped to pull person after person out of the river, suddenly stops doing so and walks upstream. 

The first individual, still steeped in pulling people out of the water, yells frantically to the second individual, imploring with grave concern, where are they going? 

I’m going upstream to find out what’s going on and aim to stop whoever is tossing people into the river, says the second individual. 

End of story.   

That’s a nifty variant. 

Why? 

Well, in the first version, the person saving the lives has no chance to do anything but continue to save lives (we can reasonably conclude that if the saving were to be curtailed, person after person would drown).   

In the second version, we hope or assume that the first individual can sufficiently continue to save lives, while the second person scoots upstream to try and do something about the predicament. 

Of course, life is never that clear cut. 

It could be that the second person leaving will lamentably present a serious and life-denying result at the downstream saving-lives position. 

In which case, we need to ponder as to whether it is better to keep saving lives in the immediate, rather than trying to solve the problem overall, or that you must make a death sentence decision to essentially abandon some to their deaths to deal with the problem by sorting out its root. 

On a related topic, nearly all seasoned software developers and AI builders tend to know that whenever you have a budding system that is exhibiting problems, you seek to find the so-called root cause. 

If you spend all your time trying to fix errors being generated by the root cause, you’ll perpetually be in a bind of just fixing those errors and never stop the flow. 

Anyway, the variant to the parable is quite handy since it brings up a devilish dilemma. 

While in the midst of dealing with a crisis, can you spare time and effort toward the root cause, or would that meanwhile generate such adverse consequences that you are risking greater injury by not coping with the immediate and direct issues at-hand? 

Keep in mind too that just because the second person opts to walk upstream, we have no way of knowing whether the upstream exploration will even be successful. 

It could be that the upstream problem is so distant that the second individual never gets there, and in which case, if meanwhile, people were drowning, it was quite a hefty price to pay for having not solved the root problem.   

Or, maybe the second individual finds the root, but they are unable to fix it quickly (maybe it’s a troll that is too large to battle, and instead the second individual has to try and prevent people from wandering into its trap, but this only cuts down on say one-third of the pace of people getting tossed into the river). 

This means that for some time, those drowning are going to keep drowning.   

Here’s an even sadder possibility. 

The second individual reaches the upstream root and tries to fix the problem, yet somehow, regrettably, makes it worse (maybe it was a bridge that people were falling off, and while attempting to fix the bridge, the second individual messed-up and the bridge is even more precarious than it was before!).  

It could be that up until then, the first individual was able to keep up with saving those drowning, and now, ironically, after the second individual tried to fix the problem, and in the meantime wasn’t around to help save the drowning victims, there are a slew more people falling into the water, completely overwhelming the first individual. 

Yikes! 

As you can see, I like this latter version that includes the second individual, allowing us to extend the lessons that can be readily gleaned from the parable. 

Some though prefer using the simpler version. 

It all depends upon the point that you are trying to drive home by using the tale. 

For those of you that are smarmy, I’m sure that you’ve already come up with other variations.   

Why not make a net that is stretched across the river and catches all those people? 

There, problem solved, you proudly proclaim.   

Well, which problem? 

The problem of the people drowning at the downstream position, or the problem of the people being tossed into the river and possibly leading to being drowned (hopefully, they don’t drown before they reach your net). 

In any case, yes, it might be sensible to come up with a more effective or efficient way to save the drowning persons.   

That doesn’t necessarily negate the premise that it is the root that deserves attention, but I appreciate that you’ve tried to find a means to reduce the effort at the downstream, which maybe frees up those that are aiming to go upstream to find and fix the root cause. 

Bravo. 

One other last facet to mention, and it somewhat dovetails into the notion of creating and putting in place the net, sometimes there is such a massive setup of infrastructure at the downstream that it becomes unwieldy and takes on a life of its own to deal with.   

Furthermore, and the twist upon a twist, suppose that the net gets nearly all, but a few happen to go underwater and aren’t saved by the net.   

Imagine someone standing downstream of the (already) downstream net. 

They might end up in the same parable, and upon coming up to find you and your net, believe they have found the root cause.  

It could be that the root cause is further upstream and that there are lots of other intervening downstream solutions, all of which are (hopefully) mitigating the upstream, yet it might be difficult to figure out what’s the root versus what’s not the root. 

There could be a nearly infinite series of downstream solutions, all well-meaning, each of which makes the whole affair incredibly complex and confounding, while there might be an elegant end to the monstrosity by somehow getting to the real root.   

Well, that was quite an instructive look at the fable. 

You might be wondering, can the fable be used in other contexts, such as something AI-related (that’s why I’m here). 

Yes, indeed, here’s an interesting question to ponder: “Will the advent of AI-based true self-driving cars potentially find itself getting mired in downstream matters akin to the Upstream Parable?” 

Let’s unpack the matter and see.   

For my framework about AI autonomous cars, see the link here: https://aitrends.com/ai-insider/framework-ai-self-driving-driverless-cars-big-picture/ 

Why this is a moonshot effort, see my explanation here: https://aitrends.com/ai-insider/self-driving-car-mother-ai-projects-moonshot/ 

For more about the levels as a type of Richter scale, see my discussion here: https://aitrends.com/ai-insider/richter-scale-levels-self-driving-cars/ 

For the argument about bifurcating the levels, see my explanation here: https://aitrends.com/ai-insider/reframing-ai-levels-for-self-driving-cars-bifurcation-of-autonomy/ 

  

The Levels Of Self-Driving Cars 

  

It is important to clarify what I mean when referring to AI-based true self-driving cars. 

  

True self-driving cars are ones where the AI drives the car entirely on its own and there isn’t any human assistance during the driving task. 

  

These driverless vehicles are considered a Level 4 and Level 5, while a car that requires a human driver to co-share the driving effort is usually considered at a Level 2 or Level 3. The cars that co-share the driving task are described as being semi-autonomous, and typically contain a variety of automated add-on’s that are referred to as ADAS (Advanced Driver-Assistance Systems). 

  

There is not yet a true self-driving car at Level 5, which we don’t yet even know if this will be possible to achieve, and nor how long it will take to get there. 

  

Meanwhile, the Level 4 efforts are gradually trying to get some traction by undergoing very narrow and selective public roadway trials, though there is controversy over whether this testing should be allowed per se (we are all life-or-death guinea pigs in an experiment taking place on our highways and byways, some point out). 

  

Since semi-autonomous cars require a human driver, the adoption of those types of cars won’t be markedly different than driving conventional vehicles, so there’s not much new per se to cover about them on this topic (though, as you’ll see in a moment, the points next made are generally applicable). 

  

For semi-autonomous cars, the public must be forewarned about a disturbing aspect that’s been arising lately, namely that despite those human drivers that keep posting videos of themselves falling asleep at the wheel of a Level 2 or Level 3 car, we all need to avoid being misled into believing that the driver can take away their attention from the driving task while driving a semi-autonomous car. 

  

You are the responsible party for the driving actions of the vehicle, regardless of how much automation might be tossed into a Level 2 or Level 3. 

  

Self-Driving Cars And The Parable 

  

For Level 4 and Level 5 true self-driving vehicles, there won’t be a human driver involved in the driving task. 

  

All occupants will be passengers. 

  

The AI is doing the driving. 

  

Sounds pretty good. 

  

No need for any arcane fables or tall tales. 

  

But, wait, give the Upstream Parable a chance. 

  

Some today are arguing that more regulation is needed at the federal level to guide how self-driving cars will be designed, built, and fielded. 

  

Those proponents tend to say that having the states or local authorities in cities and counties having to come up with guidelines for the use of self-driving cars is counterproductive. 

  

You might be surprised to know that many of the automakers and self-driving tech firms seem to generally agree with the notion that the guidelines ought to be at the federal level. 

  

Why? 

  

One reason would be the presumed simplicity of having an across-the-board set of rules, rather than having to adjust or craft the AI system and driverless car to accommodate a potential morass of thousands upon thousands of varying rules across the entire country. 

  

On the other hand, a cogent argument is made that having a singular federal level approach might not allow for sufficient flexibility and tailoring that befits the needs of local municipalities. 

  

Let’s suppose that the local approach prevails (I’m not making such a proclamation, it’s just a what-if). 

  

If self-driving cars have trouble coping at the local levels, we might become focused on the downstream matters. 

  

Meanwhile, one might contend that it was the upstream that needed to provide an overarching approach that was sufficient to abate the downstream issues. 

  

Back to the parable we go. 

  

Suppose a fleet of self-driving cars is owned by a particular automaker. 

  

The self-driving cars communicate with a cloud-based system, via OTA (Over-The-Air) electronic capabilities, and pull down patches and updates to the AI system that’s on-board, and also the on-board system uploads collected sensory data and other info from the self-driving car. 

  

Pretend that something goes awry in the self-driving cars of that fleet. 

  

Do you try to quickly deal with each individual self-driving car, which might be on the roadway and endangering passengers, pedestrians, or other human-driven cars, or do you try to ferret out the root cause and then see if you can get that patch shoved out to the fleet in-time? 

  

Some assert that this very kind of issue is why there ought to be a kill button or kill switch inside all self-driving cars, allowing presumably for a human passenger to make a decision right there in the driverless car to stop it from processing. 

  

In any case, you could liken this to the upstream versus downstream fable. 

  

Pleasingly, once again, lessons are revealed due to a handy underlying schema or template. 

  

For why remote piloting or operating of self-driving cars is generally eschewed, see my explanation here: https://aitrends.com/ai-insider/remote-piloting-is-a-self-driving-car-crutch/ 

To be wary of fake news about self-driving cars, see my tips here: https://aitrends.com/ai-insider/ai-fake-news-about-self-driving-cars/ 

The ethical implications of AI driving systems are significant, see my indication here: https://aitrends.com/selfdrivingcars/ethically-ambiguous-self-driving-cars/ 

Be aware of the pitfalls of normalization of deviance when it comes to self-driving cars, here’s my call to arms: https://aitrends.com/ai-insider/normalization-of-deviance-endangers-ai-self-driving-cars/ 

Conclusion 

  

Generally, the Upstream Parable is pretty handy for lots of circumstances. 

  

Part of the reason it is so memorable is due to the aspect that it captures innately what we see every day, and helps to bring to light the otherwise hidden or unrealized elements of systems around us that we are immersed in. 

  

While standing at the DMV and waiting endlessly to get your driver’s license renewed, you have to let your mind wander to keep your sanity and wonder whether you’ve found yourself floating in the downstream waters. 

  

Drowning in paperwork! 

  

If the DMV had its act together, there’d be a solution at the root that would make your desire to renew your driver’s license a bit less arduous and frustrating. 

  

For sanity sake, go ahead and use the fable to your heart’s content and keep finding ways to balance the downstream with the upstream, aiming to prevent problems before they arise and make the world a better place. 

  

That’s a good lesson no matter how you cut it.  

 

Copyright 2020 Dr. Lance Eliot  

This content is originally posted on AI Trends. 

 

[Ed. Note: For reader’s interested in Dr. Eliot’s ongoing business analyses about the advent of self-driving cars, see his online Forbes column: https://forbes.com/sites/lanceeliot/] 

http://ai-selfdriving-cars.libsyn.com/website 

 

 

Source: https://www.aitrends.com/ai-insider/parable-about-the-upstream-provides-key-lessons-for-ai-autonomous-cars/

AI

Things to Know about Free Form Templates

A single file that includes numerous supporting files is commonly known as a form template. Some files will define or show the controls to appear on the free form templates or design. The collections of these supporting files or templates are also called form files. While designing free form templates, users should be able to […]

The post Things to Know about Free Form Templates appeared first on 1redDrop.

Published

on

A single file that includes numerous supporting files is commonly known as a form template. Some files will define or show the controls to appear on the free form templates or design. The collections of these supporting files or templates are also called form files. While designing free form templates, users should be able to view and also work with the form files. 

It will create a new free form template by copying and storing those files within a folder. A form template (.XSN) file designing or creation of a single file will include various supporting files. Users may fill out the online form by accessing the .XML form file, which is a form template.

Designing Free Form Templates

There are numerous processes that define free form template design, and are as follows:

  • Designing the form’s appearance – the instructional text, labels, and controls
  • Controls will assist with user interaction behavior on the form template. You can design a specific section to appear or disappear when the user chooses a particular option
  • Whether the form template may include some additional views. For a permit application form design, for example, you have to provide different views for each person. One view especially for the electrical contractor, next for the receiving agent, and finally, the investigator. He or she will deny or approve the permit application
  • Next, you need to know how & where to store the form data. Designing free from templates will allow users to submit their data within the database either online or direct access. If not, they can also store the same in any specific shared folder
  • It is essential to design the other elements, colors, and fonts within the form template
  • Users must be able to personalize the form. Allowing users to include various rows within the optional section, repeating section, or a repeating table
  • Users should receive a notification when they forget to input a mandatory field or make mistakes within the form
  • After completing the free form templates design, you can publish the same online using a .XSN file format

Club Signup Form

A simple registration form can help your Club Signup Form creation process go smoother. This signup form could be an ideal solution for a new club membership registration for any organization or club.

Application Form

Application form templates are much easier to use & set-up to streamline your application process. You can customize this online form and utilize the same for numerous applications. Make use of this application form as a job application form, volunteer applications, contest entries, or high school scholarship applications. It is an ideal solution for scholarship programs, nonprofit organizations, business owners, and many such users and use cases.

Scheduling Form

Scheduling form templates are handy and can be used for numerous appointment booking requirements. A scheduling form is also utilized for various appointment scheduling or online reservations and booking purposes. Regardless of your business requirement, it is easy to customize the form template.

Concept Testing Survey

While testing a new design or concept, it is essential to gather the responses quickly. Freeform templates for a concept testing survey make it much easier to gather product feedback and reach the target audience. It is essential to conduct market research while planning to release a new product. A mobile-friendly form will allow you to utilize the survey questions for collecting the product’s consumer input quickly.

Credit Card Order Form

It is not always a complex process to provide an online credit card payment form for the customers. This form template will allow you to access numerous services or products for collecting card payment information. You can utilize this yet-another endless and simple payment form.

Employment Application Form

The employment application form for recruitment will assist the HR team to gather the required information from candidates. During the interview or application process, you can easily remove any expensive follow-ups. Some of the fields are contact information, employment history, useful information, etc. as well as an outline of the job description, consent for background checks, military service record, anticipated start date, any special skills, and many more. It is optional to enable notifications for the form owners to receive an alert or email when a new employment application is submitted.

Source: https://1reddrop.com/2020/10/24/things-to-know-about-free-form-templates/?utm_source=rss&utm_medium=rss&utm_campaign=things-to-know-about-free-form-templates

Continue Reading

AI

Are Chatbots Vulnerable? Best Practices to Ensure Chatbots Security

Published

on

Rebecca James
credit IT Security Guru

A simple answer is a Yes! Chatbots are vulnerable. Some specific threats and vulnerabilities risk chatbots security and prove them a wrong choice for usage. With the advancement in technology, hackers can now easily target the hidden infrastructure of a chatbot.

The chatbot’s framework has an opportunity for the attackers ready to inject the malicious codes or commands that might unlock the secured data of the customers and your business. However, the extent of the attack’s complexity and success might depend on the messaging platform’s security.

Are you thinking about how chatbots are being exposed to attacks? Well! Hackers are now highly advanced. They attack the chatbots in two ways, i.e., either by social engineering attack or by technical attacks.

  • An evil bot can impersonate a legal user by using backup data of the possibly targeted victims by social engineering attack. All such data is collected from various sources like the dark web and social media platforms. Sometimes they use both sources to gain access to some other user’s data by a bot providing such services.
  • The second attack is technical. Here also attackers can turn themself into evil bots who exchange messages with the other bots. The purpose is to look for some vulnerabilities in the target’s profile that can be later exploited. It can eventually lead to the compromise of the entire framework that protects the data and can ultimately lead to data theft.

To ensure chatbots security, the bot creators must ensure that all the security processes are in place and are responsible for restoring the architecture. The data flow via the chatbot system should also be encrypted both in transit and rest.

To further aid you in chatbot security, this article discusses five best practices to ensure chatbots security. So, let’s read on.

The following mentioned below are some of the best practices to ensure the security of chatbots.

It’s always feared that data in transit can be spoofed or tampered with the sophistication of cybercriminals’ technology and smartness. It’s essential to implement end-to-end encryption to ensure that your entire conversation remains secured. It means that by encryption, you can prevent any third person other than the sender and the receiver from peeping into your messages.

Encryption importance can’t be neglected in the cyber world, and undoubtedly the chatbot designers are adapting this method to make sure that their chatbot security is right on the point. For more robust encryption, consider using business VPNs that encrypt your internet traffic and messages. With a VPN, you can also prevent the threats and vulnerabilities associated with chatbots.

1. 8 Proven Ways to Use Chatbots for Marketing (with Real Examples)

2. How to Use Texthero to Prepare a Text-based Dataset for Your NLP Project

3. 5 Top Tips For Human-Centred Chatbot Design

4. Chatbot Conference Online

Moreover, it’s a crucial feature of other chat services like WhatsApp and other giant tech developers. They are anxious to guarantee security via encryption even when there’s strict surveillance by the government. Such encryption is to fulfill the legal principles of the GDPR that says that companies should adopt measures to encrypt the users’ data.

User identity authentication is a process that verifies if the user is having secure and valid credentials like the username and password. The login credentials are exchanged for having a secure authentication token used during the complete user session. If you haven’t, then you should try out this method for boosting user security.

Authentication timeouts are another way to ensure your chatbots security. This method is more common in banks as the token can be used for the predetermined time.

Moreover, two-factor authentication is yet another method to prove user identity. Users are asked to verify identity either by a text message or email, depending on the way they’ve chosen. It also helps in the authorization process as it permits access to the right person and ensures that information isn’t mishandled or breached.

The self-destructive message features open another way for enhancing chatbot security. This option comes in handy when the user provides their personally identifiable information. Such information can pose a serious threat to user privacy and should be destroyed or deleted within a set period. This method is handier when you’re associated with backing or any other financial chatbots.

By using secure protocols, you can also ensure chatbots security. Every security system, by default, has the HTTPS protocol installed in it. If you aren’t an IT specialist, you can also identify it when you view the search bar’s URL. As long as your data is being transferred via HTTPS protocol and encrypted connections, TLS and SSL, your data is secured from vulnerabilities and different types of cyber-attacks.

Thus, make sure to use secure protocols for enhanced security. Remember that when Chatbots are new, the coding and system used to protect it is the same as the existing HIMs. They interconnect with their security systems and have more than one encryption layer to protect their users’ security.

Do you know what the most significant security vulnerability that’s challenging to combat is? Wondering? Well! It’s none other than human error. User behavior must be resolved using commercial applications because they might continue to believe that the systems are flawed.

No doubt that an unprecedented number of users label the significance of digital security, but still, humans are the most vulnerable in the system. Chatbot security continues to be a real big problem until the problem of user errors comes to an end. And this needs education on various forms of digital technology, including chatbots.

Here the customers aren’t the ones who are to be blamed. Like customers, employees can make a mistake, and they do make most of the time. To prevent this, the chatbot developers should form a defined strategy, including the IT experts, and train them on the system’s safe use. Doing so enhances the team’s skillset and allows them to engage with the chatbot system confidently.

However, clients can’t be educated like the employees. But at least you can provide them a detailed road map of securely interacting with the system. It might involve other professionals who can successfully engage customers and educate them on the right way to interact with the chatbots.

Several emerging technologies are keen to play a vital role in protecting the chatbots against threats and vulnerabilities in the upcoming time, among all the most potent method behavior analytics and Artificial Intelligence developments.

  • User Behavioral Analytics: It’s a process that uses applications to study the patterns of user behavior. It enables them to implement complex algorithms and statistical analysis to detect any abnormal behavior that possibly represents a security threat. Analytical tools are quite common and powerful; thus, this methodology can become a fundamental component of the chatbot system.
  • Developments in AI: Artificial technology is a two-end sword that offers benefits and threats simultaneously. But, as AI is predicted to fulfill its potential, it will provide an extra security level to the systems. It is mainly because of its ability to wipe a large amount of data for abnormalities that recognizes security breaches and threats.

The Bottom Line

Security concerns have always been there with new technologies and bring new threats and vulnerabilities with them. Although chatbots are an emerging technology, the security practices that stand behind them are present for a long time and are effective. Chatbots are the innovative development of the current era, and emerging technologies like AI will transform the way businesses might interact with the customers and ensure their security.

Source: https://chatbotslife.com/are-chatbots-vulnerable-best-practices-to-ensure-chatbots-security-d301b9f6ce17?source=rss—-a49517e4c30b—4

Continue Reading

AI

Best Technology Stacks For Mobile App Development

Published

on

What’s the Best Tech Stack for Mobile App Development? Read To Know

Which is the Best Tech Stack for Mobile Application Development? Kotlin, React Native, Ionic, Xamarin, Objective-C, Swift, JAVA… Which One?

Image Source: Google

Technology Stack for smartphones is like what blood is for the human body. Without a technology stack, it is hard even to imagine smartphones. Having a smartphone in uncountable hands is rising exponentially. For tech pundits, this is one unmissable aspect of our digital experience wherein tech stack is as critical as ROI.

The riveting experience for a successful mobile app predominantly depends on technology stacks.

The unbiased selection of mobile apps development language facilitates developers to build smooth, functional, efficient apps. They help businesses tone down the costs, focus on revenue-generation opportunities. Most importantly, it provides customers with jaw-dropping amazement, giving a reason to have it installed on the indispensable gadget in present times.

In today’s time, when there are over 5 million apps globally, and by all conscience, these are whopping no.s and going to push the smartphone industry further. But now you could see mobile app development every ‘nook and corner.’ But the fact is not who provides what but understanding the behavioural pattern of users.

So the pertinent question is, which is the ideal tech stack to use for mobile app development?

In native mobile app development, all toolkits, mobile apps development language, and the SDK are supported and provided by operating system vendors. Native app development thus allows developers to build apps compatible with specific OS environments; it is suitable for device-specific hardware and software. Hence it renders optimized performance using the latest technology. However, since Android & iOS imparts — — a unique platform for development, businesses have to develop multiple mobile apps for each platform.

1. Waz

2. Pokemon Go

3. Lyft

1.Java: The popularity of JAVA still makes it one of the official programming languages for android app development until the introduction of Kotlin. Java itself is at the core of the Android OS. Many of us even see the logo of Java when the device reboots. However, contradictions with Oracle (which owns the license to Java) made Google shift to open-source Java SDK for versions starting from Android 7.0 Nougat

2.Kotlin: According to Google I/O conference in 2019- Kotlin is the officially supported language for Android app development. It is entirely based on Java but has a few additions which make it simpler and easier to work.

1. 8 Proven Ways to Use Chatbots for Marketing (with Real Examples)

2. How to Use Texthero to Prepare a Text-based Dataset for Your NLP Project

3. 5 Top Tips For Human-Centred Chatbot Design

4. Chatbot Conference Online

It’s my gut feeling like other developers to say that Kotlin is simply better. It has a leaner, more straightforward and concise code than open-cell Java, and several other advantages about handling null-pointer exceptions and more productive coding.

HERE’S A Programming Illustration Defining the CONCISENESS OF KOTLIN CODE

public class Address {

private String street;

private int streetNumber;

private String postCode;

private String city;

private Country country;

public Address(String street, int streetNumber, String postCode, String city, Country country) {

this.street = street;

this.streetNumber = streetNumber;

this.postCode = postCode;

this.city = city;

this.country = country;

}

@Override

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

Address address = (Address) o;

if (streetNumber != address.streetNumber) return false;

if (!street.equals(address.street)) return false;

if (!postCode.equals(address.postCode)) return false;

if (!city.equals(address.city)) return false;

return country == address.country;

}

@Override

public int hashCode() {

int result = street.hashCode();

result = 31 * result + streetNumber;

result = 31 * result + postCode.hashCode();

result = 31 * result + city.hashCode();

result = 31 * result + (country != null ? country.hashCode() : 0);

return result;

}

@Override

public String toString() {

return “Address{“ +

“street=’” + street + ‘\’’ +

“, streetNumber=” + streetNumber +

“, postCode=’” + postCode + ‘\’’ +

“, city=’” + city + ‘\’’ +

“, country=” + country +

‘}’;

}

public String getStreet() {

return street;

}

public void setStreet(String street) {

this.street = street;

}

public int getStreetNumber() {

return streetNumber;

}

public void setStreetNumber(int streetNumber) {

this.streetNumber = streetNumber;

}

public String getPostCode() {

return postCode;

}

public void setPostCode(String postCode) {

this.postCode = postCode;

}

public String getCity() {

return city;

}

public void setCity(String city) {

this.city = city;

}

public Country getCountry() {

return country;

}

public void setCountry(Country country) {

this.country = country;

}

}

class Address(street:String, streetNumber:Int, postCode:String, city:String, country:Country) {

var street: String

var streetNumber:Int = 0

var postCode:String

var city: String

var country:Country

init{

this.street = street

this.streetNumber = streetNumber

this.postCode = postCode

this.city = city

this.country = country

}

public override fun equals(o:Any):Boolean {

if (this === o) return true

if (o == null || javaClass != o.javaClass) return false

Val address = o as Address

if (streetNumber != address.streetNumber) return false

if (street != address.street) return false

if (postCode != address.postCode) return false

if (city != address.city) return false

return country === address.country

}

public override fun hashCode():Int {

val result = street.hashCode()

result = 31 * result + streetNumber

result = 31 * result + postCode.hashCode()

result = 31 * result + city.hashCode()

result = 31 * result + (if (country != null) country.hashCode() else 0)

return result

}

public override fun toString():String {

return (“Address{“ +

“street=’” + street + ‘\’’.toString() +

“, streetNumber=” + streetNumber +

“, postCode=’” + postCode + ‘\’’.toString() +

“, city=’” + city + ‘\’’.toString() +

“, country=” + country +

‘}’.toString())

}

}

I’d say KOTLIN IS THE BEST FIND FOR ANDROID APP DEVELOPMENT.Google has dug deeper with some plans ahead since announcing it as an official language. Moreover, it signals Google’s first steps in moving away from the Java ecosystem, which is imminent, considering its recent adventures with Flutter and the upcoming Fuchsia OS.

Objective C is the same for iOS what Java is for Android. Objective-C, a superset of the C programming language( with objective -oriented capabilities and dynamic run time) initially used to build the core of iOS operating system across the Apple devices. However, Apple soon started using swift, which diminishes the importance of Objective -C in comparison to previous compilations.

Apple introduced Swift as an alternative to Objective-C in late 2015, and it has since been continued to be the primary language for iOS app development.Swift is more functional than Objective-C, less prone to errors, dynamic libraries help reduce the size and app without ever compromising performance.

Now, you would remember the comparison we’ve done with Java and kotlin. In iOS, objective-C is much older than swift with much more complicated syntax. Giving cringeworthy feel to beginners to get started with Objective-C.

Image Source: Google

THIS IS WHAT YOU DO WHEN INITIALIZING AN ARRAY IN OBJECTIVE-C:

NSMutableArray * array =[[NSMutableArray alloc] init];

NOW LOOK AT HOW THE SAME THING IS DONE IN SWIFT:

var array =[Int]()

SWIFT IS MUCH MORE ` WHAT WE’VE COVERED HERE.

In cross-platform app development, developers build a single mobile app that can be used on multiple OS platforms. It is made possible by creating an app with a shared common codebase, adapted to various platforms.

Image Source: Google

Popular Cross-platform apps:

  1. Instagram
  2. Skype
  3. LinkedIN

React Native is a mobile app development framework based on JavaScript. It is used and supported by one of the biggest social media platforms- Facebook. In cross-platform apps built using React Native, the application logic is coded in JavaScript, whereas its UI is entirely native. This blog about building a React Native app is worth reading if you want to know why its stakes are higher.

Xamarin is a Microsoft-supported cross-platform mobile app development tool that uses the C# programming language. Using Xamarin, developers can build mobile apps for multiple platforms, sharing over 90% of the same code.

TypeScript is a superset of JavaScript, and is a statically-typed programming language supported by Microsoft. TypeScript can be used along with the React Native framework to make full use of its error detection features when writing code for react components.

In Hybrid mobile app development, developers build web apps using HTML, CSS & JavaScript and then wrap the code in a native shell. It allows the app to be deployed as a regular app, with functionality at a level between a fully native app and a website rendered(web browser).

Image Source: Google
  1. Untappd
  2. Amazon App Store
  3. Evernote

Apache Cordova is an open-source hybrid mobile app development framework that uses JavaScript for logic operations and while HTML5 & CSS3 for rendering. PhoneGap is a commercialized, free, and open-source distribution of Apache Cordova owned by Adobe. The PhoneGap platform was developed to deliver non-proprietary, free, and open-source app development solutions powered by the web.

Ionic is a hybrid app development framework based on AngularJS. Similar to other hybrid platforms, it uses HTML, CSS & JavaScript to build mobile apps. Ionic is primarily focused on the front-end UI experience and integrates well with frameworks such as Angular, Vue, and ReactJS.

To summarize, there are 3 types of mobile apps- Native mobile apps, Cross-platform mobile apps, and Hybrid mobile apps; each offers unique technologies, frameworks, and tools of their own. I have enlisted here the best mobile app technology stacks you could use for mobile app development.

The technologies, tools, and frameworks mentioned here are used in some of the most successful apps. With support from an expert, a well-established mobile app development company, that may give much-needed impetus in the dynamic mobile app development world.

Source: https://chatbotslife.com/best-technology-stacks-for-mobile-app-development-6fed70b62778?source=rss—-a49517e4c30b—4

Continue Reading
AI11 hours ago

Things to Know about Free Form Templates

AI23 hours ago

Are Chatbots Vulnerable? Best Practices to Ensure Chatbots Security

AI23 hours ago

Best Technology Stacks For Mobile App Development

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

AI2 days ago

Arcanum makes Hungarian heritage accessible with Amazon Rekognition

Trending