Best words to include on your resume

Hiring managers usually spend one or two minutes on a resume. So it is always an important to include words and phrases that explain what you have accomplished at your jobs.
You should use every available chance to show your resume as the best among others.
Specify numbers or percentages to demonstrate how well you added value to the job and also to make it easier for the readers to evaluate your accomplishments.
Recruiting managers would like to see the action verbs which can explain the things that you have done in the past for the employers. These action words should also indicate what you are going to do for the future employer. Here are the best words to include on your resume: Achieved
Under budget

Click Here to Download Word Search

Are you exhausted out of patience in creating Good Resume? Put through your details at My Resume builder to get impressive resume. Download Now


This is how you can start a new business in new world.

Throughout human history, it has never been easier to start your own businessand make the leap to the world of entrepreneurship.

Due to the incredible advancements in technology and the advent of internet, the playbook of business has been rewritten.

Long gone is the era when you had to reserve a huge amount of capital to launch your concept, go out and lease some expensive office space, develop a costly physical product, hire expensive sales representatives and finally test your idea while you might have forked out a bank loan in the process (perhaps using your house as collateral).

In the brave new era we are living, you can test and validate business ideas and launch business concepts in a much more efficient, effective and rapid way, while spending only small amounts of money.

In this article, I will lay out the framework to use in order to start your business in this new era.


The first thing to acknowledge is that it rarely makes sense for a newbie entrepreneur to try launching something different than an online business.

The online world provides much better opportunities, not only to get started but also to scale your business and revenuesto figures that traditional Brick and Mortar companies could only dream about. Take the path of the least resistance!

There are several reasons why it is so cheap and efficient to get started online, but also scale afterwards:

  • Open source and/or free and/or cheap tools that help you automate stuff and boost your productivity.
  • Cheap hosting solutions for the early steps and affordable cloud computing solutions for when you are scaling up.
  • Laser-targeted and granular advertising via online platforms instead of expensive traditional advertisements (billboards, television, radio etc.).
  • Vast online platforms (social media) to leverage for your lead generation and content distribution.
  • App stores for efficient global distribution of your mobile apps.

Building blocks

Let’s see what the building blocks of the business would be.

Founding Team

The first thing to consider is whether to start something on your own or with a partner (or more). This is a critical decision that is going to affect every aspect of your business in the future.

Both approaches are valid and there are advantages and disadvantages in each side.

Starting with one or more partners obviously creates a more powerful and solid team, especially if each one brings complementary skills to the game. It is also useful to have each founder support the other when times get tough, because times will get tough.

Be careful though. He or she should be someone you trust, you know you can work with and someone that brings equal value to the table. Perhaps more importantly, you need to assess whether or not you share the same vision about the business and your future, and whether or not you hold the same values.

For example, if you wish to build a massive business that will dominate the industry and bring in tons of cashflow, while he wants to create a more laid back, casual business that just provides a nice, stable living, then you are going to face major friction and frustration in the future.

On the other hand, starting on your own allows you to have full control of your destiny, for better or for worse. You retain 100% of the equity, which is a major thing as Felix Dennis would attest to.

Additionally, you will be certain that as you grow and develop yourself, your business is going to grow along, without having anything or anyone to hold it back.

If there are multiple founders, make sure to have one with a technical background. While it is doable to succeed without a technical founder, life is going to be much easier if you have one in the team.

Idea / Concept

The next step would be to think about an idea. On their own, ideas are not worth much. Execution is all that really matters.

Having said that, there are stupid ideas, so make sure to do some solid researchand also gather some feedback from people with experience in business and in the specific industry.

An idea should be based upon a real problem that the market faces, and your product and service should be a clear solution to that problem. Nothing more, nothing less.

After finalizing the idea, you would contemplate about the concept and how it would work. This would act as a bridge between the abstract idea and the concrete product.

Product / Service

The next step would be to manifest your solution with a solid product or service, depending on the case. You would spend a few months developing the product, not quarters or years. Think agile, not waterfall.

You would crank out a functional Minimum Viable Product (MVP) and ship it as soon as possible so that you are able to gather feedback from real users. Time is definitely not on your side.

Based on feedback you would iterate on the product. If things would not work out, maybe it would be time for a pivot.

When you would get some positive indicators from the use of the product, and most importantly, paid customers, then you would know you are onto something.


So far, the business costs should have been negligible. You would either have bankrolled the venture on your own (e.g. savings or day job) or you would have gotten some help from the Bank of Mom and Dad. Both valid approaches.

However, as the business starts growing, you would need to address the issue of funding its operations. The best to achieve this is via its own revenue generating capabilities.

By bootstrapping the business, not only you retain all the equity for yourself (and your partners), but you also retain the full control of it.

In some cases, like launching a B2B company with a long sales cycle or when trying to grow quickly to fend off the competition, it would make sense to raise money. Most of the time though, you would be better growing the company organically and perhaps raising some venture debt (not equity) in order to fund growth.


