Category Archives: How-to Guides

HTTPS Methods and Status Codes


Here’s a curated list of HTTPS methods and status codes for quick reference by web devs:

METHODS:

  • ‘ACL’,
  • ‘BIND’,
  • ‘CHECKOUT’,
  • ‘CONNECT’,
  • ‘COPY’,
  • ‘DELETE’,
  • ‘GET’,
  • ‘HEAD’,
  • ‘LINK’,
  • ‘LOCK’,
  • ‘M-SEARCH’,
  • ‘MERGE’,
  • ‘MKACTIVITY’,
  • ‘MKCALENDAR’,
  • ‘MKCOL’,
  • ‘MOVE’,
  • ‘NOTIFY’,
  • ‘OPTIONS’,
  • ‘PATCH’,
  • ‘POST’,
  • ‘PRI’,
  • ‘PROPFIND’,
  • ‘PROPPATCH’,
  • ‘PURGE’,
  • ‘PUT’,
  • ‘REBIND’,
  • ‘REPORT’,
  • ‘SEARCH’,
  • ‘SOURCE’,
  • ‘SUBSCRIBE’,
  • ‘TRACE’,
  • ‘UNBIND’,
  • ‘UNLINK’,
  • ‘UNLOCK’,
  • ‘UNSUBSCRIBE’

STATUS_CODES:

  • ‘100’: ‘Continue’,
  • ‘101’: ‘Switching Protocols’,
  • ‘102’: ‘Processing’,
  • ‘103’: ‘Early Hints’,
  • ‘200’: ‘OK’,
  • ‘201’: ‘Created’,
  • ‘202’: ‘Accepted’,
  • ‘203’: ‘Non-Authoritative Information’,
  • ‘204’: ‘No Content’,
  • ‘205’: ‘Reset Content’,
  • ‘206’: ‘Partial Content’,
  • ‘207’: ‘Multi-Status’,
  • ‘208’: ‘Already Reported’,
  • ‘226’: ‘IM Used’,
  • ‘300’: ‘Multiple Choices’,
  • ‘301’: ‘Moved Permanently’,
  • ‘302’: ‘Found’,
  • ‘303’: ‘See Other’,
  • ‘304’: ‘Not Modified’,
  • ‘305’: ‘Use Proxy’,
  • ‘307’: ‘Temporary Redirect’,
  • ‘308’: ‘Permanent Redirect’,
  • ‘400’: ‘Bad Request’,
  • ‘401’: ‘Unauthorized’,
  • ‘402’: ‘Payment Required’,
  • ‘403’: ‘Forbidden’,
  • ‘404’: ‘Not Found’,
  • ‘405’: ‘Method Not Allowed’,
  • ‘406’: ‘Not Acceptable’,
  • ‘407’: ‘Proxy Authentication Required’,
  • ‘408’: ‘Request Timeout’,
  • ‘409’: ‘Conflict’,
  • ‘410’: ‘Gone’,
  • ‘411’: ‘Length Required’,
  • ‘412’: ‘Precondition Failed’,
  • ‘413’: ‘Payload Too Large’,
  • ‘414’: ‘URI Too Long’,
  • ‘415’: ‘Unsupported Media Type’,
  • ‘416’: ‘Range Not Satisfiable’,
  • ‘417’: ‘Expectation Failed’,
  • ‘418’: “I’m a Teapot”,
  • ‘421’: ‘Misdirected Request’,
  • ‘422’: ‘Unprocessable Entity’,
  • ‘423’: ‘Locked’,
  • ‘424’: ‘Failed Dependency’,
  • ‘425’: ‘Too Early’,
  • ‘426’: ‘Upgrade Required’,
  • ‘428’: ‘Precondition Required’,
  • ‘429’: ‘Too Many Requests’,
  • ‘431’: ‘Request Header Fields Too Large’,
  • ‘451’: ‘Unavailable For Legal Reasons’,
  • ‘500’: ‘Internal Server Error’,
  • ‘501’: ‘Not Implemented’,
  • ‘502’: ‘Bad Gateway’,
  • ‘503’: ‘Service Unavailable’,
  • ‘504’: ‘Gateway Timeout’,
  • ‘505’: ‘HTTP Version Not Supported’,
  • ‘506’: ‘Variant Also Negotiates’,
  • ‘507’: ‘Insufficient Storage’,
  • ‘508’: ‘Loop Detected’,
  • ‘509’: ‘Bandwidth Limit Exceeded’,
  • ‘510’: ‘Not Extended’,
  • ‘511’: ‘Network Authentication Required’

Updating Email ID and Author Name from multiple commits in Git


Multiple Commits:

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "" ];
        then
                GIT_COMMITTER_NAME="";
                GIT_AUTHOR_NAME="";
                GIT_COMMITTER_EMAIL="";
                GIT_AUTHOR_EMAIL="";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

Single Commit:

To update the author to a specified name [The committer will be set to your configured user in git config user.name and git config user.email]

git commit --amend --author "New Author Name <email@address.com>"

To set both the author and the committer:

