Monthly Archives: September 2014

Eclipse Shortcut Keys for Android Development

One of the main things holding me up from picking up Android development is the fact that it’s using Eclipse as its IDE. Android Studio is still in Beta, so I stick with Eclipse.

But, what’s wrong with Eclipse? You how it feels when you get out of your comfort zone, well, it’s uncomfortable! I am a hard-core Visual Studio user, so when in Eclipse, I feel like I was put in Mars!

Finally, I figured what alienate me from Eclipse, it’s because I can’t do what I can in Visual Studio, or more like, I haven’t found the way to do it yet.

As I code in Eclipse now, I carefully learn what I would normally do in Visual Studio that I couldn’t in Eclipse, then stop and find a way to do it in Eclipse. Turns out, there’s always a way to do what I have been doing in Visual Studio. Most of these are shortcut keys.

So, here’s the Windows shortcut keys for Eclipse for most things I do in Visual Studio:

Track item in Package Explorer

Click a “two yellow arrows pointed at left and right” button in the Package Explorer view. The button is “Link with Editor” button.

Stop running instance / process

  • Windows > Show View > Other > Devices
    Show Devices view.
  • Select instance / process
    Select an instance / process from the list under each device.
  • Stop Process
    Click on STOP icon from View menu.

Find All (in Project / Solution)

Use File Search

Switch between file tabs

  • CTRL + Page Up / CTRL + Page Down
    Go to previous / next file in the Editors list.
  • ALT + Left / ALT + Right
    Go to previous / next file on history basis.
  • CTRL + E
    Show list of tabs to pick from.
  • CTRL + F6
    Switch to previous file on history basis.

Comment / uncomment

  • CTRL + SHIFT + /
  • CTRL + SHIFT + \

Go to line


Close file tab


Go to type / class


Show intellisense while typing


Find next / previous

  • CTRL + K
    Find next.
  • CTRL + SHIFT + K
    Find previous.

Format code in Editor


Delete whole line


Go to declaration


Organize (delete / add) imports


Search method


Rename method / class


Maximize / restore editor area


Leave a comment

Posted by on September 29, 2014 in General



OAuth2 Flows

Cliff notes from Dominick Baier’s OAuth2 Flows.

Authorization Code Flow


Characters: web application (server-based) clients, confidential and secured client where nobody can see user credential, human involves, consent screen, authorization happens in authorization server.

Apply to: web applications


  1. Request authorization.
  2. Request token.
  3. Access resource.

Implicit Flow


Characters: native / local clients, user-agent based clients, human involves, consent screen, authorization happens in authorization servers.

Apply to: third party native applications (JavaScript application is included).


  1. Request authorization & token.
  2. Access resource.

Resource Owner Credential Flow


Characters: trusted clients, no human involvement, no consent screen, authorization happens in client.

Apply to: official native applications (JavaScript application included).


  1. Request token with resource owner credentials.
  2. Access resource.

Client Credential Flow


Characters: client to Service communication, no human involvement, no consent screen, authorization happens in client.

Apply to: machine to machine communication, service communication to authorization server without act as.


  1. Request token with client credentials.
  2. Access resource.

Assertion Flow


Characters: use one of the ‘core’ flows, access another trusted system (partner).

Apply to: translate between identity management system (ADFS’s saml to ThinkTecture’s jwt), communication with partner’s resources using client’s credential.


  1. Request token using ‘core’ flow (Authorization Code, Implicit, Resource Owner Credential, Client Credential).
  2. Request token using ‘assertion’ flow.
  3. Use token.
Leave a comment

Posted by on September 24, 2014 in General


Tags: , , , , , ,

Learning Paths

With so many tutorials, articles and resources available out there on the Internet, learning new programming language, framework and library become much more easier. However, as much as its advantage, readily available resources have also become its own problem: where should I start?

With so many options available, it can be confusing to even start learning. I present you my learning paths to solve this problem. Learning paths will guide you through learning programs for each subject of your interests. Think of this as a curriculum to the degree you want to get.

