Skip to content

Instantly share code, notes, and snippets.

View rasheedamir's full-sized avatar

Rasheed Amir rasheedamir

View GitHub Profile
@rasheedamir
rasheedamir / .gitconfig
Last active August 29, 2015 14:05 — forked from pksunkara/config
[user]
name = <Your Name>
email = <Your Email>
[core]
autocrlf = input
editor = vim
whitespace = fix,-indent-with-non-tab,trailing-space,cr-at-eol
excludesfile = ~/.gitignore
@rasheedamir
rasheedamir / Frontend Development.md
Last active August 29, 2015 14:06
Frontend Development

A problem we regularly face in this industry is an abundance of choice. We have a plethora of tools, frameworks, languages, abstractions and platforms. Choice is ultimately good for competition and innovation, however when faced with too many choices, we can feel paralysis. Rather than making a choice we feel frozen and alone with the indecision of having too many options in front of us. This isn’t necessarily an industry problem — it’s a human problem.

JavaScript has “Yet another framework syndrome” (how many solutions do we have for MVC, template rendering or data-binding?),

Front-end Choice Paralysis: http://addyosmani.com/blog/front-end-choice-paralysis/

Must Read Books!

Recommended Books!

@rasheedamir
rasheedamir / Testing
Last active August 29, 2015 14:06
Testing
Definition:
The methodology known as test-driven development (TDD) substantially changes the way traditional software development is done. This methodology wants you to write tests even before writing the application code. Instead of just using testing to verify your work after it’s done, TDD moves testing into the earlier application design phase. You should use these tests to clarify your ideas about what you are about to program. Here is the fundamental mantra of TDD:
* Write a test and make it fail.
* Make the test pass.
* Refactor.
* Repeat.
This technique is also referred to as red-green-refactor because IDE's and test runners use red to indicate failed tests and green to indicate those that pass.
@rasheedamir
rasheedamir / Backend Development.md
Last active August 29, 2015 14:06
Backend Development
@rasheedamir
rasheedamir / Jenkins CI on EC2.md
Last active August 29, 2015 14:06 — forked from jsuwo/BankAccount.java
Jenkins CI on EC2

The practice of automated continuous deployment ensures that the latest checked in code is deployed, running, and accessible to various roles within an organization.

Jenkins is a popular continuous integration server that is easy to install and configure

Continuous Delivery is about automation of the software development process. It combines four core disciplines:

  • continuous integration,
  • continuous testing,
  • continuous deployment and
  • continuous inspection
@rasheedamir
rasheedamir / Install SSL Certificate for Apache2.md
Created October 3, 2014 20:53
Install free “recognized” SSL certificates for Apache2
@rasheedamir
rasheedamir / httpd.conf
Last active August 29, 2015 14:07 — forked from bendo01/httpd.conf
#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
@rasheedamir
rasheedamir / Ubuntu - Install Tomcat.md
Last active August 29, 2015 14:10
Ubuntu - Install Tomcat
  • Step 1: Download Tomcat from here: http://tomcat.apache.org/download-70.cgi

  • Step 2: Right click and extract the file.

  • Step 3: Copy (or better Cut) the extracted folder (e.g. apache-tomcat-7.0.53) and paste it to ~/Tools/Tomcat

  • Step 4: Open Terminal and cd ~/Tools/Tomcat/apache-tomcat-7.0.53/conf

  • Step 5: nano tomcat-users.xml Add following at the end of the file before ""

@rasheedamir
rasheedamir / Site Maintenance Page
Last active August 29, 2015 14:10 — forked from pitch-gist/gist:2999707
Site Maintenance Page
<!doctype html>
<title>Site Maintenance</title>
<style>
body { text-align: center; padding: 150px; }
h1 { font-size: 50px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
article { display: block; text-align: left; width: 650px; margin: 0 auto; }
a { color: #dc8100; text-decoration: none; }
a:hover { color: #333; text-decoration: none; }
</style>
@rasheedamir
rasheedamir / Git.md
Last active August 29, 2015 14:11
Git

Workflow

Git Workflow

Pull Requests

Aside from isolating feature development, branches make it possible to discuss changes via pull requests. Once someone completes a feature, they don’t immediately merge it into upstream branch (i.e. develop/master). Instead, they push the feature branch to the central server and file a pull request asking to merge their additions into upstream (i.e. develop/master). This gives other developers an opportunity to review the changes before they become a part of the main codebase.

Code review is a major benefit of pull requests, but they’re actually designed to be a generic way to talk about code. You can think of pull requests as a discussion dedicated to a particular branch. This means that they can also be used much earlier in the development process. For example, if a developer needs help with a particular feature, all they have to do is file a pull request. Interested parties will be notified automaticall