git -c user.name="New Author Name" -c user.email=email@address.com commit \
--amend --reset-author

Interactive Rebase

git rebase -i -p <some HEAD before all of your bad commits>

Then mark all of your bad commits as “edit” in the rebase file. If you also want to change your first commit, you have to manually add it as first line in the rebase file (follow the format of the other lines). Then, when git asks you to amend each commit, do

git commit --amend --author "New Author Name <email@address.com>"

edit or just close the editor that opens, and then do

git rebase --continue

to continue the rebase.

You could skip opening the editor altogether here by appending –no-edit so that the command will be:

git commit --amend --author "New Author Name <email@address.com>" --no-edit && \
git rebase --continue

If there are any merge commits between the current HEAD and your , then git rebase will flatten them (if you use GitHub pull requests, there are going to be a ton of merge commits in your history). This can very often lead to very different history (as duplicate changes may be “rebased out”), and in the worst case, it can lead to git rebase asking you to resolve difficult merge conflicts (which were likely already resolved in the merge commits). The solution is to use the -p flag to git rebase, which will preserve the merge structure of your history. The manpage for git rebase warns that using -p and -i can lead to issues, but in the BUGS section it says “Editing commits and rewording their commit messages should work fine.”

Reference:

Working around untrusted certificate errors in Express JS


A few very common fatal errors thrown by the request module for express while trying to access data from self-signed web servers are Error: DEPTH_ZERO_SELF_SIGNED_CERT and UNABLE_TO_VERIFY_LEAF_SIGNATURE

This is because of https://github.com/nodejs/node-v0.x-archive/pull/4023 which mandates NodeJS to validate a server’s certificate by default, which needless to say is how things should be in a production environment.

However, more often than none we tend to use self-signed SSL certificates in our development environments or even within internal networks.

Thankfully for such brain-wracking moments, two particular flags come to our rescue. Enter strictSSL and rejectUnauthorized. The way I personally like to use these flags, is to set defaults within my development environments as follows to bypass SSL validation hence, saving the day! 🙂

var request = require('request').defaults({
    strictSSL: false,
    rejectUnauthorized: false
 });

Please do note, that I do not recommend that you ever try this on your production systems without understanding the true implications of what disabling strictSSL and rejectUnauthorized means for you node server. By disabling these, you are essentially telling your server to skip validation of the requested server’s identity, which leaves your application in quite a vulnerable position.

Using Vim to generate HTML output of code


This is an interesting bit that I learnt about from an email in a mailing list by James Pryor.

To generate html output for code within a shell script you can use:

vim myscript.sh '+syntax on' '+ set nu' '+set background=light' +TOhtml '+w myscript.html' '+qall!'
If you don’t want numbers and need a dark background you can use:
vim myscript.sh '+syntax on' '+ set nonu' '+set background=dark' +TOhtml '+w myscript.html' '+qall!'

Installing EditorConfig on Sublime Text


To install Editor Config on Sublime Text all you need to do is to follow the following steps:-
  1. Go the Preferences tab -> Package Control.
  2. Select Install Package from the drop down menu.
  3. Wait for the list to load, once it loads it will show you a list of packages.
  4. Now, type in EditorConfig and select the highlighted option.

To confirm that Editor Config is installed correctly on your Sublime Text instance you can go to Preferences -> Browse Packages. If installed correctly you should be able to see an EditorConfig directory present in the Packages directory.

That’s it! Enjoy! 🙂

Installing Sublime Text 3 on RHEL / Fedora


Here’s another three step guide to installing Sublime Text 3 on RHEL 6,7 / Fedora 18, 19, 20:-

  1. Download the installation script from the following gist.
    https://gist.github.com/sayak-sarkar/11b039f398ddcae88139
  2. Extract it to your home directory [or anywhere you like].
    $tar -xvf gist11b039f398ddcae88139-e339084ef22e956ea6ef8d04f8279ca70772f534.tar.gz
  3. Open your terminal (preferably as super user), navigate to your home directory and execute the shell script.
     #./sublime-text-3.sh

Voila!! You now have Sublime Text 3 installed on your machine. You may run it from the terminal or via the alt+f2 shortcut by simply typing in “sublime”.

Based upon my previous post on How to install Sublime Text 3 on Fedora. 😉

Enjoy!! 🙂

Creating scrollable Charts using Angular-Kendo


Creating Scrollable Charts:

Horizontal scrolling of Charts is not supported out of the box in Kendo UI, however it can be achieved using a bit of custom styling.

Basic steps:

  • Set overflow: auto of the <div class="chart-wrapper">;
  • Set width of the aforementioned div;
  • Set width of the <div id="chart"> to a value higher than it’s parent div width size.

Example piece of code:

Template:

<div class="parent-container">
  <div kendo-chart k-options="line" class="chart-container">
  </div>
</div>

CSS:

.parent-container {
    overflow-y: scroll; 
    width: 1000px;
}

.chart-container {
    overflow: auto; 
    width: 2000px;
}

Installing Android on the Geeksphone Keon