In the early days of a company, you want to blast through the Valley of Death.

You would focus on generating revenue from your operations, providing a decent product to the market and delivering excellent customer service. You would be super frugal and keep costs low. No fancy offices, no “startup swag”, no ridiculous Silicon Valley perks. You are not Google.

You would think in terms of milestones. Some good milestones to aim for are: $1,000/m, $10,000/m, $50,000/m, $83,000/m (~$1M/year).

When you get to a $1M annual run rate, you will be seeing the world differently!

At the same time, you would be monitoring both your cashflow and your actual cash levels. Never get close to running out of cash.

After hitting some solid revenue figures, you would start thinking about bringing in people to help you. Up to that, you and the rest of the founders (if any) would practically do everything yourselves.

Do not make the mistake of hiring too many people. Labor is by far the highest cost for a company (and it is practically a fixed one).

Make sure that you get a ratio of at least $200,000 annual revenue per employee (assuming fat, “online style” gross margins of 50+%), and never fall beyond $100,000. Each founder should be considered an “employee” in this exercise. That means that if there are 2 founders, it would make sense to bring in a new person only after generating at least $20,000 per month on a consistent basis.


One of the most dangerous stages of your company has been successfully surpassed.

After hitting $1M in annual sales, you would start thinking about scaling your business. That involves hiring more people, restructuring the internal team, solidifying the operational processes and pouring more capital to marketing and sales.

Scaling up a company is a whole different beast and should be an article (or book) on each own. Make the effort to pass by the early stage and there great resources online for scaling up.


The rules for starting a business have changed. No more cumbersome and rigid brick and mortar concepts. Agility and nimbleness are the new trends.

In this post, I laid out a framework on how to think about launching your own business, leading it through the early stage and getting it to the point where the real scale, and the real money, come.

Remember: The journey of a thousand miles begins with one step. Take it today!

10 Tips to Pick the Perfect Name for Your New Company

​1. Think about what you want the name to convey.

Your company’s name is an important aspect of your company’s identity. The name will appear on business cards, letterhead, the website, and promotional materials. It must help to identify and distinguish your company and its products or services. “Service-oriented businesses should make sure their name makes it easy for prospective customers to recognize and relate to their offerings, such as Friendly Dog Walkers, Bright Accounting, or Quickly Legal,” Kimbarovsky advises.

2. Brainstorm possible names.

“Once you understand what you need your company name to convey, you should set aside brainstorming time,” Kimbarovsky recommends. “Get your team in a room and brainstorm using words that describe your industry, your products, or the services you offer. Think about words that describe your competitors and words that describe the difference between your company and your competition. Also, consider words that describe the benefits of using your products or services.

He also suggests dipping into other languages. “While brainstorming, look up Greek and Latin translations of your words — you might find smart new ideas from that exercise,” Kimbarovsky says. “Look at foreign words, too — Swahili is often a great source!” Most entrepreneurs know the anecdote about the fellas who came up with the name Häagen-Dazs for what became a popular ice cream brand. It was a made-up name, chosen to convey a Scandinavian heritage of rich chocolates and rich cream.

Expect the name-choosing process to take some time. Even if you use a crowdsourcing site, you will need ideas to work with as part of your brand description and vision. This also helps you give feedback as you go along, and eliminates whole classes of ideas that feel wrong to you.
3. Keep the name short, simple, easy to write, and easy to remember.
“The companies you admire typically have names that are short, simple, easy to write, and easy to remember.” Kimbarovsky observes. Examples include Apple, Chanel, Virgin, and Southwest. “Obscure business names are often difficult to remember,” he says. “This is a real problem, because most small businesses rely, at least at startup, on word-of-mouth advertising. Even well into the life of your company, this is often the most successful form of marketing. If your customers can’t remember your name, can’t spell it, or can’t properly pronounce it for others, it makes it much more difficult for them to help promote your business.”
He also encourages companies to consider the acronym of their company name. “You might not use an acronym, but your customers might refer to your business by one,” says Kimbarovsky. “A name such as Apple Support Services would result in an unfavorable acronym,” he warns. Be sure that your company’s acronym is not offensive.
4. Avoid names that are too narrow or too literal.
You need to be concerned with how your business might evolve over time — and make sure that the company name can evolve with the business. For example, if you named your company iPhone Accessories but later expanded to sell accessories for other products, your original name will become too narrow and restrictive.
“The same advice applies even if your company sells a niche product,” Kimbarovsky says. “For example, if you sell antique lamps, you should consider whether in the future you might sell more than lamps. Naming your business Joan’s Antique Lamps may be too limiting when you later start selling antique clocks and furniture. Alibaba’s Cave might be a better descriptive for a wide range of products.”
5. Avoid decisions by committee, but be sure to test your name with others.
It’s tempting to involve friends, family, employees, and customers in the search for a name for your company. Sometimes, this works out really well, but there are risks. “People might be upset if you don’t pick a name they think is great,” Kimbarovsky warns. “You may also find yourself trying to find consensus, whwhich can lead to a very plain-Jane name. Instead of a broad group, pick a small group of people who understand you and your business. Once you’ve selected a few possible names, you should share them with trusted friends, family members, and customers to get some feedback about the name.”
6. Avoid plain words.
“Plain words make it very difficult to differentiate your company from your competitors,” Kimbarovsky says. “For example, there were many logo design businesses around the world when we came up with the name CrowdSpring. Many of them had Design or Logo Design in their name. But we knew that we would be expanding to many different industries, and we didn’t want to name the business Great Logo Design or Designers-R-Us–it would have been descriptive but not memorable, intriguing, or unique.”
Of course, he notes, there are exceptions. “General Electric is one of the most successful companies in the world and its name is composed of two plain words,” he says. “But General Electric was also one of the first companies in its product or service category; it was able to use a plain name that continues to be a household word. Since its inception, the company has spent billions of dollars on marketing and advertising.” Better safe than sorry here, unless you are sure you will be the next G.E.
7. Be careful with geographic names.
Similarly, Kimbarovsky warns against geographic names. “Some people use their city, state, or region as part of their company name,” he says. “If you plan only to work in your city, this might serve you well. But a geographic name could hinder you later on. One great example is Minnesota Manufacturing and Mining. Initially, the name worked because the business was focused narrowly in Minnesota. But once the company grew well beyond its industry and the state of Minnesota, it had find a new name. Hence the internationally recognized name 3M.”
8. Avoid obscure words.
“Company names that help tell stories are powerful and memorable (think Google, for example),” Kimbarovsky says. “But obscure words or references might be difficult to spell or pronounce. Be especially sensitive if you’re trying to reach a mass audience, such as on the internet. Obscure or invented names can work–Xerox is a great example–but this often requires a huge marketing budget and tremendous effort.” Remember to focus on your most important trait, value, or goal when creating your brand. Cruelty Free Cosmetics and ThinkThin Protein Bars are examples of this strategy.
9. Avoid trends.
Remember the year when every company was a normal word spelled strangely? Or when every company name ended with -ly? I do. Trends are fun while they’re hot but can quickly feel dated. “You’ll want your company’s name to evolve as trends evolve, so be careful to identify the trends and actively avoid following them,” Kimbarovsky says. “For example, in the late 1990s, it was trendy to use .com after your company name if your company was an internet business. After the internet bubble burst, the .com became synonymous with having no business model — and those companies who survived quickly dropped .com from their names.”
10. Don’t forget the domain.
“It’s important to make sure that your competitors are not using the same name in your industry,” Kimbarovsky warns. “It’s not uncommon to find similar, or even identical, names in different industries, but this results in confusion for your customers and vendors.” It can also lead to a lawsuit or nasty cease-and-desist letter.
“Look for a company name that is also available for registration as a domain,” says Kimbarovsky. “This is not always easy, because .com domains are very popular and you may struggle to find domains that match your company name. This is one reason why every naming project on CrowdSpring is accompanied by a domain name.”
He notes that URLs are becoming less important, because most people are searching online and clicking on links rather than copying domains from advertising. Still, you’ll want your URL to be short, easy to remember, and easy to spell. “And, whatever you do,” Kimbarovsky concludes, “don’t make the mistake of operating under one name but having a URL pointing to a completely different name. That can lead to a crisis of confidence among many customers, who worry about web security and avoiding spam.”

5 things important for leader and life

We have to be lifelong learners and continually gain power over:

  • Health: What do we need to do to sustain good health, especially as our physical condition changes? What can we be proactive about and what should we be reactive about? What are only fads and myths and what is fact? What kind of physical activity is best for us?
  • Money: How much will we need at different points in our life for what kind of lifestyle? How should investment strategies change? How much risk tolerance do I have and should I have? What kind of banking relationships should I create?
  • Relationships: Are there long-term, poor relationships that ought to be repaired (or abandoned)? Are you developing new and appropriate relationships for you career? Are you making the most of relationships to expand your horizons, gain work, and grow?
  • Happiness: Are you enlarging your sources of happiness? Can you synthesize happiness by making lemonade from lemons and a citrus industry from lemonade? Are you creating happiness for others and sharing yours with friends and family?
  • Meaning: Happiness and meaning are interrelated. Too many of us believe that we are engaged in a search for meaning. The truth is that we should be oriented toward creating meaning. The creation of meaning involves the perpetuation of our own happiness.

Lifestorming is about the independent and bold creation of meaning for ourselves, shunning the external meaning often foist upon us by society and the media. Our position is that just as no one should consume wealth without creating wealth, no one should consume happiness without creating happiness., and so on. There should be no one who is simply a taker and consumer.

Truly successful people are happy because they lead lives full of meaning. There is meaning in their lives because they are happy. They realize the reciprocity between happiness and meaning. We need meaning and happiness to lead great lives. This is the essence of lifestorming.

​How to fix ‘camera failed’ on Samsung Galaxy devices

