South India Trip – Kerala, Kanyakumari & Rameshwaram

KERALA – GODS OWN COUNTRY – As the tagline depicts its  the place owned by GOD. Its filled with nature and one can say its heaven. Name the thing and its present in Kerala. You want Beach? Backwater? Its there. Mountain? Forest? Hill Station? yup its present.

It was my first trip to South India(Kerala+Kanyakumari+Rameshwaram) but was one of the best trip I ever had. So I thought to write in detail about it. I would share each and every details in this post. All the places, hotels, rates, food, photos, timings, driver, taxi etc. So this post might get lengthy. But will also highlight the important points for those who just need summary or particular details.

We were 4 friends and our trip was of 10 days. We started from Pune. The places we visited were:

Calicut, Waynand, Kochi, Munnar, Allepey, Kovalam, Kanyakumari, Rameshwaram.

 

Day1: Arrived to Calicut(Kozikode) and reach Wayanand

  • We reached Calicut at morning 9 am. We already had taxi booked. We started journey towards Waynand.

 

  • Taxi Details:
    ============================================
    Car type: Ford Aspire
    Driver name: Mithin
    Contact: +91 8156985496
    Journey Detail: Hired from Kozikode-Waynand-Kozikode
    =============================================

Waynand

  • Wayanad is a rural district in Kerala state, southwest India. In the east, the Wayanad Wildlife Sanctuary is a lush, forested region with areas of high altitude, home to animals including Asiatic elephants, tigers, leopards and egrets.
  • Waynand is famous for its forest stay. One can look for homestays here. You can also search for Tree House stay in Vythri Village.

 

Places to see:

  1. Banasura Dam

    – One need to trek for approx 2km i.e 10 mins to reach from base till Dam.
    – There is a mini bus service available. Rs 30 per person.
    – Also hire a jeep if you are in group. Rs 250 per jeep.
    – There is a small market at base.
    – Boating is available here. Lunch time: 2-3 pm
    Food: Pineapple dipped in vinegar tastes yummy. Do try without fail.
  2. Pokodo Lake
    Entry Fee: Rs 20 per person
    – A small aquarium(not worth to see) – Rs.5 per person
    – Fish spa for Rs 50 
  3.  Sochipara Waterfall
    – Entry: Rs 50
  4.  Chembra Peak & Eddekal Caves
    – We were not able to visit this place due to time constraint.
    – Make sure you visit this place before 4pm. Because it gets closed by 5pm
  5. 5km Ziplin
    – Rs 250 per person
  •  Food at Waynand
    – Pure veg hotels are available. But people may find difficulties with the taste of food mostly vegetarians 🙂
    – Hotel Sangam

Day 2: Back to Kozikode and train towards Kochi

– We reached Calicut by 8pm. Had Dinner and went to station as we had train at 11pm towards Kochi.

IF: Due to cold in monsoon and winter, Hotels in Kerala serve Hot Medicinal Water(pink water).

 

Day3: Reach Kochi and start journey towards Munnar

– We reached Kochi by 5am.
– Had awesome South Indian Breakfast(Meduwada, Upma) at station
– Again Taxi was already booked.
– Started journey towards Munnar
– Had Snacks at Hotel Saddya but food was costly and not up to the mark.

Taxi Details:
==============
Car type: Toyota Etios
Driver name: Mr. Roy
Contact:
Journey Detail: Hired from Kochi-Munnar-Allepy-Kochi
================

Day 4 & 5: Munnar

– Awesome road and Breathtaking view with small waterfalls after every 1km journey towards Munnar. Please note we visited during rainy season in end of August.
– We stayed at Hotel Fort Munnar. Its situated 20km from Munnar town near Club Mahindra Resort.
– A hill station and former resort for the British Raj elite, it’s surrounded by rolling hills dotted with tea plantations established in the late 19th century.

Hotel: Fort Munnar

– Unlimited Breakfast

Places to visit:

1) Cultural Events: Kathak & Martial Arts

– Rs 250 for Kathak
– Rs 250 for Martial Arts

– A must to see event. This made me proud as an Indian and respect towards our Indian culture and tradition.

2) Tea Garden
– Munnar is a hub of Tea and Tea products.

3) Photo Point
– Entry fee Rs 20 pp
– You can click pictures at this point in center of Tea Gardens.

4) Tea Factory
– Entry Fee: Rs 200 pp
– It shows detail process of tea production
– Please spare 2-3 hrs for this place.

5) Elephant Ride
– Your trip is not complete if you dont meet/ride Elephants in Kerala.
– Here there is a short ride i.e a round on Elephant.
– Fee: Rs 400 per person
– Rs 250 if you want photographs with Elephant. There will be a dedicated photographer that will take 15-20 pics of you when you are riding the Elephant.

– If you want to bathe/wash elephant and offer food to elephant with your hand then you need to book a time slot in advance and it might cost around 3000.

6) Meduputty Dam
– Free entry
– Nice Dam view.
– A small market with small tea stalls and maggi joints
– You can buy a soveneir from here.

7) Wondervalley OR Adventure Park
– This is for kids.
– You need a half or one day for this park.
– We didnt visited but my sister visited this place.
– It has camel ride also.

8) Choclate Factory
– Do visit this factory.
– You can buy different varieties of choclate and its product.
– Choclate ranges from Rs 400-700 per KG
– White, Dark, Milk, Roasted Almond, Fruit Nut, Cashew, Rum, Truffle choclates etc are available.

9) Munnar Market
– Its a market situated in Munnar Town.
– Munnar is famous for Indian Spices and choclate, Tea and Coffee.
– Choclate shops, Spices shops and Tea and Coffee shops.

 

10) Food
– We had delicious veg food after 4 days in south in Mahavir Bhojnalaya in munnar town.
– Many veg restaurants are available here.

 

Day 6: Munnar to Allepy(Alappuzha)
======
– We reached Allepy at 4 pm.

Allepey
====
– Alappuzha (or Alleppey) is a city on the Laccadive Sea in the southern Indian state of Kerala. It’s best known for houseboat cruises along the rustic Kerala backwaters, a network of tranquil canals and lagoons.

– Places to visit in Allepey

1) House Boat
– we didnt stayed at House Boat but my sister stayed and gave good feedback about it.
– Hundred’s of Boat with AC rooms are available here.
– Rate: 7000 to 8000 per night
– Homemade Breakfast, Lunch and dinner included.
– Visit different islands on the same boat.
– Please note : Boat stops moving after 5 pm. So they park the boat at one place till next morning.

2) Citrus Hotel
– We stayed at Citrus Hotel.
– Hotel is situated on an island. So you will be taken in boat to hotel from the pickup point.
– Awsome Hotel with superb views and service.
– They have two room views: Paddy field view and Backwater view
– We had complimentary foot/Head spa for 10mins
– Unlimited Breakfast or Rs 350 pp
– Sujit(Manager) was really a nice person and provided the best service to us.

3) Boat Ride for 3 hrs
– If you dont stay in House Boat, you can take a boat ride that is of 3 hrs.
– Price: Rs 2500 per boat
– Visit all islands and points

 

Day 7: Allepy to Kochi
– Reached Kochi at 7 pm

Lullu International Mall
========================
– This is Asia’s 2nd Largest Mall
– The Hypercity of this mall is a must visit.
– The food you name will be available at this Hypercity.

Coconut Oil Banana Chips/ JackFruit Chips
=============================
– Fresh Banana chips are made in front of you Hot & Crispy.
– Rs 300-400 per kg

Athirapalli Waterfalls
=========================
– The famous waterfall in Bahubali Movie.
– Timing: Visit before 4 pm.
– We were late and were not able to view it from near.

 

Day 7: Kochi to Kanyakumari
Day 8: Kanyakumari
Day 9: Rameshwaram
Day 10: Kanyakumari to Kovalam

Kovalam
======
– Kovalam is a small coastal town in the southern Indian state of Kerala, south of Thiruvananthapuram

Poovar Backwater
=================
– Rs: 2500 speed boat(4-6 people) for 2 hour
– Golden Beach
– Floating Restaurants
– Canals
– Bird Watching: Kingfisher, Eagle, Duck etc
– Tamil Nadu & Kerala border

 