Here’s a clean, clear and to the point english post on how to install Android on your Geeksphone Keon developer device:-

Android on Keon

STEPS:-

  1. If you don’t already have adb and fastboot installed on your system:-
    1. Get the packages from here.
    2. Extract the contents of the zip file and navigate to the adbfastbootmac directory [Note: This package works on macs, if you are using Linux or any other operating system, a simple online search should help you figure out how to get adb and fastboot]
  2. On your Keon go to ‘Settings’ -> ‘Device Information’ -> ‘More Information’ -> ‘Developer’. From the list of checkboxes, enable the ‘Remote debugging’ checkbox.
  3. Connect your device to your computer using the USB cable.
  4. Back on your computer’s terminal do the following:-
    1. If you are using the package mentioned above, run ‘./adb devices’
    2. You should see a device named ‘full_keon’ as a part of the output. If you don’t see it listed out there, try reconnecting your device or check whether the Remote Debugging option is enabled.
  5. Now let’s get down to the magic:-
    1. Download and store the following zip packages to you device’s SD-Card:-
      1. TWRP recovery
      2. Android ICS ROM for Keon
      3. Google Apps
      4. Additional Ring Tones
    2. Start the Keon in the fastboot mode :
      # ./adb reboot-bootloader
    3. Install the new recovery :
      # ./fastboot flash recovery TWRP-GK.img
    4. Boot the recovery :
      #./fastboot boot TWRP-GK.img
    5. On the device’s screen now tap on ‘Backup’ to create a backup of Firefox OS.
    6. Once done, tap on ‘Wipe’ → ‘Swipe to Factory Reset’.
    7. ‘Install’ (select the ROM) → ‘Add More Zips’ (select the Google Apps and Additional Ringtones zip files) → ‘Swipe to Confirm Flash’.
    8. ‘Wipe Dalvik and Cache’.
    9. Tap on ‘Reboot System’.
  6. Voila! You’ve now successfully installed Android on your Geeksphone Keon device.

NOTES:-

  1. Make sure that the device has at least 50% battery power before commencing with the process.
  2. Since the Keon has only one soft touch button on it, it is mapped to the back functionality. If you want to use all three default Android soft-buttons, the easiest way to do that would be to install the “SoftKey Enabler” app from the Android Play Store.

SWITCHING BACK TO FIREFOX OS

If you now want to switch back to Firefox OS, all you need to do now is as follows:-

  1. Turn off your device.
  2. Press the power and the volume up buttons of the Keon at the same time to boot into the Team Win Recovery image.
  3. Tap ‘Restore’ and select the backup file created earlier during the Android setup, and confirm.
  4. Once the process completes, you should be able to use Firefox OS again! 🙂

DISCLAIMER: Please note that the steps I’ve mentioned here are what I followed to try out Android on a couple of my Keons. These steps involve flashing the device, hence involve a very real risk of ending up with a bricked [dead] phone. As such, go about the process at your own risk. I’m in no way liable for any unforeseen results coming out of this process.

References:

  1. http://sys.nodo21.org/geeksphone-keon-rom
  2. http://forum.geeksphone.com/index.php?topic=5672.msg60983#msg60983

 

Installing Firefox Nightly with Australis on Fedora 18 / 19 / 20


Australis Sceenshot

Screenshot of Firefox Nightly with Australis on Fedora 19

Are you a Fedora user who wants to check out the new Australis Theme for Firefox scheduled for release with Firefox 28? However, you are a bit apprehensive of letting go that stable release of Firefox in bundled within your Fedora installation by default, just in case something goes wrong with the nightly beta release.

If this is what defines your current dilemma, fear not. You can have both the stable as well as the nightly beta versions installed simultaneously in your computer in a few simple steps without any trouble at all! Here’s how to do it in case of Firefox Nightly version 28 [the latest release at the time of writing this post]:-

Step 1: Login as Super User:-

$su

Step 2: Get the nightly package:-

Go to http://nightly.mozilla.org to get the latest available nightly build for your system.

Screenshot of Firefox Nightly Webpage

Firefox Nightly Webpage

Alternatively, you can use the command line tool wget to directly download it via the command line as follows:-

#wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-28.0a1.en-US.linux-x86_64.tar.bz2

Step 3: Extract the contents of the tar ball as follows:-

#tar -xvf firefox-28.0a1.en-US.linux-x86_64.tar.bz2

Step 4: Rename the extracted directory to “nightly”:-

#mv firefox nightly

Step 4: Create an installation directory:-

#mkdir /opt/firefox

Step 5: Move the contents of the “nightly” directory to the installation directory:-

#mv /nightly /opt/firefox/nightly

Step 6: Create a Symbolic link for the Nightly installation:-

#ln -s /opt/firefox/nightly/firefox /usr/local/bin/nightly

Step 7:Run Firefox Nightly by typing the following within the command line or the alt+f2 launcher:-

For command line: $nightly

For alt+f2: nightly

Step 8: Relax and enjoy the Australis awesomeness! 🙂

%d bloggers like this: