Monthly Archives: May 2017

What is Artificial Intelligence?

Welcome to the first blog of the series Tech Humor, in this series “Tech Humor” I am going to post blogs on my real life incidents where I relate technology with normal life. This first post is about how I explained about Artificial Intelligence to my brother. Here is how conversation happened.

What is Artificial Intelligence?

Brother : Hiren, go and get the clothes from hangers on terrace.

Me : (Went on terrace and got all the clothes) Here are clothes…

Brother : Hiren, some of them are still wet. Don’t you understand you are suppose to get only completely dried clothes.

Me : No, you did not specify that, you just said get all clothes.

Brother : It is implied, How you can be so dumb?

Me: I am a Software Engineer, I just work as per specifications only.

Brother: Oh yes?? Then why you get junk foods, street foods to home with out asking. (I am a foodie so sometime I buy foods on way back to home from office.)

Me : (After thinking for couple of seconds) That’s the Artificial Intelligence

Things To Learn Before Start Developing Chatbot

Chatbot, is a hot topic and many companies are developing bots for various businesses. Check my post here on Why Why Your Business Needs A Chat bot

chatbot

In this blog I am going to mention some key points you have to consider before start developing chatbot for any business.

Domain Knowledge

This is most important point to consider and learn before you start developing chatbot for any business. You have to get domain knowledge of the business or industry. Because each domain has it’s own set of process and methods. Customers of each domain are different. So you have to get complete domain knowledge of the business before implementing chatbot for it.

For example if you are creating chatbot for eCommerce portal. You have to learn about eCommerce process like how customer search for products. What type of queries they can have. What do they expect in support if they contact customer care. For this you have to get complete knowledge of eCommerce domain, so you can build smart intelligence in your chatbot program.

To get domain knowledge you must consult some functional expert who has good and experience of domain. A person who knows each and everything about domain will be a good learning source for you.

Possible Scenarios

When you are creating a chatbot it will have to deal with customer queries and they can have any type of query. So you have to look at all the perspective from the customer end. You have to learn all the possible scenarios that can have in domain. For example if you are building a chatbot for say customer care. You have to know what type of queries customers can have. What types of questions they ask and what are the possible outcome or answers for it.

This will help you in building smart intelligence in chatbot to give precise answer to customer queries. If you know possible outcome and possible solutions you can easily program it and help customer with chatbot. So learn all the possible scenario with functional experts. Ask them as many questions as possible to get all the scenarios.

Understand the Customers

This is another important aspect to consider for development of Chatbot. You have to know customers and the way they communicate with customer care. You have to know..

  • What type of questions do they ask?
  • What language they use in communication?
  • Do they make grammatical mistakes?
  • Do they use sarcasm in their communication?

This will help you in programming and let you know build intellgence to give proper answer to the queries. Otherwise customers can get angry and you will have very bad customer service.

Git + Hub = Github , Understand Github’s hub

hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier. So in a way it will add some additional functionality to your existing git installation.

GitHub

Installation

We will cover OSX installation here. On OSX hub can be installed using Homebrew. Open the terminal and type following command.

$ brew install hub

You can check installation with following command.

$ hub version
git version 1.7.6
hub version 2.2.3

How to use it?

To clone any Github repository with hub you don’t have to specify the entire URL of repo. You can use shorthand notation like this.

git clone username/reporname

If it’s your own project, just specify the repo name.

git clone reporname

After pulling down a repo, you can make a quick fork of the project with:

git fork

and start working within your own personal project immediately. You can now make your changes and push to your personal repo with

git push username reporname

If you are already using git-cli to interact with GitHub and enjoy it, I recommend you install and try out hub.

Technologies That Are Changing Healthcare

Each sector is changing with introduction to technology in it and healthcare is no longer an exception. Many technologies are changing healthcare industry. The future of healthcare is shaping up mainly through digital technologies, such as artificial intelligence, VR/AR etc. In this post I am going to mention some technologies that are changing healthcare.

Artificial Intelligence

With AI, strong algorithm are written for healthcare which helps in mining medical records, design treatment plans. There are software programs now available which can act as your virtual doctor using smart AI programmed in it. AI is also helping in faster drug research and manufacturing.

Virtual Reality

Virtual reality is changing the experience of both patients and physicians. In future you can see operations performed on screen. Medical students can see surgery methods on screen and can learn from it. It will be good learning experience for medical students.

Augmented Reality

It will be technology for real time learning for medical students. It will help medical students prepare better for real-life operations, as well as enables surgeons to enhance their capabilities. In case of patients, it will help them describe their symptoms more accurately.

Health monitors / wearables

Wearables are great devices to get to know more about ourselves and retake control over our own lives. Now individuals can take care of their own health through technologies. For example Fitbit Surge for fitness tracking through the Pebble Time and Sleep As Android for sleep tracking etc.

Robotics

One of the most exciting and fastest growing fields of healthcare is robotics. With the help of robotics, complex surgeries can be done with good accuracy. Disabled patients can walk with robotics tools.

With the help on technologies, healthcare sector is growing fast and we will see many advanced technologies in upcoming years. It will be beneficial for everyone including patients, doctors, drug manufacturers.

Real Intelligence is The Matter of Concern in IT

Artificial Intelligence

Off course as a programmer I am concerned with the rise of Artificial Intelligence. But I am more concerned about Real Intelligence in Information Technology.

Artificial Intelligence in IT

AI is making it’s way in world of programming and each and every business sector. Read some my articles on AI.

So as a programmer you have to be ready to program AI. But here the more pressing matter is lack of Real Intelligence in IT professionals. Today most IT professionals are not ready for real world work. They lack innovations, ideas and it’s not their fault. Overall it’s fault of education system, lack of proper guidance and lack of innovative atmosphere in IT.

I am working in IT industry since last 9 years. During this time I interviewed many candidates, both experienced and non experienced candidates. It’s always tough to find out right candidate for your need. Most of candidates does not have basic knowledge of fundamentals. They just do what they are told to do. Nothing more, nothing less. So what’s missing? According to me here are some things which need to be changed.

Education System

Today most of the colleges still run old computer science programs with old subjects. They do not prepare students for the real world. No proper guidance on latest trends and technologies. So all the aspiring IT professionals are not ready for real world when they come out of the college. Today an IT professional is unable to give answer of OOP fundamentals. That shows that there, we need to change our education system from being percentage centric to be industry centric.

Lack of Innovation

Today IT professionals are not innovative in work. They just do what they are told to do. In the IT industry innovation is the key factor for growth. If you are innovative in work, your IT career will grow much faster. You will get so many opportunities.

No Proper Guidance

Today when an IT professional is coming out of the college and coming to real world they don’t know what’s going on in real world. Because there is no proper guidance on it. When they come to real world, suddenly they realize they sill have to learn many things and they are unable to handle this pressure. And the results are worst. They start feeling depressed and many of them quit IT industry and choose some other career option.

Kotlin – The Official programming language for Android

Kotlin is now the official programming language for Android, announced by Google in Google I/O 2017.

Kotlin

What is Kotlin?

Designed by Saint Petersburg-based engineers at JetBrains. It was intended to improve on the shortcomings of Java. It is interoperable with Java. That means developers can use the Java Libraries they already use now. The code they write with it can also be converted to Java and vice versa.

It is designed to solve similar problem that Java does. Further, it adds a lot of nice-to-have features that Java itself doesn’t currently support. Much cleaner syntax, improved code readability, ideas from functional programming, and other improvements over Java.

Kotlin and Android

Officially released in February 2016 by JetBrains, it runs on the top of the Java Virtual Machine (JVM). It can also be compiled to Java source code and be used alongside Java to build apps. It has wonderful safety features in terms of nullability and immutability, which will make Android apps healthy and performant by default.

IDE Support

Android Studio is built upon IntelliJ IDEA, an IDE built by JetBrains—the same company that created the this language. The JetBrains team has been working for years to make sure it works great with IntelliJ IDEA. Starting with Android Studio 3.0, tooling support for it is bundled directly into Android Studio.

Will it replace Java?

No you can use both Kotlin and java in your Android project because both java and Kotlin are interoperable.

Resources for Learning

Visit JetBrain’s website for everything you need to get started.

You can use Android Studio, Eclipse, IntelliJ IDEA or a standalone compiler to build Kotlin apps for Android or your web browser. You can also refer to  on android developer website from here.

As a android app developer I am really excited about new programming language for Android and will soon try my hands on it.

Why Will You Need Progressive Web App (PWA)

If you are planning to launch product in terms mobile application. You must consider building a Progressive Web App for your product.

Progressive Web App

What is Progressive Web App (PWA)?

The idea behind PWA is to create a lighter version of mobile app for users. So they don’t have to worry about free space to install an app or Internet bandwidth to run them. PWA was first announced as a limited preview at the Google I/O developer conference in the US last year.

Basically PWA is lighter version of your mobile app with limited features or all the features. This can be accessed in browser in case user don’t have enough space on phone. It’s also possible that, user is facing difficulties in installing mobile app or does not have enough network for this. In these cases PWA can be a handy tool to do the things which they do normally in app. PWA is likely to see more adoption in future as Google has released the SDK (software development kit) to develop these apps for everyone.

What makes a PWA better than a regular webpage and as good as the native app is the bunch of tools built into it. One of them is a JavaScript file called Service Workers, which can make websites open faster and work even when the device is offline by pre-caching key elements of the website. The App Shell model allows the developer to replicate the interface of a native app on a PWA. App Manifest is another tool which allows user to create a shortcut of the webpage on their Android smartphone and even receive notifications like them.

Some Examples of PWA

Ola Cabs

The Bengaluru-based cab aggregator has released a Progressive Web App (PWA), also known as Instant Apps, for smartphone and desktop users. It can be accessed in any Web browser.

Twitter Lite

Twitter Lite, released in April, is another popular PWA for twitter users.

Google Lens – Artificial Intelligence to Smartphone Cameras

At Google’s I/O developer conference, CEO Sundar Pichai announced a new technology called Google Lens. Google Lens is a new technology designed for Android devices.  That allows a user to point their camera phone at any object. It will  gather contextual information about that object and convey it back to the user.

The Idea of Google Lens

The idea is to leverage Google’s computer vision and Artificial Intelligence technology in order to bring smartness directly to your phone’s camera. As the company explains, the smartphone camera won’t just see what you see. But will also understand what you see to help you take action.

What It can Do?

You could point your camera at something and Lens tells you what it is — like, it could identify the flower you’re preparing to shoot.

Connecting you to a home’s Wi-Fi network by snapping a photo of the sticker on the router. In that case, Google Lens could identify that it’s looking at a network’s name and password. Then offer you the option to tap a button and connect automatically.

Google Lens could pull up the name, rating and other business listing information in a card that appeared over the photo.

Pointing your camera at a concert-venue marquee, for example, lets you easily buy tickets or add events to your calendar.

Lens would be integrated into Google Assistant. Through a new button in the Assistant app, users will be able to launch Lens and insert a photo into the conversation with the Assistant. Where it can process the data the photo contains.

Lens is, in a way, a Google-y version of Snapchat’s and Instagram’s AR features

Laravel Interview Questions

In this blog post I am going to mention some Laravel Interview Questions that I usually ask to check if candidate really knows about Laravel or not. If you are a job seeker, it will help you in preparing for interview. If you are an employer it will help you in evaluating candidate.

Question 1 : Since when you have been working with Laravel?

For Employer : It’s very important to ask this question as it will help you in knowing exact experience of candidate.  It’s possible that candidate have worked in it past and recently is not working on it.

For Job Seeker : Give answer in exact number of months and years. Do not bluff about it as smart employer will catch you easily. For example if you say you have three years of experience then they will ask you about difference in versions.

Question 2 : Which Laravel version have you used recently?

For Employer : This will help you in knowing if candidate has worked on recent version or not. Many candidates do not check for updates. So if current version is 5.4 and candidate said to use 5.0 or older version that means he /she is not updating their skills. Not so good candidate in my opinion.

For Job Seeker : Keep in mind about latest version you have used and tell employer about it. Also keep in mind about latest version . If they ask that current version is 5.4 and why are you still using 4.2. You should give them genuine reasons. Don’t say I will learn new version if you hire me.

