Skip to content

Instantly share code, notes, and snippets.

View SalahHamza's full-sized avatar

Hamza SalahHamza

View GitHub Profile
@SalahHamza
SalahHamza / es2015.md
Last active September 10, 2018 00:52
Notes for ES2015+

ES2015+ syntax

Let and Const

Overview

When declaring a variable with the keyword var, the variable’s declaration gets hoisted. What does that mean?

Let’s say we declared a function like this:

@SalahHamza
SalahHamza / web_tooling_and_automation.md
Last active September 28, 2018 18:54
Web tooling and automation notes

Web Tooling and Automation

Common sense

When it comes to web tools, there are some scenarios that set you up for failure that should be avoided

  • Avoid the idea that you can build a better tool from scratch, chances are you can't but even if you could it won't be worth it.
  • Avoid diving into a new built tool because it's (let's say) X% faster. That X% is good and all, but a tool that is well supported by the community is pragmatic.
  • Avoid self contained tools that don't offer connection points.
  • Avoid, optimization that are not worth it, for example an opitimizaion that takes 4hours and it only cuts 1 second from a task you perform once in a day, you need to do it for 40 years to justify the investment.
@SalahHamza
SalahHamza / javascript_testing.md
Last active October 4, 2018 03:51
Javascript Unit Testing Notes

Javascript Testing

Testing is just validating an expectation about something

Unit Tests, test parts of an application or "units".A unit can be a function, an object, a module, basically everything self-contained that acts like a black box to the outside world. Very commonly, each units is tested individually and independently to ensure an application is running as expected.

Intro To Jasmine

Suites

@SalahHamza
SalahHamza / bash_commands.md
Last active November 6, 2018 00:59
Some useful bash commands

Useful bash/git Commands

  • Copy folders & exclude some subfolders
rsync -av --progress sourcefolder destinationfolder --exclude thefoldertoexclude

read more here

  • For a list of files to be pushed, run:
@SalahHamza
SalahHamza / version_controll.md
Last active December 13, 2022 06:55
Udacity's Version Control With Git course notes (ud123)

Version Control

What Is Version Control

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

There are two main types of version control system models:

  • the centralized model - all users connect to a central, master repository
  • the distributed model - each user has the entire repository on their computer
@SalahHamza
SalahHamza / writing_readmes.md
Last active November 6, 2018 01:48
udacity's Writing READMEs course Notes (ud777)

Writing READMEs

Anatomy of a README

When writing a README for a project, make sure to ask yourself these questions:

  • what steps need to be taken to get this code base up and running?
  • what should the user already have installed or configured?
  • what might they have a hard time understanding right away?

A Getting Started or Installation section is often added to help with initial setup that may need to happen before using your code.

@SalahHamza
SalahHamza / http_and_web_servers.md
Last active April 13, 2023 12:37
Udacity's HTTP & Web Servers course notes (ud303)

HTTP & Web Servers

These are the course notes for the HTTP & Web Servers Udacity course, some parts of the notes are taken from the book HTTP: The definitive Guide.

Requirements

Command Line:

You'll be using the command line a lot in this course. A lot of the instructions in this course will ask you to run commands on the terminal on your computer. You can use any common terminal program —

@SalahHamza
SalahHamza / chrome_extension.md
Last active November 19, 2018 13:20
Creating Chrome Extension Notes
@SalahHamza
SalahHamza / resources.md
Created November 23, 2018 13:29
Resources