Trivandrum Airport: Flight Back to Pune

 

 

Calicut/Kozikode
– Paragon Hotel for non-veg
– Medicinal drink

-Waynand
Banasura dam
Pokodo lake, aquarium, fish spa
Thaaza Hotel
hotel sangam
Chembra Peak
Sochipara Waterfall,
Eddekal Caves

Pineapple dipped in vinegar

– Munnar
Fort Munnar
Cultural Events: Kathak & Martial Arts
Kerala Massage
tea Garden
Photo point Rs 20
Tea Factory: Rs200
Elephant ride: Rs250 + Rs 250 for photo
Meduputty Dam
Wondervalley

Mahavir Bhojnalaya

 

– Allepy
House Boat
Citrus Hotel
Boat Ride for 3 hrs

– Kochi
Lulu Mall
Banana Wafers
Athirapalli Waterfalls

 

– Kovalam
Poovar Backwater

-kanyakumari

– Rameshwaram
Padmanabham Bridge
Dhanushkodi
Achai Munnai
APJ Abdul kalam memorial

 

ES6

  • LET
    – block scoping
    – Accessing a let-declared variable earlier than its let.. declaration/initialization causes an error, whereas with var declarations the ordering doesn’t matter (except
    stylistically)
    – This ReferenceError from accessing too-early let -declared references is technically called a TDZ (temporal dead zone) error


if (typeof a === "undefined") {
console.log( "cool" );
}
if (typeof b === "undefined") {
// ..
}
// ReferenceError!
// ..
let b;

  • let + for
    – The let i in the for header declares an i not just for the for loop itself, but it redec‐
    lares a new i for each iteration of the loop. That means that closures created inside
    the loop iteration close over those per-iteration variables the way you’d expect.

var funcs = [];
for (let i = 0; i < 5; i++) {
funcs.push( function(){
console.log( i );
} );
}
funcs[3]();
// 3


var funcs = [];
for (var i = 0; i < 5; i++) {
let j = i;
funcs.push( function(){
console.log( j );
} );
}
funcs[3]();
// 3

  •  Const
    – immutable value
    – but object inside it can be changed.
    – When we say “`const` variables are immutable” it only means that the variable always has to point to the same thing. It does not mean than the thing it points to can’t change over time.
    – If we want the value of foo to be immutable we have to freeze it using Object.freeze(… ) .


'use strict';
/* // Declaring a const variable
const foo; // SyntaxError: Missing initializer in const declaration
*/
/* // Declaring a const variable
const moo = 1;
moo = 2; // TypeError: `foo` is read-only
*/
/* // Block Scoping
function func() {
if (true) {
const tmp = 123;
}
console.log(tmp); // Uncaught ReferenceError: tmp is not defined
}
func();
*/const foo = Object.freeze({});
foo.prop = 1;
console.log(foo.prop);

  • Block Scope
  • Immutable var
  • Multiline String
  • Variable Substitution

    let name = "asim";
    let multi = `
    hello
    world
    my
    name
    is
    ${name}
    `;
    console.log(multi);
  •  Fat Arrow Functions

    setTimeout(function() {
    console.log("setTimeout called!");
    }, 1000);


setTimeout(() => console.log("setTimeout called!"), 1000);


let add = function(a,b) {
return a + b;
};

let add = (a,b) => a + b;//fat arrow syntax if it is on one line, the statement gets returned automatically without the need to use the return keyword.

  • Destructuring

–  Destructuring is a way of extracting values into variables from data stored in objects and arrays.

  1. Object Destructuring
    const obj = {first: 'Asim', last: 'Hussain', age: 39 };

const f = obj.first;
const l = obj.last;
console.log(f); // Asim
console.log(l); // Hussain


const {first: f, last: l} = obj;
console.log(f); // Asim
console.log(l); // Hussain

 

  • {first: f, last: l} describes a pattern , a set of rules for how we want to
    destructure an object.

// {prop} is short for {prop: prop}
const {first, last} = obj;
console.log(first); // Asim
console.log(last); // Hussain

2. Array Destructuring

-Array destructuring works in a similar way except it extracts based of the index in
the array, like so:

const arr = ['a', 'b'];
const [x, y] = arr;
console.log(x); // a
console.log(y); // b

 

3. Function Parameter Destructuring

  • One really useful use case for destructuring is in function parameters.

function f(options) {
console.log(options.x);
}
f({x:1}); // 1

Now we can define the function parameter list as an object destructure pattern , like
so:function f({x}) {
console.log(x); // Refer to x directly
}
f({x:1});

  • Notice that in the function body above we can refer to x directly, we don’t have to
    refer to it through an object property like options.x .
  • //plnkr.co/edit/v6BS0PekPcDZN0QpV8wN?p=preview

 

  • For & ForEach

  • For In

    – The for-in loop is designed for iterating over an objects properties ,

var obj = {a:1,b:2};
for (let prop in obj) {
console.log(prop);
}
// a
// b

  • Promise API

    • In ES6 we have an alternative mechanism built into the language called a promise .
      A promise is a placeholder for a future value.
      It serves the same function as callbacks but has a nicer syntax and makes it easier to
      handle errors.
    • Immediate Resolution or Rejection
    • Chaining
    • Promises pass an error along the chain till it finds an error handler. So we don’t
      need to define an error handler for each then function, we can just add one at the
      end
    • Catch
    • //plnkr.co/edit/OMGgN6qpED6wTEEP2XYN?p=preview

 

  • Object Orientation in JavaScript

    • We normally call the way object orientation is implemented in C++ or Java as the
      Classical OO Pattern and the way it’s implemented in JavaScript as the Prototype
      Pattern .
    • So in ES6 we have an alternative syntax, one that closer matches the classical object
      orientated pattern as is seen in other languages.

 

  • Class

    • A class is a blueprint for creating objects with specific functions and properties
      already attached to it.
    • A class is a blueprint for creating an object, we call that created object an instance of
      a class , or a class instance or just instance for short.
  • Inheritance

    • A class can inherit from another class. We can create a class blue-print that extends
      an existing class blue-print by adding other methods or properties.
    • by using the extends keyword

 

class Person { 1
firstName = ""; 2
lastName = "";
constructor(firstName, lastName) { 3
this.firstName = firstName;
this.lastName = lastName;
}
name() { 4
return `${this.firstName} ${this.lastName}`;
}
whoAreYou() {
return `Hi i'm ${this.name()}`; 5
}
}

 

1 We define a class using then class keyword.
2 We describe the properties we want on our class instance.
3 Each class has a special constructor function, this is called when we create an instance of a class with new
4 We describe the functions, also known as methods, that we want on our class instance.5 this in a method points to the class instance, the object that is created using this class.
5 this in a method points to the class instance, the object that is created using this class.

 

let asim = new Person("Asim","Hussain");
asim.whoAreYou()
// "Hi i'm Asim Hussain"

class Student extends Person { 1
course; 2
constructor(firstName, lastName, course) {
super(firstName, lastName); 3
this.course = course;
}
whoAreYou() {
4
return `${super.whoAreYou()} and i’m studying ${this.course}`; 5
}
}

let asim = new Student("Asim", "Hussain", "Angular 2");
console.log(asim.whoAreYou());
// Hi i'm Asim Hussain and i'm studying Angular 2

1 We use the extends keyword to signal that this class inherits all the properties and methods from the parent
Person class.
2 We can describe additional properties.
3 We use the super function to call the constructor of the parent class
4 We can override member functions of the parent class with our own versions.
5 In member functions super refers to the parent instance.

 

  • Access Modifiers

    • TypeScript adds some nice functionality on top of ES6 classes, namely
      function and property visibility via access modifiers .
    • public
      This is the default and means its visible everywhere.
      private
      Only member functions of the class it’s declared in can see this.
      protected
      Only the class it’s declared in and any class that inherits from that class can see
      this.
  • Interfaces

    • An interface can be used in a number of scenarios but by far the most common is when used with classes.

class Person implements Human {
}

 

  • Human in the example above is an interface . An interface lets you describe the minimum set of public facing properties or methods that a class has.
  • Another way interfaces are explained is that they describe a set of rules the class has to follow, a contract it has to adhere to.

interface Human {
firstName: string;
lastName: string;
}

 

  • Since interfaces are all about the public interface of a class they can’t have access modifiers, the properties above have to be public .
  • error TS2420: Class ‘Person’ incorrectly implements interface ‘Human’. Property ‘firstName’ is missing in type
    ‘Person’.
  • Sometimes however we might want an interface to describe an optional contract. We can append ? to the name of the property or function to mark it as optional

 

interface Human {
firstName: string;
lastName: string;
name?: Function;
isLate?(time: Date): Function;
}

 

  • //github.com/codecraftpro/angular2-sample-code/blob/master/2.es6-typescript/10.class-interface/script.ts

  • Decorators

    • This is a new feature that will probably make it into the ES7 version of JavaScript, it’s
      not available right now however even in the ES6 version.
    • It allows us to decorate classes and functions, similar to annotations in java and
      decorators in python.
    • @course is just a function
    • The first argument to the course function is the target .
    • This is the thing the decorator is attached to, so for a class it’s going to be the function
      constructor for that class
    • With decorators we can configure and customise our classes at design time.
    • They are just functions that can be used to add meta-data, properties or functions to
      the thing they are attached to.
    • //github.com/jayphelps/core-decorators.js
    • //github.com/codecraftpro/angular2-sample-code/blob/master/2.es6-typescript/11.decorators/script.ts

 

function Student(config) {
return function (target) {
Object.defineProperty(target.prototype, 'course', {value: () => config.course})
}
}

function Std(config) {
return function (target) {
Object.defineProperty(target.prototype, ‘cp’, {value: () => config.cp})
}
}

@Student({
course: “angular3”
})

class Person {
constructor(private firstName, private lastName) {
}

public name() {
return `${this.firstName} ${this.lastName}`;
}

protected whoAreYou() {
return `Hi i’m ${this.name()}`;
}
}
@Std({
cp: “test”
})
class Person1 {
constructor(private firstName, private lastName) {
}

public name() {
return `${this.firstName} ${this.lastName}`;
}

protected whoAreYou() {
return `Hi i’m ${this.name()}`;
}
}

let asim = new Person(“Asim”, “Hussain”);
//noinspection TypeScriptUnresolvedFunction
console.log(asim.cp());

 

  • Modules

    • Module Loading
        • By default javascript doesn’t have a module system like other languages, e.g. Java or
          Python.
        • This means that if you wanted to call a function in some other file, you have to
          remember to explicitly load that file via script tags before you call the function.
        • If you tried to use code that you forgot to add via a script tag, then javascript would
          complain.

      import foo from bar;
      foo();

    • The language itself figured out where bar was, loaded it up from the filesystem,
      extracted the function foo and made it available to you in your file to use.
    • This feature was missing in JavaScript so the community developed their own
      solutions, such as CommonJS which is used in node.
  • ES6 Modules

    • ES6 took the best of the existing module systems and introduced this concept on a
      language level.
    • Although it’s made it into the ES6 standard it’s up to the javascript engine makers to
      actually implement it natively and they haven’t … yet .
    • So until that happens we code using the ES6 module syntax in TypeScript. When
      typescript transpiles the code to ES5 it uses the CommonJS module loading system
      which we touched on above.
    • We can configure TypeScript to use other module loaders, but the default is CommonJS.
  • Exporting & Imoporting

    • //github.com/codecraftpro/angular2-sample-code/tree/master/2.es6-typescript/12.modules
  • Types

    • Transpile-time type checking

      • Some of the most common mistakes we make while writing JavaScript code is to
        misspell a property or a method name.
      • We only find out about the mistake when we get a runtime error , that is to say when
        we are running our application.
      • TypeScripts transpilation mechanism also performs type checking , however it only
        works when we tell TypeScript the type of things.
      • let a: number = 1; a = “1”; //error TS2322: Type ‘string’ is not assignable to type ‘number’.
      • Basic Types, Arrays, Functions, Enum(ES6),  Class & Interface, Any, Void
    • Type Assertion
        • Sometimes we end up in a situation where we know more than TypeScript about the
          type of something. In those situations we can use type assertions as a hint to the
          transpiler about the type of something, like so:
        • (<string>value) lets TypeScript know that we believe the type of value to be string.

      let value: any = "Asim Hussain";
      let length: number = (<string>value).length;

    • Generics
        • With generics we can dynamically generate a new type by passing into the Post type
          a type variable , like so:

      class Post<T> {
      content: T;
      }
      let videoPost: Post<Video>

  • noImplicitAny flag in tsconfig.json

    • set to true then TypeScript throws an error if no type is present.
  • Types for external libraries

    • if you wanted to use code that wasn’t written in TypeScript or which you are
      not going to include as TypeScript and compile yourself.
    • We can use something called an ambient type definition .
    • This is a file that contains meta-data about the types in another library, a meta-type
      file.
    • This repository (//github.com/DefinitelyTyped/DefinitelyTyped ) contains type
      definitions for some of the most popular 3rd party javascript libraries.
    • To use them in a file we simply:-
      • 1. Download the associated type file, for example jquery.d.ts .
      • 2. In the typescript file where we want to use the 3rd party library, add this to the
        top of the file:
        /// <reference path=”jquery.d.ts” />
  • typings
    • Thats a bit cumbersome so there is also a command line tool you can use called
      typings which handles the leg-work for you.
    • We install it via npm , like so:
      npm install -g typings
    • In our project folder we then initialise a config file by typing typings init this creates a typings.json file.
    • Then we can install type definition files like so:
      typings install jquery --save --source dt --global
    • This downloads and installs the type definition files to the ./typings folder and conveniently bundles all of the downloaded files into a single file called index.d.ts .
    • So then to use jQuery with typescript type support we just need to add a reference to index.d.ts to the top the file where we use jQuery.
      /// <reference path="./typings/index.d.ts"/>

Angular 2

zone
“Zone is a mechanism for intercepting and keeping track of asynchronous work” – //github.com/angular/zone.js

  • When Angular 1 knew about callbacks it could do wonderful things, like
    automatically update the page. When it didn’t know about callbacks it frustratingly
    didn’t update the page.
  • No matter how experienced you were with Angular 1 bugs with these kinds of issues
    cropped up time and time again.
  • Zones solves this problem, it keeps track of all pending asynchronous work and tells
    Angular when things happen. So in Angular 2 you don’t have to worry about
    whether Angular knows about your callback or not, zones tracks this for you and
    notifies Angular when something happens.

SystemJS

  • Instead of including all the files we need as script tags in our index.html, in Angular
    we break up all our code into files called modules . We then leave it to a module
    loader to load the modules when they are needed, in the order they are needed.
  • It will become part of the core JavaScript language but until then we use a module
    loader

systemjs.config.js
SystemJS needs help to figure out when and how to load up certain modules, e.g. if
we ask for a module called @angular what does that mean? What should it load up?
Which version? This configuration is stored in the systemjs.config.js file.

System.import
Now we’ve loaded up the SystemJS library and configured it by loading up the
systemjs.config.js file, we can use the System.import function to load up our
script.ts file, like so:


System.import('script.ts').catch(function(err) {
console.error(err);
});

Intro to TypeScript

  • TypeScript is the ES6 version of JavaScript plus a few other TypeScript only features
    which Angular 2 needs in order to work.

  • You can write Angular applications in either TypeScript , ES6 or even ES5 JavaScript .

 

Transpilation

  • Browsers don’t support TypeScript. Browsers barely support ES6 JavaScript. So how can we write our code in TypeScript?
  • We use something called a transpiler which converts from one language to another.
  • We can write in TypeScript and have a transpiler convert to ES6 or ES5.

tsconfig.json


{
"compilerOptions": {
"target": "es5", 1
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}

 

Components

  • An Angular application is therefore just a set of custom tags that interact with each
    other, we call these tags Components .
  • Directives <1.5 & Components of 1.5
  • We use a new feature of TypeScript called annotations , and specifically an
    annotation called @Component to link Class with this custom tag
  • The @Component is an annotation, an annotation automatically adds some boilerplate
    code to the class, function or property its attached to.
  • You can write Angular without using annotations you would just have to write the boilerplate code
    yourself.
  • By setting the selector to joke we’ve told angular that whenever it finds a tag in the
    HTML like <joke></joke> to use an instance of the JokeComponent class to control it.

import { Component } from '@angular/core';

  • There is a new feature of ES6 JavaScript called template strings ` back-tick
  • In Angular 2 your code is structured into packages called Angular Modules, or
    NgModules for short. Every app requires at least one module, the root module, that
    we call AppModule by convention.

NgModule has a few params:

  • imports
    The other Angular Modules that export material we need in this Angular Module.
    Almost every application’s root module should import the BrowserModule.
  • declarations
    The list of components or directives belonging to this module.
  • bootstrap
    Identifies the root component that Angular should bootstrap when it starts the
    application.

BrowserModule is the Angular Module that contains all the needed Angular bits and pieces to run our application in the browser.

  • FormsModule , RouterModule and HttpModule .

 

Hide Featured Image on Single Post

 

Update: Thanks all for using this plugin and I am happy that its useful to many. As this plugin is made for general sites, it might need site specific customization for your site. Please email me if you require any customization.

Ver 1.1: Now you can hide all posts at once. Also one can hide featured images from Page.

To hide featured image from single post or page
  • Open the post/page in edit mode.
  • Select the option(YES/NO) to hide featured image and update.
To hide featured image on all single posts
  • Go to ‘Hide featured image’ setting page ( Settings > Hide Featured Image).
  • Select the option(YES/NO) to hide featured image for all posts or pages.
  • Click Submit.

 

While I was developing the blog page of this site, I found that the featured image which I was using was quite large as per theme design.On Archive page and Homepage it was looking fine but on single post page it was occupying half of the screen making reader to scroll down to exactly know what the content is all about.

So I thought to hide the image using CSS in my theme. But again, this would be for all single pages and what if I will need featured image for certain posts?

Finally a thought came in my mind to develop a simple functionality which has setting i.e check-box on each post stating whether to show featured image or hide. I converted this functionality into plugin so that everybody can use this. It is very useful plugin for customers/users who don’t have knowledge of Programing or has minimal understanding about WordPress.

Below is the download link for the plugin:
Hide Featured Image

 

How To Install

  1. Direct Method:
    • Go to plugins section from your WordPress backend and click “Add New”.
    • Search “Hide Featured Image” in search box.
    • Install the plugin found and Activate.
  2. Uploading Zip File
    • Download hide-featured-image.zip to your system.
    • Go to plugins section from your WordPress backend and click “Add New”.
    • Click on “Upload Plugin” button on top.
    • Upload the downloaded zip file and Activate.

Direct Method

How To Use

 

  • Install & Activate the Plugin.
  • Go to the Post for which you want to hide the featured image.
  • Open it in edit mode.
  • You will find “Show or Hide Featured image” metabox on right sidebar.
  • Select the option and Update/Publish.

featured image setting

  • Featured Image for that post will get hide on single page.

 

 

Unlimited calling for Airtel broadband users

After a huge controversy about Net Neutrality over Airtel’s Toll Free Airtel zero plan, it seems airtel’s business might got affected to some extent. To clear the doubts and to stop propagation of incorrect information about Airtel Zero plan, Bharti Airtel MD and CEO (India and South Asia) Gopal Vittal sent email to all its employees and customers stating about its airtel zero plan and stated that they didn’t violated net neutrality.

To retain its old & new customers trust and to counter BSNL’s unlimited local & STD night calling, Airtel has introduced new Unlimited(practically) local & Std calling for broadband users.

They have brought two plans for broadband Home users, one is Rs. 49/month and Rs. 99/month plan in addition to their normal broadband plan. In Rs. 49 plan, Customer will get unlimited local calls to any landline and mobile irrespective of their network. By paying Rs. 99, they will be able to call to any number all over india.

You might be thinking unlimited huh!! that too for Rs. 99 its a great deal. But there is one small catch. User will only get 5000 minutes maximum. This is to ensure that this plan is used only for home purpose and not for commercial purpose.

Though Airtel provides 5000 minutes for calling, but this plan is still cheaper & feasible. 5000 minutes means ~83 hours of calling per month. This is more than enough for normal home users.

Just to make sure, I also asked airtel customer representative about validity of this plan i.e how long this plan will be valid? Will it get terminated after few months? or will it increase its rates? I just got one answer – yes sir its life long :). I know this is not true but enjoy till the plan exists.

Do comment/share if you feel its useful. Thanks 🙂

Startups for Freshers & MNC for Experienced ?

It’s May now, so many final year students must have been placed somewhere in MNC or will be finding job, but are confused where to go Startups (Small Company) or MNC? Which is best for us? How both are different? Work Culture? Process? etc etc. All queries will get cleared after reading this post. It will help to understand important aspects of MNC & Small Companies and will help both fresher and experienced(planning to switch) to decide where to work on.

 

MNC – Multinational Corporation (MNC) or Multinational Enterprise (MNE) are organizations that own or control production or services facilities in one or more countries other than the home country. Mostly they have large strengths of employees. Startups or Small companies as name suggests are companies with small bussiness, less experience and small number of employee strengths.

One thing is sure that both MNC and startups have pros & cons. So decide as per situation, surroundings etc.

Below are the important aspects as per my experience that one should look for. Different people might have different experience, but below is about general thinking.

Important Aspects

Okay, lets understand few realities regarding MNC & startups.
1. Small projects vs Large Projects
  • Small companies have comparatively small projects. Projects mostly range from 1 to 2 months.
  • MNC’s have larger projects ranging from months to years.
2. Employee Strength
  • As projects are small and of low budget, less resources are assigned. It commonly happens that most part of the project is done by individual itself or a team comprising of 2-3 employees.
  • MNC generally have larger employee strength as it helps them to get bigger client. Single project is handled by approx 5-20 employees.
3. Work-Life balance 
  • As larger part of the work is to be done by individual, work life balance is affected. Generaly this point is mostly for freshers as they dont have much knowledge of projects and its requirement, they first learn and then work on it. So it takes time but, but have to deliver in short period. So have to work till late. Again for experienced, they are given larger or harder part of the projects so they too have to work harder, but generally they get used to manage work-life balance.
  • In MNC, generally a project is divided into different modules and each module is done by team of approx 3-5 resources(employees).
4. Salary
Now this is important for most right 🙂 . After all we all do hard work to earn money and knowlege(to some extent).
  • Small companies have small projects so they offer less salary compared to MNC.
  • MNC’s have larger revenues so they can offer attarctive salaries compared to startups.
5. Company policies
  • Small companies have their own policy, which may or may not be employee oriented. Like leave policy, appraisal, timings, notice period, refferal etc etc.
  • MNC’s mostly have policies which helps or is good for both employees and company, like good refferal bonus, large number of leaves, insurance of employees and their family, gratuity etc.
  • It depends on company to company and their growth.
6. Company Infrastructure
  • Small companies can’t afford large corporate buildings or workplace. So they have moderate infrastructure and workplace.
  • MNC’s mostly have good infrastructure like cafeteria, game zone etc.

Conclusion

Everyone wants to earn good salary and position right? But for that, you require knowledge.
After reading above points, you might be thinking never to work in small companies, but NO I have just mentioned few important points regarding how both MNC and Startups work.
In small companies, single individual has to work on larger portion of projects, he/she will get much idea about how things work and much knowlege of project development cycle i.e from project requirement to project deployment everything. While in MNC it would end with knowledge of particular area only. Sometimes they keep few employees mostly freshers on bench for months i.e without alloting any projects.
I would suggest freshers to work in small companies for 3-4 years and then switch to MNC. I am telling this because when your are fresher, you are around of age say 20-25. This is best time to get as much knowledge as possible. At this time a person can take risks. After 25-26 age,- marriage, family, kids etc etc stuffs starts. Person now needs good salary, work-family-life balance etc., so then switch to MNC. Please note I am not telling that married person should not work in small companies, if you are satisfied with your salary and work then thats cool 😉 .
So guys think over this aspects and then take the decision. If you found this post useful do comment and do note this is general scenerio and may differ from company to company.