Adam is a cunning lad. He has been double-dating Elina and Carina. However he has identified himself with different names to each of them. Elina knows him as Adrian and Carina knows him as Boris. Is Adam cheating? Well, Adam begs to differ. He says life is short and he is a limited resource, only one person. Why not have fun with two girls at a time? Inside himself, he is always the same Adam. But he switches to two different personalities for the sake of Elina and Carina, by changing his external behaviour. Morally questionable, no doubt. But he is a fine specimen of the flyweight pattern. Continue reading “Design pattern: Flyweight”
Category: How ‘IT’ works
Introduction to object-oriented programming
A really common jargon that gets thrown around in the world of software is ‘OOP’. This does not refer to a mistake, as in ‘oops!’. On the contrary, OOP in software is mostly a right decision. OOP is an acronym for Object-Oriented Programming.
OOP is one of the ways to think about a software solution, design its architecture and use an appropriate programming language to write it. In this post, I will explain to you some concepts of object-oriented software. If you are a future software developer, this post will make it easy for you to understand. Even if you never intend to be a software developer, this post will make you look at software from a different perspective. Continue reading “Introduction to object-oriented programming”
Intro to Aadhar pay system
In the last two posts, we saw how to use BHIM and PayTM using a smart phone. But what if the paying customer does not have a smartphone. Has India’s rapidly advancing digital payments pioneer NPCI (National Payments Corporation of India) considered a way to include customers with no smartphones? Turns out it has. Of course, terms and conditions apply, but NPCI has made a way for non-smartphone customers to pay digitally. Enter Aadhar Pay. Continue reading “Intro to Aadhar pay system”
Understanding MIME
How does your browser know that if you have clicked on a link with a PDF file, that an in-built PDF viewer should be opened? How is your email software able to show images embedded within an email? How is it able to show attachments seperately from the body of the email? The answer is due to a standard called MIME or Multipurpose Internet Mail Extensions. Continue reading “Understanding MIME”
How chat applications work
Apart from browsing through websites and sending & receiving emails, what other activity do you most commonly do on the Internet? Most of you must have unanimously agreed upon instant messaging. The ability to have a text conversation with anyone across the globe, that to for free, is one of the best appeals of instant messaging or chatting. From being dinosaurs that could only speak standard English letters, chat applications have come a long way just like the rest of computing and Internet. Today, chat applications cover free voice calls, free video calls, emoticons, stickers and the ability to converse in text in any computer-supported written language in the world. In fact, chatting applications have evolved to such ubiquity that not just humans, even machines use chat to talk to each other. Continue reading “How chat applications work”
How a firewall burns down intruders
If you have a corporate network, you will often have heard your network administrators mentioning a dangerous sounding word called ‘firewall’. When you ask if a specific thing can be allowed, they say, “The firewall blocks it. We need to reconfigure it to allow.”
What exactly does this mystic sounding name represent? Why are network administators obsessed with it and how does it protect your company’s network? Read on to find out one of the most important building blocks of network security. Continue reading “How a firewall burns down intruders”
Understanding home virtual assistants
Home virtual assistants have been a rage lately. Since the release of products like Google Home and Amazon Echo, many people dream about sitting on a beanbag or a couch and requesting… no, ordering… a virtual assistant to do things for them. While home virtual assistants cannot match up to i-Robot yet, they can be very capable. Let’s look at the current state of home virtual assistants today. Here’s a run-down on these state-of-the-art devices in the form of an FAQ.
What is a home virtual assistant?
A home virtual assistant is a small box, typically a speaker called a ‘smart speaker’, which can connect to your home’s WiFi network for Internet and respond to your voice requests by performing or activating an action. Home virtual assistants connect to a software called Virtual Assistant service which is an online service, in order to fulfill your request. A home virtual assistant listens for sound all day and activates itself when it hears the activation word. Following the activation word, it listens intently until you stop speaking. Then it connects to the online virtual assistant to understand your command, perform some activity and respond to you once the activity is done. Amazon Echo and Google Home are the leading home virtual assistants in the market today, but there are plenty more that are either already released or under development. Microsoft is soon coming up with Invoke.
What is activation word?
An activation is a word that the home assistant is programmed to listen to, so that it knows that the next sentence is a question or a request. For Amazon Echo, it is “Alexa”, for Google Home, it is “Ok Google”. Another famous voice activated assistant is Apple’s Siri activated by the word “Siri”.
What is a virtual assistant?
Virtual Assistant is an online software service that parses questions and requests spoken in human language and converts them into something actionable in the digital world, such as an activity or an answer. The range of requests that can be issued to a virtual assistant is dependent on the company that produces the virtual assistant and how long and how well the software has matured. The notable virtual assistants are Google Assistant (powers Google Home, Android phones and tablets and Chrome browser), Amazon Alexa (powers Amazon Dot, Echo and related products), Apple Siri (powers iPhone and iPad) and Microsoft Cortana (powers Windows phones and Edge browser). A virtual assistant is only available online on the respective company’s servers and a home assistant device needs to be connected to the Internet in order to fulfill requests. Unlike a home virtual assistant hardware which is dependent on your voice commands, a software virtual assistant can fulfill typed requests as well. The typing interface is typically on a phone app or a web browser.
I like Amazon Echo Dot’s sleek look. It fits beautifully with the rest of my study table, but I prefer Siri engine. Can my Dot use Siri for answers?
No chance. Virtual assistants are very new and each company has approached them differently. There are no publicly established standards. Furthermore, voice recognition works correctly after a lot of research and effort, so every company files multiple patents. The technology is closed and proprietary. Each company’s product talks solely to its respective virtual assistant software only. If you like Siri, then you must wait for Apple to release their own home virtual assistant. Echo Dot can connect to Alexa only.
However, one company does stand out in terms of availability on multiple platforms. Google Assistant is not restricted only to Android devices. They have an app for iOS as well. So on iOS devices, you can use either Google Assistant or Siri.
What exactly can a home virtual assistant do for me?
The answer depends on the vendor. However here is a broad spectrum of what virtual assistants can do for you based on current technology.
- Set alarms and reminders
- Create to-do lists
- Answer questions about time, calendar and weather
- Read out the latest news from supported news services
- Perform mathematical calculations like unit conversion, time zone and calendar conversion and currency conversion.
- Play requested music from online music services such as Spotify.
- Give you live sports updates when important moments happen. You can also ask for scores from finished games.
- Activate a compliant smart TV to play a requested movie online using a movie service like Netflix.
- Order food via online food ordering services like Zomato.
- Reserve seats in restaurants, movies or theatres online.
- Guide you through recipes and workouts by referring to online guides.
- Control your smart electrical appliances (by Nest, WeMo, Phillips, etc) such as air-conditioner temperature, thermostat, smart dimmers, coloured lamps, etc.
- Post messages on social media (Twitter, Facebook, LinkedIn)
- Make calls over Internet using apps like Hangouts or Skype.
- Use a service like IFTTT to use services not already covered by the home assistant’s core functionality.
Is a home assistant really useful?
This depends on your lifestyle. Always check the functionality of different assistants and make sure that at least 50% of what you do during your typical day is covered. A home assistant is supposed to make your life simpler by automating your lifestyle using simple commands. If the assistant doesn’t cover your needs or doesn’t work as advertised, then you have a problem. If the assistant has you barking more commands than necessary then your problems aren’t being solved. Similarly, if you are having to change your lifestyle so that you can use your home assistant better, then you are giving in to the whims of a particular technology solution and a particular company.
How can I get my hands on one?
You can check out Amazon Echo or Google Home, which are in the market right now. Alternatively you can browse through iotlist to find devices which may fit your need.
As a closing point, where is this technology headed?
This is anyone’s guess. But if you ask me, in future, there will be apps built around voice input and virtual assistants, just like mobile apps are being built today and the space will get its share of apps, some of them vanishing due to failure and some of them becoming a hit with the consumers. Prediction has not been a good way to gauge technology industry and as with everything else, we have to wait and watch.
Understanding cryptocurrency
You have probably heard about digital currency like Bitcoin in the recent years and read how it’s trading at an insanely high value when compared with standard currency. On 18th October 2017 (today), 1 bitcoin is trading at 3900 pounds, 5200 dollars, 4400 euros and a whopping 342000 Indian Rupees. To put this in perspective, a single bitcoin can purchase an 800cc hatchback car (Alto, Eon, i10) in India. Other cryptocurrencies are trading at very high values too.
What exactly is cryptocurrency? Why is it gaining popularity and how does it work? What exactly is mining? While the users of cryptocurrency try to explain the concept to the people who are not initiated, they fall short of easy examples and stick to their indecipherable jargon which can make the listener pull his/her hair out. In this post, I try to explain cryptocurrency to you in as lucid a language as possible. Continue reading “Understanding cryptocurrency”
Streamline your system with the MVC model
You know the local grocery shop on the same street as your home. There is one shopkeeper, also the proprieter, who takes care of business. You go in and he smiles as you greet each other. You tell him what you want. He personally goes to the shelves and brings the stuff back to you. If it isn’t available, he’d tell you that too. After all the items you wanted are in your shopping bag, you hand the shopkeeper his due money, which he takes with a smile. After greeting each other once again, you leave.
This shopkeeper has it easy, even though he does all the work by himself. This is because he has simplified his business by making sure that he serves a small community. He has inventory that he can count on his fingers and only enough customers that he can personally deal with. What if he were to take orders over phone too? He’d have to manage delivering those items too. What if he were to serve customers from the entire city? More work for him. Very soon, that friendly smile on his face will disappear and he will feel an unquestionable need to split his role at the shop to multiple persons he can employ and manage. Continue reading “Streamline your system with the MVC model”
How agile is your project: Part 2: Scrum and Kanban
In the last post, we saw what Agile methodology is and its manifesto. We saw an example of how Agile can be used by a tailor Bharat to sew a shirt for a customer Aditya. While we talked about Agile through a story, there are formal ways of planning and keeping track of projects using Agile. Two of them are Scrum and Kanban. Continue reading “How agile is your project: Part 2: Scrum and Kanban”