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