Pages

Tuesday, March 29, 2016

HOW TO INSTALL RUBY ON UBUNTU 15.10

In addition to my front-end track on freecodecamp.com, I have started to tinkering with the back-end stuff. For back-end stuff I have decided to go the Ruby way.

I am inspired to select ruby after watching the ruby on rails tutorial by Mattan Griffels. So first thing is to install ruby on my Linux system aka Ubuntu.

After going through the installation documentations, I came to know that best method to install ruby on Ubuntu is via RVM (Ruby Version Manager).

Benefits of RVM are as follows:-

1.  RVM helps in installing multiple ruby interpreters and run-times very easy and consistence

2.  Makes features such as gem-sets supported out of the box.

3.  We can run different ruby versions in different terminals at the same time and they wont mess up with each other.

To install RVM I fired up my Terminal using CTL+ALT+T

On the prompt typed

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A
1703113804BB82D39DC0E3

I also wanted to install rails so I added --rails to end of the following command.

\curl -sSL https://get.rvm.io | bash -s stable --rails

Completion of installation of RVM takes a while depending on the internet speed.

On completion of  RVM installation to verify it I ran the following command in browser.

  type rvm | head -1

It gave me the following output.

 rvm is hashed 

The output should have been.

rvm is a function.
 
I was getting this issue because the gnome-terminal was not running the
command as login shell. 

The resolution of this issue is very simple. 

In the Terminal window menu click on "Edit" menu then > "Profile Preferences" and in the window that appears select the "Command" tab, and check the checkbox called Run command as login shell. 

That's it than I again checked by typing the above mentioned command and it worked.

Links below will help in installation of Ruby on any OS.


Saturday, March 26, 2016

MY READING LIST OF RECOMMEDED WEB DESIGN BOOKS

In this post I am listing down the books that are on my reading list. This is will be a fluid list, that means I will keep on adding the books as I go about finishing a few. I have selected the books that are on recommended list for web designers The idea here is to engrave the programming lingo and procedure in my brain, by continuously impounding it with the programming terminology which will bring me closer to my goal of mastering the web design.

So here is my list:

1.  HTML and CSS: Design and Build Websites, by Jon Duckett. 
2.  JavaScript and JQuery: Interactive Front-End Web Development, by Jon   Duckett.

3.  Learning Web Design: A Beginner’s Guide to HTML, CSS, JavaScript, and Web Graphics, by Jennifer Niederst Robbins.

4.  Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability, by Steve Krug.

5.  Design for Hackers: Reverse Engineering Beauty, by David Kadavy.

6.  Learn to program, by Chris Pine.

7.  Learn ruby the hard way, by Zed Shaw. 

8.  Michael Hartl's Rails Tutorial.


Other resources that I intend to follow;

1. One month rails, by Mattan Griffel.

2. The odin project.

If you have any suggestions please let me know by commenting below on this blog post

Friday, March 25, 2016

WIKIPEDIA VIEWER - PROJECT

Finally I have completed this project and what a feeling on accomplishing this project. It took be almost a week, I even thought of quitting this boot-camp.

So the objective here was to build a CodePen.io app that is similar to this the one posted here http://codepen.io/FreeCodeCamp/full/pgNRvJ.
 
These are the rules for the game.

#1: I have to figure out the code myself no cheating allowed. (Initially I      completed it by coping code from somewhere, but then angel stuck me. loll)

#2: Fulfill the below user stories. Use whichever libraries or APIs you need.

So the user stories that I had to fulfill are as follows.

#1: One should be able to search Wikipedia entries in a search box and see the resulting Wikipedia entries.

#2: One can click a button to see a random Wikipedia entry.


At last the clues are here:

1: URL use to get a random Wikipedia article:
    http://en.wikipedia.org/wiki/Special:Random.

2: Entry on using Wikipedia's API:
    http://www.mediawiki.org/wiki/API:Main_page.
 
My comments:

1.Initially I was overwhelmed by the mere size of the API and its documentation.

2.Completely clueless about the vocabulary and how this API sandbox worked.

3.Thought of quitting this Freecodecamp.com thing.

But than something in me told me hang-on and you will do it. then I went on to figure out the things one by one. If I write each and everything it will run into a book. So after a week long struggle here is my still not so good product (still a lot of scope for improvement).
See the Pen Wikipedia Viewer by Bhagwant Singh (@sagit2002) on CodePen.

Thursday, March 17, 2016

SHOW THE LOCAL WEATHER - PROJECT



  • Objective: The objective here is to build a CodePen.io app that is functionally similar to this: http://codepen.io/FreeCodeCamp/full/bELRjV.

  • The rules are as follows:-

    #1: Don't look at the example project's code. I have to figure it out myself.
    #2: I have to fulfill the following user stories. I am free to use whichever libraries or APIs and look of the App as well

    The user stories are given as:-

    #1: User should we able to view his current weather condition.
    #2: User should we able to see a different icon or background image (e.g. snowy mountain, hot desert) depending on the weather.
    #3: User should be able to push a button to toggle between Fahrenheit and Celsius.

    I used the Open Weather API to build this app. I had to struggle a little bit with ajax queries and toggling of the temperature into Fahrenheit and Celsius.

    I don't think this is a perfect App, but I will try to improve it as I learn more and have more experience with web development.

    So here is my version of the Show The Local Weather App. Please check it out by clicking on the embedded version.

    See the Pen Show the Local Weather by Bhagwant Singh (@sagit2002) on CodePen.

    Saturday, March 12, 2016

    BUILD A RANDOM QUOTE MACHINE - PROJECT




  • Objective: The objective here is to build a CodePen.io app that is functionally similar to the one given here : http://codepen.io/FreeCodeCamp/full/bELoPJ.

  • The rules are as follows:-

    #1: Don't look at the example project's code. I have to figure it out myself.
    #2: I have to fulfill the following user stories. I am free to use whichever libraries or APIs I need.

    The user stories are given as:-

    #1: A button to show a new random quote.
    #2: A button to tweet out the quote.

    I used the Random Famous Quotes API by Andruxnet delivered in Json format.

    Initially I found myself clueless about the API thing. To solve this issue I went through API documentations.

    Next issue I was not able to figure out how my Jquery code is doing. Inorder to solve this and find where my code was failing I fired up firebug addon for firefox. In the firefox console I could easily check my code running issues.

    So here is my version of the Random Quote Machine. Please check it out by clicking on the embedded version.


    See the Pen Random Quote Machine by Bhagwant Singh (@sagit2002) on CodePen.

    Wednesday, March 9, 2016

    BUILD A TRIBUTE PAGE

    This basic front-end project requires building a tribute page. I am building a tribute page for Dr. Linus Pauling.

    The conditions to be fulfilled are:

    1.  The page should have and image and text.
    2.  User can click on a link that will take the user to an external website with further information on the topic.

    so here I am appending by completed project.


    See the Pen Tribute to Dr. Linus Pauling by Bhagwant Singh (@sagit2002) on CodePen.

    CAESARS CIPHER

    In this challenge we have to decode a cipher message. More about cipher can be found out here.

    So we have a simplest and most widely known ciphers called Caesar cipher, also called shift cipher. Basically in a shift cipher the meanings of the letters are shifted by some set value.

    An example of this type of modern cipher is the ROT13 cipher, where the values of the letters are shifted by 13 places. Thus 'A' ↔ 'N', 'B' ↔ 'O' and so on.

    So we have to write a function which takes a ROT13 encoded string as input and returns a decoded string.

    Other conditions are:-

    1.  All letters should be uppercase.

    2.  Non-alphabetic character i.e. spaces and punctuation's are not to be transformed, but have to be passed on.

    At last the list of clues in the form of helpful links are as follows:
    It took me very less time to implement the algorithm. In this algorithm I loop thorough all the string elements converting each of them to equivalent uni-code values and then pushing them to the array. Finally I joined all the elements using the join() method of arrays.

                     function rot13(str) { // LBH QVQ VG!
                     arr = [];
                     for (var i = 0; i < str.length; i++){
                         var a = str.charCodeAt(i);
                         if(a >= 65 && a <= 77){
                             a += 13;
                         } else if(a >= 78 && a <= 90){
                             a -= 13;
                         } else {
                           a = a;
                         }
                         var c = String.fromCharCode(a);
                         arr.push(c);
                    }
                }