Keywords
Keywords#
Table of Contents
- Keywords
 - CS Dictionary
- General
 - Web
 - Infrastructure
 
 
CS Dictionary#
General#
i368#
- genereally refers a 32bit processor
 - Intel 80368: First 32bit CPU
 
amd64#
- genereally refers a 64bit processor
 - 64bit CPU architecture invented by amd
 
CRUD#
- create, read, update, delete
 - SQL: insert, select, update, delete
 - HTTP: Used in RESTful API: PUT/POST, GET, PUT/POST/PATCH, DELETE
 - DDS: Data Distribution Service: write, read/take, write, despose
 
module#
- a file containing codes
 
package#
- collection of modules
 
library#
- A bunch of code which simplifies functions/methods for quick use.
 - to help you do things more quickly/easily
 - offer one area of functionality
 
api#
- application programming interface
 - the interface to the library
 - that you can call to ask it to do things for you
 
framework#
- is a big library or group of libraries that provides many services
 - supplies a complete base on which you build your own code
 
sdk#
- software development kit
 - is a library or group of libraries
 - with extra tool applications, data files and sample code
 
ide#
- integrated development environment
 - text editor with additional support for developing,compiling and debugging applications. e.g Eclipse, Visual Studio.
 
toolkit#
- is like an SDK
 - with more focus on providing tools and applications than on just code libraries
 
markup lang#
- Markup language is a paradigm/system to annotate a document in a way that is syntactically distinguishable from the text.
 - e.g. (X)HTML: (Extensible)Hypertext ML, XML: Extensible ML, (La)TeX: (Lamport)TeX
 
JSON#
- JavaScript object notation
 
YAML#
- stands for "YAML Ain't Markup Language"
 - YAML is to configuration what markdown is to markup
 - YAML is a human-readable data serialization language
 - commonly used for configuration files,
 - but could be used in many applications where 
- data is being stored (e.g. debugging output)
 - data is being transmitted (e.g. document headers).
 
 - Uses python style indentation, [], {}
 - Superset of JSON
 - YAML is case sensitive.
 - Can contain unix/linux commands
 
Web#
SaaS#
- Software as a service
 - Gmail, Google apps, Cisco WebEx
 
PaaS#
- Platform as a service
 - heroku, Travis CI, Circle CI
 
IaaS#
- Infrastructure as a service
 - AWS, MS Azure,
 
FaaS#
Function as a service
BaaS#
Backend as a service
CaaS#
Container as a service
CSS#
- cascading style sheet
 - a style sheet language
 - used for describing presentation of a document written in a markup language.
 
LESS#
- CSS preprocessor: scripting language that extends CSS
 - Leaner CSS
 - CSS Dry
 - Implemented in JavaScript
 - Extension: .less
 
Sass#
- CSS preprocessor: scripting language that extends CSS
 - Syntactically Awesome style sheet
 - CSS Dry
 - implemented in Ruby
 - Extension: .scss
 
CDN#
- Content Delivery Network
 - a system of distributed servers/network that deliver pages and other web content to a user
 - based on geographical locations of the user to provide highspeed delivery
 - Working:
- When a user request a page that is a part of CDN, then request goes to the central server and redirects the request to nearby server
 
 
RWD (Responsive Web Design)#
- A web designing approach
 - crafting site to provide an optimal viewing experience
 - easy reading and navigation with a minimum of resizing, panning, and scrolling
 - across a wide range of device (from mobile phones, tablets to desktop screens)
 
Mobile First#
- A paradigm for creating UX
 - design UX for mobile devices first than other
 - because users prefer mobiles nowadays
 
UI Design/Front-end Framework#
- eg. Bootstrap, Foundation, Pure
 - includes CSS, HTML for typography, icons, forms, buttons, tables, layout grids, navigation.
 - includes JS also
 - support for responsive
 
JS Framework#
- e.g. AngularJS, ReactJS,
 - JavaScript framework for building CRUD centric AJAX style web applications
 - features 2-way data binding, deep linking, routing, transition animations and a lot lot more
 
HTTP#
- Hyper text transfer protocol
 - base protocol the internet is built on
 - a request and response system
 - client sends a request to endpoint and endpoint responds
 - e.g. a browser accessing a web server, an app accessing an API
 
HTTP Request Methods#
Used for sending and retrieving HTML form data.
- GET
- Default
 - sends request by enclosing all the data into url string
 - The request/response have HTTP header only
 - Parameters are visible
 - Parameters remains in history
 - Hackable
 - Not Secure
 - Restriction in data length, 2048 chars, depends on browser
 - can be cached
 - Should be used for case when state of system/data is not going to be changed
 - unsuitable for sending password
 
 - POST
- sends request by enclosing all the data into
 - The request/response have HTTP header & HTTP body
 - HTTP body contains message in URLEncoded format
 
 - PUT
 - DELETE
 
CSRF : Cross Site Request Forgery#
- A Cross-site request forgery hole is when a malicious site can cause a visitor's browser to make a request to your server that causes a change on the server. The server thinks that because the request comes with the user's cookies, the user wanted to submit that form.
 
Web Server#
- a software, not a machine which stores code
 - recieves requests from client/browser
 - returns response, but doesn't create response
 - so, it talks to web application
 
Web Apllication#
- creates response based on urls
 - passes response to web server
 
WSGI: Web Server Gateway Interface#
- an interface between web server & application
 - contains some statements, set of rules
 - its not a software/library/framework
 - WSGI compliant server will able to communicate with a WSGI compliant web app
 - in WSGI, WSGI application has to be callable & it needs o be given to web server, so web server can call web application whenever it receives a request
 
Web Service#
- a piece of software available over internet
 - and can be ustilized by some other softwares
 - using standard messaging system XML.
 
Web API#
- Application Programming Interface
 - In web world its synonym to 'web services'
 - used by client apps to retrieve and update data
 
Appication Without web API#
Appication Without web API#
- Source: https://knpuniversity.com/screencast/rest/rest https://blogs.msdn.microsoft.com/martinkearn/2015/01/05/introduction-to-rest-and-net-web-api/ http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Infrastructure#
(Nginx, Gunicorn, RabbitMQ, Celery, Redis, memcached, apache, WSGI) (load balancer, web accelerator, cache, database, task queue, etc.)
Nginx:#
- An HTTP and Reverse Proxy Server
 
Gunicorn:#
- A WSGI HTTP server
 
Celery:#
- A tool for asynchronous processing with Python
 
Redis:#
- A message broker
 
Supervisor:#
- A process control system for unix