The steps detailed below arent difficult or time-consuming, but you should make sure your device has a decent charge in its battery before you attempt them. If the battery level is too low, the camera often won’t work, so it’s worth ruling that out before you start trying anything else. In most cases, these solutions won’t involve losing any photos or data from your device, but we recommend backing up anything you don’t want to lose, especially if it gets to the point where you need to perform a factory reset.
How to fix ‘Camera Failed’ on Android: Samsung Galaxy S8/S8+

The Samsung Galaxy S8 is a close relative of it’s predecessor, the Galaxy S7, so first you should also try the steps for the S7 to see if they resolve the camera failure issue. If this doesn’t work, there are the following additional methods that you can try to fix this problem on the Galaxy S8:

   Sometimes outdated apps can cause this issue. Ensure all the apps on your device are updated. Go to Google Play store and open My apps & games  to check what apps are updated and which should be updated. After updating the apps, check if the camera issue is resolved.

    Boot the Galaxy S8 into safe mode. First turn off the device completely. Next, hold down the power button until the Samsung logo appears on screen. Then hold the volume button until the phone completes restarting and ‘safe mode’ appears on the left bottom corner of the screen. If the ‘Camera Failed’ error does not occur in safe mode, then some third party app is causing the issue. Uninstall apps one by one until you figure out the one responsible, starting with those installed right before the camera failure started.

How to fix ‘Camera Failed’ on Android: Samsung Galaxy S7 / S7 Edge

Try all of these steps in order, until one of them fixes your phone’s camera issue:

    Restart the phone.

    If restarting doesn’t work, clear the cache and data of the camera app by Settings > Applications > Application manager > Camera app. Then tap Force Stop, and go to the Storage menu, where you select Clear Data and Clear Cache.

    If clearing your camera app data and cache didn’t work, the wipe your cache partition. Turn the phone off, press the Power, Home, and Volume Up buttons together and hold until you see the Samsung logo pop up on the screen and the phone goes to its recovery mode. Use the Volume down button to scroll to Wipe Cache Partition and then press the Power button to begin. Once you’re done, restart your phone.

    If all of that doesn’t work, the problem likely has to do with Smart Stay. Some users have reported that there seems to be a software error when the rear camera starts up, but only when this function is on, likely because Smart Stay is already using the front camera to detect when you’re looking at the screen so it stays on. Go to your phone’s display settings menu and turn off Smart Stay to fix the issue temporarily. The long term fix for this, according to Samsung, is to make sure your phone’s software is up to date, since the software issue has already been fixed in one of the updates.

How to fix ‘Camera Failed’ on Android: Samsung Galaxy S6 / S6 Edge

Reports of ‘camera failed’ errors on the Samsung Galaxy S6 and S6 Edge are rare, but some users do experience them. In most cases, the problem appears to be a third-party app thats messed things up, so booting into safe mode is the way to test that: turn off your phone, press and hold the Power key and, when the Samsung logo appears, release it and hold the Volume Down button instead. Your phone should now restart in safe mode.

If the camera works in this mode, you dont have a hardware or firmware problem. Unfortunately if it doesnt work in safe mode, then you might. Dont go rushing to your retailer just yet, though: try the steps detailed above first. In many cases a factory reset can give your device the kick it needs to sort out the camera problem.

How to fix ‘Camera Failed’ on Android: Samsung Galaxy S5

If you have a Samsung Galaxy S5, we have good news and bad news about this one. The good news is that theres a very high chance the camera failed error has the same cause and solution(s) as it does for the S3 and S4. The bad news is that theres a small chance that your device may actually have a hardware fault; a limited number of S5 devices did suffer from faulty cameras.

The first thing to do is to follow the steps detailed above, but if none of them work, then you may need to talk to your retailer, carrier or Samsung itself, depending on who you bought the S5 from.

androidpit samsung galaxy s5 26

In some rare cases, the Galaxy S5 cameras were actually faulty. / © AndroidPIT

How to fix ‘Camera Failed’ on Android: Samsung Galaxy S3 or Samsung Galaxy S4

In many cases, the ‘camera failed’ error occurs because the Camera app has got itself into a bit of a mess. You can often solve that with a fairly simple bit of housekeeping. Go into Settings > Applications Manager and then swipe left for All Apps. Scroll down to the Camera app and tap on it. Now tap on Force Stop, then Clear Cache, then Clear Data. Dont worry: this wont delete any of your photographs, but it will delete your cameras settings so youll need to set those again. Reboot your phone and see if that worked.

If it didnt, step two is to clear the cache partition. To do that, turn off your phone and then press and hold Volume Up, Power and Home. Once the phone vibrates, let go of Power but keep the other two buttons pressed. Once you see the Android Recovery screen, navigate to Wipe Cache Partition using the volume down key and use Power to select it. This wont delete your data but it should reset the apps cache, which should solve the problem.

Nothing? Time for the nuclear option: a factory reset. Make sure you take backups of anything you need first, as this will return your phone to factory-fresh condition without any of your stuff on it.

Still no joy? Dump the app altogether and try the excellent Google Camera (KitKat or later required) or one of the many wonderful third-party camera apps out there. Read the reviews carefully though: some camera apps are better than others. There’s no point in installing a lame one.

Kotlin Data binding in Android.


Data Binding is very good coding pattern for minimizing application we will learn kotlin data binding in android. it gives you a facility to communicates between your view and model. It keeps code clean and sort.

Hello friends, in this tutorial I will explain Data binding android with kotlin. if you are new for kotlin then please refer post Get started with kotlinBasics of Kotlin Kotlin Operations

Table Of Content

Create New project 
Create Data Model 
Create Layout 
Use Data Model In Activity 
Part -2 : Manage with Fragment

Assume that you are aware of mobile development.

let’s started with the tutorial


  • Create New project

Please follow step for creating a project with kotlin here.

Add Data Binding kotlin dependency in project.gradle file


classpath ‘’

In application build.gradle file apply plugin


apply plugin: ‘kotlin-kapt’

Your build.gradle will be like


















apply plugin: ‘kotlin-android’


apply plugin: ‘kotlin-android-extensions’


apply plugin: ‘kotlin-kapt’


android {


    dataBinding {

        enabled = true




dependencies {


    kapt ‘’


Now next step is to

  • Create Data Model

I have created DataBindingKotlinModel.kt






package com.androidteachers.databindingkotlin


/*** Created by androidteachers on 09/21/2017. */


data class DataBindingKotlinModel(val fName: String, val lName: String)

Use this model in your activity layout file.

  • Create Layout



































<?xml version=“1.0” encoding=“utf-8”?>

<layout xmlns:android=;




            name=“model”         type=“com.androidteachers.databindingkotlin.DataBindingKotlinModel” />















            tools:text=“Name” />








            tools:text=“XX” />





  • Use Data Model In Activity

Now Use data model to bind some data with layout in your main activity






















package com.androidteachers.databindingkotlin


import android.databinding.DataBindingUtil

import android.os.Bundle


import com.androidteachers.databindingkotlin.databinding.ActivityMainBinding


class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {




        val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)


        val user = DataBindingKotlinModel(“Imtiyaz”, “Khalani”)

        binding.setVariable(BR.model, user)




Let’s test it. run it you will get output as given binding kotlin

Smart furniture could be next Internet of Things innvoation

Smart furniture could be next Internet of Things innvoation

In light of the recent unveiling of SK Telecome and Hyundia’s Smart Furniture, Jason Hope discusses the future of this technology. CNET and Hope believe this could be the next big Internet of Things development.

Technology has brought smart phones, smart watches and even smart refrigerators to the market, but the newest innovation in the Internet of Things may be smart furniture. On November 9th, CNET reported on this in an article entitled “Internet of Things Smart Furniture unveiled by SK Telecom, Hyundai.” Jason Hope believes this development shows yet another way that the Internet of Things will soon be common place in homes around the globe.

[Image 17.jpg]

According to CNET, SK Telecom, South Korea’s largest mobile carrier, and Hyundai Livart, a South Korean furniture maker, have teamed up to create a product they call Smart Furniture. The Smart Furniture includes items like cabinet doors with built-in touch screens or dressing tables with Internet connectivity. These devices will allow users to browse the Web, listen to their favorite news station, look for a recipe or even check the weather without the need for a phone or tablet in their hands. Smart Furniture will be available to developers in December 2014 and the general public in early 2015.

“With Smart Furniture, families can cook meals with the recipe right on the cabinet door, women can search for accessory ideas or makeup tutorials in their dressing rooms and people can check the weather in their closet before choosing their clothing for the day,” says Jason Hope. “The opportunities these devices afford are limitless, and they will make life more convenient for those who use them.”

The unveiling of smart furniture came after 10 months of collaboration between the two companies. The CNET article indicated that Hyundai plans to add 10 additional products to the first Smart Furniture lineup, and that the Smart Furniture products are expected to bring in 50 billion won to Hyundai by the end of 2017.

“This is the next evolution that started with the smart refrigerator,” said Hope. “I am excited to see where it is going to go!”

Smart home technologies you Should be aware of

Smart home technologies you Should Know In Advance

A lot of the futuristic technology we see in sci-fi movies is so amazing it’s hard to imagine that it may someday exist in our homes. In reality, it may exist already. Modern technology has advanced to the point where we can now control our TVs, lights and even our thermostats from our smartphone. That’s just the tip of the iceberg.

Here are seven future home technologies that everyone should know about.

1. Automated Robots
[Image 21.jpg]

We are still a long way from a full-featured, humanoid-like robot that can operate freely. That said, automated robots already exist and are being used in a lot of homes today. Devices like the iRobot and Neato are designed to autonomously travel around your home and clean the floors. That’s about as far as we’ve come for consumer-based robots anyway.

Don’t fret, however. A prototype robot unveiled by scientists in Germany does quite a bit more than clean the floors. The one-armed and three-fingered device can pick-up items, tidy up, operate various machines and even serve drinks to guests. An integrated sensor system prevents the robot from clamping down around a human’s arm. Additionally, it can be controlled via an embedded touchscreen, though it also answers to voice commands. It will even respond to preprogrammed gestures.

Of course, this is just one robot that is currently in production. It won’t be long before we see more automated helpers moving into our homes.

2. Smart Appliances
[Image 22.jpg]

As our devices such as our phones, watches and even jewelry become smarter and smarter, we’ll all begin to realize the benefits of owning smart appliances. Imagine a refrigerator that can have a nice glass of water waiting for you when you get to the kitchen — ordered directly from your mobile phone. Think of how awesome an internet-ready microwave would be — automatically tweeting out your quick meal to the world. Okay, so that last example was more of a joke but you get the point.

You can already purchase refrigerators, washers, dryers and other devices equipped with touchscreen displays and a bevy of sensors. A few of them are even internet ready, allowing you to install and use apps directly from the appliance.

What’s most exciting about the idea of smart appliances is that they will become increasingly more convenient, learning your preferences and making lives easier. Although, it does bring up a few questions about what big data companies might track, such as what time you eat every day and information like that.

3. Lighting Controls
[Image 23.jpg]

Turning on a lamp or ceiling light from a wall switch is old fashioned now. Provided you have the right setup in your home, lights can now be controlled from mobile devices, touchscreen panels or an automated system.

NEST, a smart thermostat, can even be programmed to turn on lights in your home and cool the air inside as soon as you return from vacation. Imagine being able to program your system so that it turns on lights at various times of the day or night.

Advanced lighting controls are becoming more commonplace, though many hope that the technology will soon be a standard feature in new homes.

4. Power Tracking or Energy Efficient Tech

Your car tells you when it needs an oil change, so why doesn’t your home tell you information like that? Think of an air conditioning unit that can send you alerts when the air filter needs to be changed.

Better yet, think of an energy system that can tell you when you’re going over your power budget for the month. Powerhouse Dynamics, a Maine-based company, has unveiled their Total Home Energy Management program, which does just that. It tracks a home’s energy consumption, associated costs and carbon footprint by the minute, in order to allow homeowners to better manage their usage. It can even analyze appliances and equipment being used in the home and tell owners when they need to upgupgrade to more energy-efficient products. Furthermore, it’s constantly being modified to add new functionality and become a more useful system.

It won’t be long before there are more than just a couple competitors in the market and power tracking systems become a modern home standard.

5. Smart Toilets

It seems a little silly taking a pot that you do your business in and making it “smarter,” but it’s already happening. There are toilets in Japan that will perform a urinalysis after people do their business, and then inform them whether or not they have diabetes — or are at risk for it. It seems that’s one of the main uses for smarter toilets, keeping us healthy, which makes a lot of sense when you think about it. You can learn a lot by analyzing stools and urine. Toilets may soon be able to tell women they are pregnant by analyzing urine, or that someone has colon cancer thanks to their stool.

Of course, other smart features like automated deodorizers and flushing systems, or heated seats are also pretty useful. Especially that last one, because no one likes to sit down on a freezing cold toilet seat.

It’s pushing the envelope a bit, but Kohler’s Numi toilet seat is one of the most advanced and “smart” toilets on the market. It includes an integrated foot warmer, heated seat, deodorizer, air dryer, bidet, motion-activated cover and seat, and of course an illuminated touchscreen panel with support for MP3 music playback. Yep, you can listen to music while you’re taking a … well, while you do your thing.

6. Centralized Entertainment and Streaming Devices

Cable TV is overpriced, outdated and pretty inconvenient these days. Sluggish and buggy set-top boxes are only a small portion of the problem. It’s no surprise then that a streaming revolution is happening right now. The future of entertainment lies in a centralized streaming system which provides homeowners — and guests — instant access to their digital entertainment. Thanks to internet-based subscription services like Netflix, Hulu and even YouTube, homeowners can stream content live to their TV relatively cheaply. Of course, it does rely on a decent internet connection, which is a different issue entirely.

That said, future homes will include a more centralized entertainment and streaming system designed to offer convenience and pleasure. For example, it’s about time we did away with cable outlets and moved to installing a closed ethernet network in new homes — it will happen soon, just wait.

Additionally, tablet and mobile smartphone based remotes will become much more common as new technology emerges.

7. Closed and Private Networks

Just take a moment to consider how many of your devices are designed to be used with an active internet connection. Along with all the things mentioned in this list, that range of products will expand to include home appliances, tools, monitoring systems and much more.

Future homes will include closed and private network access to connect all of those devices and allow communication between them. Sure, you may have to go purchase a router to get your devices up and running today but hopefully that won’t be necessary someday. Wireless devices will automatically be installed in newer homes, opening them up to a closed network.

This ties in directly with a personal home security system, which can be used with the private network. Facial recognition software would allow homeowners keyless entry into the home or network. A CCTV monitoring system would allow them to patch in remotely and check their home’s status while away on vacation. You could activate an emergency alert mode via a mobile device if something goes awry. The possibilities are endless.

Error handling in RxJava

Once you start writing RxJava code you realize that some things can be done in different ways and sometimes it’s hard to identify best practices right away. Error handling is one of these things.

So, what is the best way to handle errors in RxJava and what are the options?

Handling errors in onError consumer

Let’s say you have an observable that can produce an exception. How to handle that? First instinct is to handle errors directly in onError consumer.


    { users -> onGetUsersSuccess(users) },

    { e -> onGetUsersFail(e) } // Stop the progress, show error message, etc.            


It’s similar to what we used to do with AssyncTasks and looks pretty much like a try-catch block.

There is one big problem with this though. Say there is a programming error inside userProvider.getUsers() observable that leads to NullPointerException or something like this. It’ll be super convenient here to crash right away so we can detect and fix the problem on the spot. But we’ll see no crash, the error will be handled as an expected one: an error message will be shown, or in some other graceful way.

Even worse is that there wouldn’t be any crash in the tests. The tests will just fail with mysterious unexpected behavior. You’ll have to spend time on debugging instead of seeing the reason right away in a nice call stack.

Expected and unexpected exceptions

Just to be clear let me explain what do I meant here by expected and unexpected exceptions.

Expected exceptions are those that are expected to happen in a bug-free program. Examples here are various kinds of IO exceptions, like no network exception, etc. Your software is supposed to react on these exceptions gracefully, showing error messages, etc. Expected exceptions are like second valid return value, they are part of method’s signature.

Unexpected exceptions are mostly programming errors. They can and will happen during development, but they should never happen in the finished product. At least it’s a goal. But if they do happen, usually it’s a good idea just to crash the app right away. This helps to raise attention to the problem quickly and fix it as soon as possible.

In Java expected exceptions are mostly implemented using checked exceptions (subclassed directly from Exception class). The majority of unexpected ones are implemented with unchecked exceptions and derived from RuntimeException.

Crashing on RuntimeExceptions

So, if we want to crash why don’t just check if the exception is a RuntimeException and rethrow it inside onError consumer? And if it’s not just handle it like we did it in the previous example?

    { users -> onGetUsersSuccess(users) },

    { e ->

      if (e is RuntimeException) {

        throw e

      } else {





This one may look nice, but it has a couple of flaws:

In RxJava 2 this will crash in the live app but not in the tests. Which can be extremely confusing. In RxJava 1 though it will crash both in the tests and in the application.

There are more unchecked exceptions besides RuntimeException that we want to crash on. This includes Error, etc. It’s hard to track all exceptions of this kind.

But the main flaw is this:

During application development your Rx chains will become more and more complex. Also your observables will be reused in different places, in the contexts you never expected them to be used in.

Imagine you’ve decided to use userProvider.getUsers() observable in this chain:

Observable.concat(userProvider.getUsers(), userProvider.getUsers())


  .subscribe { println(it) }

What will happen if both userProvider.getUsers() observables emit an error?

Now, you may think that both errors will be mapped to an empty list and so two empty lists will be emitted. You may be surprised to see that actually only one list is emitted. This is because error occurred in the first userProvider.getUsers() will terminate the whole chain upstream and second parameter of concat will never be executed.

You see, errors in RxJava are pretty destructive. They are designed as fatal signals that stop the whole chain upstream. They aren’t supposed to be part of interface of your observable. They perform as unexpected errors.

Observables designed to emit errors as a valid output have limited scope of possible use. It’s not obvious how complex chains will work in case of error, so it’s very easy to misuse this kind of observables. And this will result in bugs. Very nasty kind of bugs, those that are reproducible only occasionally (on exceptional conditions, like lack of network) and don’t leave stack traces.

Result class

So, how to design observables that return expected errors? Just make them return some kind of Result class, which will contain either result of the operation or an exception. Something like this:

data class Result<out T>(

  val data: T?,

  val error: Throwable?


Wrap all expected exceptions into this and let all unexpected ones fall through and crash the app. Avoid using onError consumers, let RxJava do the crashing for you.

Now, while this approach doesn’t looks particularly elegant or intuitive and produces quite a bit of boilerplate, I’ve found that it causes the least amount of problems. Also, it looks like this is an “official” way to do error handling in RxJava. I saw it recommended by RxJava maintainers in multiple discussions across Internet.

Some useful code snippets

To make your Retrofit observables return Result you can use this handy extension function:

fun <T> Observable<T>.retrofitResponseToResult(): Observable<Result<T>> {

  return { it.asResult() }

    .onErrorReturn {

      if (it is HttpException || it is IOException) {

        return@onErrorReturn it.asErrorResult<T>()

      } else {

        throw it




fun <T> T.asResult(): Result<T> {

  return Result(data = this, error = null)


fun <T> Throwable.asErrorResult(): Result<T> {

  return Result(data = null, error = this)


Then your userProvider.getUsers() observable can look like this.

class UserProvider {

  fun getUsers(): Observable<Result<List<String>>> {

    return myRetrofitApi.getUsers()



That’s it hope you like the article plz comment below and stay tuned for next article

Quick Intro Into Actions on Google

Google Home will finally be available in Germany on August, 8th and in France this week. I’m not aware of more announcements for other countries, but I hope and assume that availability will increase to many more countries as soon as possible.1) For me, though, getting my AIY kit was the day, I started getting interested in developing with Actions on Google.

Different types of Interfaces

Conversational interfaces is a very broad term. It covers all kind of chats whether voice is used or not up to pure voice interfaces like those used in Google Home.

Actions on Google supports text based interfaces – and depending on the capabilities of the devices – a limited set of visual feedback and touchable actions. I will cover those differences and how to detect which capabilities the device in question has, in later posts. On a mobile the text can be entered either by keyboard or by voice. With Google Home it obviously can only be entered by speaking to the device.

BTW: You can expect the assistant to appear in other devices as well. Be it IoT devices, cars or anything else where a voice interface can be useful. As you have seen in the first picture of this post, Google’s AIY kit itself uses Actions on Google (or can be made to use it). How to achieve this is also the topic of an upcoming post.

Two SDKs for The Google Assistant

When it comes to the Google Assistant, there are two very different offerings by Google:

1-The Assistant SDK and

2-Actions on Google

1-Assistant SDK

With the Assistant SDK you can enable devices to embed the Google Assistant. This means that it allows you to add the Google Assistant to a device made by you. It also allows you to change the way the Assistant is triggered on your device – for example you can use a button press instead of the “OK, Google” phrase.

The SDK is gRPC based, which is a protocol buffer based message exchange protocol. It has tons of bindings for a plethora of languages. As a sample (and for practical use as well) complete Python bindings for certain linux based architectures already exist.

If you are creating devices and want to integrate the Assistant into those, than the Assistant SDK is the SDK of your choice. The AIY kit, shown in the picture above, is running the Assistant SDK on a Raspberry Pi. I will get into this SDK in a follow-up post.

2-Actions on Google

With Actions on Google your can create apps for the Google Assistant. The remainder of this post is all about this option.

Two options to use Actions on Google

When developing apps for the Google Assistant, there too exist two options:

Use the Actions SDK directly

Use a service on top of the Actions SDK

Google gives you a recommendation as to when to use which option on its “Build an app in 30 minutes” guide.2)

Using the Actions SDK

The Actions SDK allows you to directly access the recognized user text and to deal with it in your backend. It is suited for either very simple projects with clear commands or if you are sufficiently proficient in natural language processing.

Using or other services on top of the Actions SDK

Most often using a service is the better option. It’s not that the Actions SDK itself is particularly complex. The problem lies more in how to detect what the user intends with his response and how to parse the text to get relevant data. This is where those services shine. You enter some sample responses by the user and the services then not only understands these sentences but many, many more that resemble those sentences but use different wording, a different word order or a combination of both. And they extract the data you need in an easily accessible format. Consider understanding dates – which is not even the most complex example. You have to understand “next week”, a specific date given, abbreviations, omissions and many more. That’s the real value of these services.

One such service is which was bought by Google last fall. As such it’s only natural that this service supports Actions on Google quite nicely. In addition to this you can use also for other platforms like Alexa, Cortana, Facebook Messenger and many more. I will cover thoroughly in future posts.

You are not limited to, though. One contender is which I haven’t had the opportunity to test, yet. The visual design of’s conversation flow has some appeal but whether it’s practical and overall as good as, I cannot tell. But hopefully I will be able to evaluate it while continuing with my Actions on Google posts.

Let’s put things into perspective

Even though conversational interfaces seem to be all the rage lately, they are not really new.

Actually they are quite old. Eliza was programmed by Joseph Weizenbaum in the sixties and created quite a stir back then. You can try it out on dozens on websites for yourself.

My first experience was the fictional interface shown in the film Wargames, 1983:3)

And of course there was Clippy in the late nineties, the worst assistant ever.

So if they are not new, why then are they all the rage? Well, luckily we have progressed from there on and nowadays we have all kind of chatbots integrated into messengers and other communication tools, we have website assistants that pop up if we ponder for a while on a particular page and we have true voice only interfaces like Amazon’s Alexa and Google Home.

And those are powered by a much better understanding of human language, of the intents of the user and how to find and combine important entities of the user’s spoken text.

The Google assistant works for voice only devices (like Google Home) or with some visual add ons on phones or other devices with a touchscreen.

Wrap up

This was a very quick rundown of the Actions on Google options. In coming posts I am going to show you the base concepts like actions, intents and fulfillment, how to make use of, what tools and libraries Google provides, how to connect to your home devices, what permissions are needed for within the Assistant and how to make use of the Assistant from within Android Things.

And in the meantime I’m going to talk about this stuff on upcoming devfests 

Stay tuned!