Most of the courses are from, but this learning paths are not limited to just I also include some free courses from other sources. While I understand that you may have to pay for some of these courses, I can assure you that paying the subscription is worth it (especially Pluralsight!).

I will update this learning paths to include more subjects and courses in the future. Stay tuned!


Level Course
0100 Get the Android SDK (
0101 Prerequisite: 0100
Getting Started (
0102 Introduction to Android Development (
0200 Prerequisite: 0101 or 0102
Android Async Programming and Services (


Level Course
0100 AngularJS Fundamentals (
0200 Prerequisite: 0100
AngularJS In-Depth (
0201 Prerequisite: 0100
Testing AngularJS From Scratch (


Level Course
0100 ASP.NET MVC Fundamentals (
0200 Prerequisite: 0100
ASP.NET MVC 5 Fundamentals (


Level Course
0100 Introduction to the ASP.NET Web API (
0200 Prerequisite: 0100
Web API v2 Security (
0201 Prerequisite: 0100
Web API Design (


Level Course
0100 C# Basic (
0101 C# From Scratch (
0102 Prerequisite: 0101
C# From Scratch – Part 2 (
0200 Prerequisite: 0100 or 0102
Object-Oriented Programming Fundamentals in C# (

Entity Framework

Level Course
0100 Getting Started with Entity Framework 5 (
0200 Prerequisite: 0100
Entity Framework Code First Migrations (

JavaScript & jQuery

Level Course
0100 W3Schools’s JavaScript Tutorial (
0101 JavaScript Fundamentals (
0120 Prerequisite: 0100 or 0101
DO Factory’s JavaScript + jQuery Design Pattern Framework – JavaScript & Pattern Essentials (
0200 Prerequisite: 0100 or 0101
JavaScript Design Patterns (
0300 Prerequisite: 0200
jQuery Fundamentals (

WIF, Claims-based Identity, OAuth2

Level Course
0100 Introduction to Identity and Access Control in .NET 4.5 (
0200 Prerequisite: 0100
Identity and Access Control in ASP.NET 4.5 (
0201 Prerequisite: 0100
Identity and Access Control in WCF 4.5 (
0202 Prerequisite: 0100
Web API v2 Security (
0300 Prerequisite: 0200 or 0201 or 0202
Introduction to OAuth2, OpenID Connect and JSON Web Tokens (JWT) (
1 Comment

Posted by on September 15, 2014 in General


Tags: , , , , , , , , , , ,

Basic Node JS and NPM Commands

Following are some useful commands for Node.js and NPM.


Display Node.js version.

$ node --version

Run local NPM package. If the package is installed globally, don’t need to use ‘node’ command.

$ node run <npm_package_command>


Display NPM version.

$ npm --version

Interactively create a package.json file.

$ npm init

Install package globally.

$ npm install -g <module(s)>;

Install package locally and save the dependency to package.json.

$ npm install <module(s)> --save-dev

Install package(s) based on package.json file in the current folder.

$ npm install

List global packages with depth = 0.

$ npm ls -g -depth=0

List global packages detail with depth = 0.

$ npm ls -gl -depth=0

List local packages with depth = 0.

$ npm ls -depth=0

List local packages detail with depth = 0.

$ npm ls -l -depth=0

Search the registry for packages matching the search terms.

$ npm search <module>

Update global packages.

$ npm update -g

Update local packages.

$ npm update

Uninstall global package.

$ npm uninstall -g &amp;lt;module(s)&amp;gt;

Uninstall local package.

$ npm uninstall &amp;lt;module(s)&amp;gt;

Run NPM tasks defined in ‘scripts’ section of ‘package.json’ file. ‘start’ and ‘test’ scripts don’t need ‘run’ command.

$ npm run <script_task>
$ npm start

NPM run scripts boilerplate:

Leave a comment

Posted by on September 12, 2014 in References


Tags: , ,

Basic Karma Commands

Following are some useful commands for Karma testing framework.

Display Karma version.

$ karma --version

Interactively create a karma config file (karma.conf.js).

$ karma init
Leave a comment

Posted by on September 2, 2014 in References


Tags: , ,

%d bloggers like this: