Getting Started with Angular2 and Bootstrap

Getting Started with Angular2 and Bootstrap

# Install Angular2 Cli
npm install -g @angular/cli

# Create new application
ng new application-name

# Start serving application, see browser localhost:4200
ng serve

# In src directory, install bootstrap using bower
bower install bootstrap –save

# Link bootstrap style to application, edit .angular-cli.json
# add new element to app->styles array

# Stop and again start serving the application and it is ready!

JavaScript “this” at simplest level

In JavaScript “this” thing confuses the beginners as well as experienced ones sometimes. There is lot of stuff on Internet (may be like this one) and almost each book on JavaScript emphasizes on explaining “this“.

Here lets go through very simplest definition (though informal one) which can help us in understanding “this“.

this” is a reference to object to which enclosing method belongs and if there is no enclosing method “this” is global object “window“.


1. In global context, without enclosing function
// window….

Here “this” is in global context hence simply it is nothing but reference to “window” object.
2. In global context, within enclosing function

function foo(){

// window

Here “this” is in enclosing function which belongs to global object “window” (you can call here),
hence here “this” is “window”.


3. In enclosing function which is method of some object.

var foo = {
    bar: function (){
// foo

Here “this” is in enclosing function “bar” which belongs to object “foo”, hence “this” is a reference to “foo” object.


4. Another varient of #3, but with one more level of nesting

var person = {
    name: “Sachin”,
    showName: function () { console.log(; },
    employee: {
        name: “Web Develoepr Sachin”,
        showName: function () { console.log(;}

// Sachin

// Web Developer Sachin

Even if this example shows nesting here, but if we simply follow our informal defination “person.showName” method’s “this” is “person” object and “person.employee.showName” method’s “this” is “employee” object.


Let me know your comments.

Happy coding 🙂

How to add sass syntax highlighting for sublime

When you are on sublime editor window,

  1. Enter Ctrl  + Shift + P, it will open command window for sublime.
  2. Type “Install Package Control”
  3. Click command “Install Package Control” form the list, it will install the package control for your sublime.
  4. Enter Ctrl + Shift + P, to open the command window. (Select Install Package)
  5. Enter the “sass” to search the sass support packages
  6. Select the appropriate one and click the package to install.
  7. Your done!, you can use these steps to install any package/support for sublime e.g. jade highlighting

Happy coding…. 🙂

Better angular js validation messages using jquery validator

Angularjs validation messages requires you to

  1. Add lot of html markup
  2. Add validation rules to your html markup.

For simple, short forms this might be good but for big forms and regular use it will not fit. It makes html markup complex, making it hard for user to understand the form validation rules, change messages.

Before angularjs, in the time of jQuery plugins world, there was a plugin (and still exists) used for validations called jQuery Validator. This plugin allows you to keep rules, messages in single javascript object which is very easy to maintain. It also provides good range of validation rules along with custom rule creation.

This jQuery validator plugin can be used in angular js(the angular way), here it is Angular jQuery Validator.

Please see the documentation for how to get started.

It makes validation task really easy and manageable.

Handle write permissions in ubuntu for uploads or code generators

Usually we need to change directory/file permission to able to write files. This may be for uploads directory or code generation tool. But most of the time some developers do bad thing, that the give permission 777 to the directory/file and get work the done.

sudo chmod -R 777 /path/some-directory

Here the script which throws the write permission error, now executes smoothly as it has got the 777 permission. But here we compromised serious security risk. Permission 777 means that is read/write/execute to everybody in the system, thus creating loop hole for security.

Instead of assigning permission 777, we can assign 775 and add the user who runs the script(which thrown the permission error) in the user group of the directory/file.

Following command adds given user (userName) to particular group (groupName)

sudo usermod -a -G groupName userName

Above will add user which runs the script to the group of users of directory/file which need write permission. Here I am assuming that your directory/file already has write permission i.e. user group has writable permission. You can also check members of user group from file “/etc/group”.

For web applications where Apache is the web server, you can add “www-data” to group of users. For PHP yii framework you need to set writable permission to some directories while development so that code generators can work.

This was just to give alternative way(good) to the developer who quickly give 777 permission to avoid/fix permission error. There are many more things you need to care when you think from security aspect. Avoid globally write is surely one of them.

Happy coding 🙂



Some ref.