Question 3 : Why do you prefer Laravel?

For Employer : If candidate says, it’s easy to use, you should not prefer that candidate. Because frameworks are created to make development easy so it’s always easy to use. If candidate has really evaluated it, they should explain about the core features of Laravel like,

  • Simple MVC that can be extended easily
  • Clean and secure routing
  • Powerful Eloquent ORM for database
  • Migrations
  • Third party plugins etc.

For Job Seeker : Do not say it’s easy to use. By asking this question employers want to evaluate your learning skills. How deep you can go in subject. In stead of just saying, it’s easy to use, you should explain why it is easy to use and explain some of the core features of framework mentioned above.

Question 4 : Explain role of Composer?

For Employer : If candidate explains exact role of composer like, composer is a dependency management tool, used to create and update project. With composer you can update Laravel versions, install and update third party plugins. How to manage dependencies with composer.json file etc. Then he knows about it. If they just say it’s dependency management tool, you should not select candidate.

For Job Seeker : As I explained above, you should mention complete role of composer. Including composer commands and use of composer.json file. Give some examples of commands like composer update and require and explain them in brief.

Question 5 : What are artisan commands

For Employer : Artisan commands are used to create files and classes like controllers, models, migrations etc. If candidate explain like this and give some examples of commands like php artisan make:migration php artisan serve etc. It means they know which command to use and when.

For Job Seeker : Here you should explain about artisan commands with example and give brief information about it. Do not give each and every example of command.  Name few and give exact use of command.

Question 6: What are the migrations?

For Employer : As laravel is web application an for it database is important and for this migrations are used. If candidate says I don’t know about it or never used it, then you should avoid that candidate as knowledge of migrations is necessary. Particularly when you are working in team.

For Job Seeker : Explain from start. How to create migration. Use of up and down function in class. How to create and alter table schema with migration. How to run reset and rollback migration.

Question 7: Explain MVC in Laravel?

For Employer : MVC is design pattern used in Laravel so it’s important to ask this question. Ideal candidate should explain him from start to end.

For Job Seeker : Explain from start. How to specify routes, how to create views and return from controller and how you use model for database operations. Explain each component with example for good impact.

Question 8: Explain project directory structure?

For Employer : For every framework it’s good to know about files and folder structure. A good and curious should have explored completely and should be able to answer this question easily.

For Job Seeker : Explain content of directories like app, public, config, vendor etc. Explain role of each directory. This will make a good impact on employer that you are very curious and have good debugging skills.

Please note these questions are to evaluate if candidate really knows about Laravel or not. I will publish another blog for technical questions.

Nokia 3310 Will be Available and I Am Going To Buy It

Finally the wait is over. HMD Global has brought the legendary Nokia 3310 back to India and it’s now available for a price tag of Rs 3310. The feature phone will be on sale across all major stores starting Thursday, May 18th in Yellow, Grey, Blue and Red color options.

Nokia 3310 Features

There’s a 2.4-inch QVGA (240×320 pixels) color display and it runs on the Series 30+ operating system. It comes with a 2MP rear camera along with a LED flash and 16MB of inbuilt storage. It is compatible with a MicroSD card up to 32GB. It is powered by a 1200mAh battery which is rated to deliver up to 22 hours talk time and one-month standby time.

It also supports two micro SIM cards, Bluetooth v3.0, Micro USB for charging and there’s a 3.5mm headphone jack as well. Weighing at about 79.6 grams, And it has the Snake game, which is updated with color graphics. It also has built in MP 3 player and FM radio.

I have been waiting to buy this phone and yes I am going to buy it. Being an IT professional and mobile application developer my first choice should be a smartphone. When I told people about buying this phone, they looked at me like I am some kind of an idiot. I got so many questions like.

  • It does not have WhatsApp.
  • It does not have Mails.
  • It does not have Facebook.

So to answer all these questions, my daily routine is home to office and office to home. I always have my laptop available for mails and Facebook and I don’t use WhatsApp. So I use mobile phone only for incoming and out going calls and I have very powerful laptop, Macbook Pro for other things. So practically I don’t need smartphone and that’s the reason I am going to buy Nokia 3310