Monday, December 15, 2014

Setting up an web development workflow using bower, npm and grunt

I came from a .net development environment where my development workflows are all within visual studio. However, recently, I had the opportunities to move out of these ancient workflows and move into the leading edge development. Because of this shift, I interface with new technologies like grunt and bower, NodeJS (NPM to be specified), Rudy gem, etc.

One of the better workflows I encounter are

1) Use Bower to download all necessary packages like Bootstrap, jQuey, AngularJS, etc. The reason behind the use of Bower are we can easily synchronise the same environment across all developers; we do not need to push in libraries into our git repository and we can update all libraries at the touch of fingers. Another advantage is I normally separate the front-end libraries installation using Bower, and the back-end libraries using the NPM CLI.

 2) Grunt is an automatic task runner that are capable of running predetermine tasks sequentially. If setup correctly, it can significantly increase the efficiency of the current development workflow. Some of the most basic tasks Grunt can do are compiling Sass, Coffee or Typescript, logging of issue and request, injecting live reload, and much more. There is also an alternative to Grunt, Gulp. Gulp is also a tool that is similar to Grunt. The real different to me is just the syntax, and it is up to the developer preference on choosing which one for their projects.


That is about it for now. I will post more topic about the workflow we adapt and use along the way.



Wednesday, December 10, 2014

Four months. My path towards my dream.

Four months walking down the path of light is an enriching, yet stressful one. There are so many factors to worry about especially the unknown path ahead. The feeling of both nervousness and overwrought fills our mind each day. But on the other hand, uncovering the hidden path and shining lights into the never-ending darkness is the real fun which creates the awesomeness each day.

Even in times of stress and uncertainty, fun and excitement still coexist, which makes the feeling both complex yet rewarding one. Allowing passion for quenching our thirst each day makes our life fills with hope, and always ensuring our line of sight is pointed into the future. Setbacks are always there, no matter it is the people, the resources we have, relationship with families and much more, but these will never stop us from continuing our journey.

Inspiring times are near as holiday season is in the corner, but let us not forget the real purpose of life and happiness, which would only be achievable with the continuous passion and fire that lights up the way. Life is a journey, and happiness is the fruits that came along with it. Do what you like now, and start growing the fruits you want. Sooner or later, the fruits will rip, and that's when the harvest begins.

Monday, November 10, 2014

What is Prototype in javascript

I always had this issue on understanding what is prototype in javascript and finally, I had a much clearer picture thanks to a youtube video by Javavideotutorails (https://www.youtube.com/watch?v=JEJjbi5iqjc&list=PLOxOmO43E6Jt4GfZtF8yR6KghIdmc7715&index=4). 

You need to understand quite a few core topics about javascript before you can truly understand the beauty of prototype. Things like JSON, function declaration / expression declaration and etc. But to me, the light of enlightenment hit’s me when javascript constructor is mention.

Given this scenario: Create 2 persons with basic details and a function to print the first and last name.

First, we will write a person constructor that takes in firstName and lastName as the parameters

function Person (firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.getPersonName = function () {
    return this.firstName + “ “ + this.lastName;
  };
}


Declare some variables to hold the 2 persons

var p1 = new Person(“Angeline”,”Doe”);
var p2 = new Person(“Sarah”,”Doe”);

Each person object will contain first name and last name parameters, and also a function getPersonName tagged to it. 

In javascript, function is treated like an object that require memory to store it. For our case, both p1 and p2 will contain an additional function object (getPersonName) which practically do the same thing. Even tho they serve the same purpose, each getPersonName is a different instance that use up different memory.

This is where prototype comes into the picture. 

Take a look at this modified Person constructor.

function Person (firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

Person.prototype.getPersonName = function () {
  return this.firstName + “ “ + this.lastName;
};


All objects in javascript contains prototype object, and prototype object is a static object which is accessable by all similar type of object.

Here in this case, we are taking getPersonName function out and declare it under Person.prototype. By doing so, when we create p1 and p2, the Person object only contains firstName and lastName, and getPersonName became a static function object that both share. Hence, whenever you access getPersonName, it will always point to the same memory sector, which reduce the redundancy on having multiple getPersonName.


Hope this clarifies some of your doubts, and do talk to me if you have any questions regarding this.

Sunday, August 03, 2014

Venture out to the unknown

Recently, I had the opportunity to move out from my current comfort zone, into an unknown, yet exciting future. My partners and I decided to venture out fully to the entrepreneurship world where our future depends greatly on all our direction and decisions. Concerns, uncertainty, fear and other negative feelings all lump up together at that point of decision, but nothing can stop us from our undefeatable passion, and enthusiasm about our brighter, and fun future.  

Stay tune for more exciting experience ..

Saturday, July 26, 2014

Work, Career, Satisfaction

Working is one of the most important mode of survival in my current environment, and I believed that this applies to most of the people around the globe. No matter of gender, nationality or age. Since working made up of most of our everyday life (more or less to about 1/3 of our life), I would presume that everyone will want to achieve the most out of it. Generally, I can't make this statement for everyone, but it's definitely true for me.

In my perception, work are about applying your talent and experience, ability to socialize with the crowd, and also the direction and path you willing to travel down the road. Within the process, it will also involves in learning, monetary gain, relationship and satisfaction. Of course there are other unglam factor like competition, office politics, biases and etc. Ultimately, what we all want about work is satisfaction, no matter in monetary gain, job recognition and achievement, or etc.

The question is, how?..

Thats all for now!

Monday, July 07, 2014

Managing people, managing emotions.

Recently, I had the opportunity to manage a group of 10 developers in my company. You can consider it as a functional job role promotion for me to become a team lead, after my 8 years of career. But having said so, this new position leaves me with ambivalent feelings and thoughts.

I'm quite content and motivated with the new experience I will be gaining for managing the scope of the project, and also interaction with the rest of my team and management. But on the same time, I am also starting to feel pressurize with the paper work required, communication with surrounding people and team mates and  also political wars among the management. Even tho my project manager and team are quite supportive and kept motivating me, things don't always goes the way I'm targeting.

Lets start off with an introduction for my team. My team consist of individuals with different nationality, similar age group as me,  and had formed a few cliques between them. But in general, we do communicate well with each other, and had already built a layer of trust between each other. Most of them do show support and kindliness towards me, and had accepted me as someone who can lead them to a better future. Disagreements do happens from time to time, but can usually be resolve on the spot, without hard feelings and grudges. From time to time, I try to boardcast an impression that I'm not a authoritative person, and I'm just like anyone here but with additional responsibility. My ideal goal towards the team is everyone work together like a family, and reduce the amount of overtime required.

Enough for my humble team, lets go on to my management. The environment we are living in are comparable to the open sea with unknown danger and threat. Everyone is trying to prey and defense against the surrounding be  survivors, and you will be easily devoured if you are not careful enough. Well, it's just my current  perspective on the environment,  and I may not seen the whole picture.

Well that's all for now, I'll continue to post the outcome and stories I encounter.

Saturday, July 05, 2014

Moving towards inner satisfaction

I am a web enthusiast which skill sets mainly focus on User Interface design and coding. Leaving in a safe and protected environment in Singapore, I cultivated a personality and believe that I'm capable of being an entrepreneur that can deliver happiness to different people at different time, different space.

The ecosystem I'm subsisting right now is a warm and motivating one, which gave me abundant opportunities to excel in what I do. This is also the main reason why I'm starting to keep this blog to track all my experience, my life, my journey towards my inner satisfaction.

ne me visiter à nouveau