diff --git a/docs/ai/data-science/big-data/data-preprocessing.md b/docs/ai/data-science/big-data/data-preprocessing.md index 6931c8648d0..3cbe88e9456 100755 --- a/docs/ai/data-science/big-data/data-preprocessing.md +++ b/docs/ai/data-science/big-data/data-preprocessing.md @@ -5,8 +5,8 @@ 1. Aggregation 2. Attribute Transformation 3. Dimensionality Reduction - - Feature creation - - Feature subset selection + - Feature creation + - Feature subset selection 4. Discretization and Binarization 5. Sampling @@ -23,7 +23,7 @@ ### Discretization -![image](media/Data-Preprocessing-image1.jpg) +![image](../../../media/Data-Preprocessing-image1.jpg) ### Attribute Transformation @@ -48,39 +48,39 @@ p and q are the attribute values for two data objects -![image](media/Data-Preprocessing-image2.jpg) +![image](../../../media/Data-Preprocessing-image2.jpg) ### Euclidean Distance -![image](media/Data-Preprocessing-image3.jpg) +![image](../../../media/Data-Preprocessing-image3.jpg) - Where n is the number of dimensions (attributes) and p~k~ and q~k~ are, respectively, the k^th^ attributes (components) or data objects p and q. - Standardization is necessary, if scales differ ### Mahalanobis Distance -![image](media/Data-Preprocessing-image4.jpg) +![image](../../../media/Data-Preprocessing-image4.jpg) - For red points, the Euclidean distance is 14.7, Mahalanobis distance is 6 ### Cosine Similarity -![image](media/Data-Preprocessing-image5.jpg) +![image](../../../media/Data-Preprocessing-image5.jpg) ### Similarity Between Binary Vectors -![image](media/Data-Preprocessing-image6.jpg) +![image](../../../media/Data-Preprocessing-image6.jpg) ## Correlation - Correlation measures the linear relationship between objects - To compute correlation, we standardize data objects, p and q, and then take their dot product -![image](media/Data-Preprocessing-image7.jpg) +![image](../../../media/Data-Preprocessing-image7.jpg) ### Visually Evaluating Correlation -![image](media/Data-Preprocessing-image8.jpg) +![image](../../../media/Data-Preprocessing-image8.jpg) - Scatter plots showing the similarity from -1 to 1 diff --git a/docs/ai/data-science/big-data/data-quality.md b/docs/ai/data-science/big-data/data-quality.md index 8129adf1417..29f7c82919e 100644 --- a/docs/ai/data-science/big-data/data-quality.md +++ b/docs/ai/data-science/big-data/data-quality.md @@ -35,4 +35,4 @@ - Examples: - Same person with multiple email addresses - Data cleaning - - Process of deaing with duplicate data issues \ No newline at end of file + - Process of deaing with duplicate data issues diff --git a/docs/computer-science/courses/365-ds-advanced-stastistical-methods-in-python.md b/docs/computer-science/courses/365-ds-advanced-stastistical-methods-in-python.md index 111acde51d5..494040c4f67 100755 --- a/docs/computer-science/courses/365-ds-advanced-stastistical-methods-in-python.md +++ b/docs/computer-science/courses/365-ds-advanced-stastistical-methods-in-python.md @@ -199,4 +199,5 @@ Types of Clustering (3:39) Dendrogram (5:21) Heatmaps (4:34) + diff --git a/docs/computer-science/courses/self-driving-nanodegree.md b/docs/computer-science/courses/self-driving-nanodegree.md index 2caaadff8e4..07b4108896c 100755 --- a/docs/computer-science/courses/self-driving-nanodegree.md +++ b/docs/computer-science/courses/self-driving-nanodegree.md @@ -83,6 +83,7 @@ Tools - Project:[Traffic Sign Classifier](https://classroom.udacity.com/nanodegrees/nd013/parts/edf28735-efc1-4b99-8fbb-ba9c432239c8/modules/6b6c37bc-13a5-47c7-88ed-eb1fce9789a0/lessons/7ee8d0d4-561e-4101-8615-66e0ab8ea8c8/project) - Project:[Behavioral Cloning](https://classroom.udacity.com/nanodegrees/nd013/parts/edf28735-efc1-4b99-8fbb-ba9c432239c8/modules/6b6c37bc-13a5-47c7-88ed-eb1fce9789a0/lessons/3fc8dd70-23b3-4f49-86eb-a8707f71f8dd/project) - Project:[Extended Kalman Filters](https://classroom.udacity.com/nanodegrees/nd013/parts/edf28735-efc1-4b99-8fbb-ba9c432239c8/modules/49d8fda9-69c7-4f10-aa18-dc3a2d790cbe/lessons/3feb3671-6252-4c25-adf0-e963af4d9d4a/project) + [Comic book panel segmentation • Max Halford](https://maxhalford.github.io/blog/comic-book-panel-segmentation/) diff --git a/docs/computer-science/interview-question/system-design-twitter.md b/docs/computer-science/interview-question/system-design-twitter.md index 0744ab68c42..450878752b2 100755 --- a/docs/computer-science/interview-question/system-design-twitter.md +++ b/docs/computer-science/interview-question/system-design-twitter.md @@ -9,27 +9,20 @@ ## Core Features 1. Tweeting - 2. Timeline - User (Own tweets in profile) - Home (All tweets from people you follow) 3. Following - 4. Full Text Search - 5. HashTags - 6. Push Notifications - 7. Text Notifications - 8. How to incorporate Advertisments ## Database 1. Tweets database - 2. Users database Problem with this structure is that to get a tweet corresponding to user, if would take a lot of time because there would be a big select query. (Every time we open twitter home statement) diff --git a/docs/computer-science/operating-system/basic-computer-organization.md b/docs/computer-science/operating-system/basic-computer-organization.md index cc34cbce303..abc9779850c 100755 --- a/docs/computer-science/operating-system/basic-computer-organization.md +++ b/docs/computer-science/operating-system/basic-computer-organization.md @@ -139,6 +139,7 @@ Branch prediction is not the same as [branch target prediction](https://en.wikip - [1.14 Prediction of function returns](https://en.wikipedia.org/wiki/Branch_predictor#Prediction_of_function_returns) - [1.15 Overriding branch prediction](https://en.wikipedia.org/wiki/Branch_predictor#Overriding_branch_prediction) - [1.16 Neural branch prediction](https://en.wikipedia.org/wiki/Branch_predictor#Neural_branch_prediction) + ## Application Binary Interface (ABI) diff --git a/docs/computer-science/operating-system/concurrency-threading.md b/docs/computer-science/operating-system/concurrency-threading.md index 5317005e334..88361f21ee1 100755 --- a/docs/computer-science/operating-system/concurrency-threading.md +++ b/docs/computer-science/operating-system/concurrency-threading.md @@ -258,12 +258,10 @@ Atomic instruction that compares contents of a memory location M to a given valu -## See also - -Python > Advanced > Concurrency - ## References +[Concurrency](python/advanced/concurrency.md) + [https://schneems.com/2017/10/23/wtf-is-a-thread/#](https://schneems.com/2017/10/23/wtf-is-a-thread/) Dijkstra's Guarded Commands - diff --git a/docs/computer-science/programming-concepts/type-systems.md b/docs/computer-science/programming-concepts/type-systems.md index 523e279a361..87ddd1f3e8d 100755 --- a/docs/computer-science/programming-concepts/type-systems.md +++ b/docs/computer-science/programming-concepts/type-systems.md @@ -93,16 +93,12 @@ As opposed to strong typed languages, weak typed languages are those in which va Thus, Python is dynamic typed and strong typed; Java is static typed and strong typed; PHP is dynamic typed and weak typed; C is static typed and weak typed (owing to its casting ability). -## See Also - -- Programming Styles > Duck typing - ## Others - Algebraic Data Types (ADT) ## References -[Functional Programming: Type Systems](https://www.youtube.com/watch?v=hy1wjkcIBCU) +Programming Styles > Duck typing -![image](../../media/Type-Systems-image2.jpg) +[Functional Programming: Type Systems](https://www.youtube.com/watch?v=hy1wjkcIBCU) diff --git a/docs/computer-science/security/cryptography/public-key-cryptography.md b/docs/computer-science/security/cryptography/public-key-cryptography.md index ed84fc1c96c..eb38bf39e0c 100755 --- a/docs/computer-science/security/cryptography/public-key-cryptography.md +++ b/docs/computer-science/security/cryptography/public-key-cryptography.md @@ -15,5 +15,6 @@ In a public key encryption system, any person can encrypt a message using the re ![image](../../../media/Cryptography-Intro_Public-key-cryptography-image2.jpg) ![image](../../../media/Cryptography-Intro_Public-key-cryptography-image3.jpg) + ![image](../../../media/Cryptography-Intro_Public-key-cryptography-image4.jpg) diff --git a/docs/computer-science/security/vault.md b/docs/computer-science/security/vault.md index 1e70c567cd5..ee6faf27137 100755 --- a/docs/computer-science/security/vault.md +++ b/docs/computer-science/security/vault.md @@ -197,6 +197,7 @@ Vault's [database secrets engine](https://www.vaultproject.io/docs/secrets/datab This reduces the manual tasks performed by the database administrator and makes the database access more efficient and secure. ![image](../../media/Vault-image7.jpg) + diff --git a/docs/computer-science/system-design/api-gateway.md b/docs/computer-science/system-design/api-gateway.md index fec7bd3be99..99d735c543e 100755 --- a/docs/computer-science/system-design/api-gateway.md +++ b/docs/computer-science/system-design/api-gateway.md @@ -101,6 +101,7 @@ Key features include: ![image](../../media/API-Gateway-image1.jpg) + Rate Limiting Service diff --git a/docs/computer-science/system-design/event-driven-architecture.md b/docs/computer-science/system-design/event-driven-architecture.md index 9bbe0dec134..a4b626d6845 100755 --- a/docs/computer-science/system-design/event-driven-architecture.md +++ b/docs/computer-science/system-design/event-driven-architecture.md @@ -40,8 +40,8 @@ Replaying all the events from the logs can give any state of the system at any t - Example - 1. Version control - git - 2. Accounting ledgers + - Can be used for - Audit - Debugging @@ -49,7 +49,7 @@ Replaying all the events from the logs can give any state of the system at any t - Alternative State - Memory Image -4. CQRS - Command and Query Responsibility Segregation +2. CQRS - Command and Query Responsibility Segregation CQRS is a fancy name for an architecture that uses different data models to represent read and write operations. At its heart is the notion that you can use a different model to update information than the model you use to read information. @@ -58,7 +58,7 @@ At its heart is the notion that you can use a different model to update informat Event-driven architecture (EDA) means constructing your system as a series of commands and/or events. A user submits an online form to make a purchase: that's a command. The items in stock are reserved: that's an event. A confirmation is sent to the user: that's an event. The concept is very simple. Everything in our system is either a command or an event. Commands lead to events and events may lead to new commands and so on. -## Event Sourcing is a style of application design where state changes are logged as a time-ordered sequence of records +**Event Sourcing is a style of application design where state changes are logged as a time-ordered sequence of records** ## Publisher subscriber rule @@ -71,6 +71,7 @@ Event-driven architecture (EDA) means constructing your system as a series of co - A **stream** provides immutable data. It supports only inserting (appending) new events, whereas existing events cannot be changed. Streams are persistent, durable, and fault tolerant. Events in a stream can be keyed, and you can have many events for one key, like "all of Bob's payments." If you squint a bit, you could consider a stream to be like a table in a relational database (RDBMS) that has no unique key constraint and that is append only. - A **table** provides mutable data. New events - rows - can be inserted, and existing rows can be updated and deleted. Here, an event's key aka row key identifies which row is being mutated. Like streams, tables are persistent, durable, and fault tolerant. Today, a table behaves much like an RDBMS materialized view because it is being changed automatically as soon as any of its input streams or tables change, rather than letting you directly run insert, update, or delete operations against it. + | | **Stream** | **Table** | |-------------------------------------------|------------|-------------| | First event with key bob arrives | Insert | Insert | @@ -88,6 +89,7 @@ Not withstanding their differences, we can observe that there is a close relatio In fact, a table is fully defined by its underlying change stream. If you have ever worked with a relational database such as Oracle or MySQL, these change streams exist there, too! Here, however, they are a hidden implementation detail - albeit an absolutely critical one - and have names like [redo log](https://docs.oracle.com/cd/B28359_01/server.111/b28310/onlineredo001.htm#ADMIN11302) or [binary log](https://dev.mysql.com/doc/internals/en/binary-log-overview.html). In event streaming, the redo log is much more than an implementation detail. It's a first-class entity: a stream. We can turn streams into tables and tables into streams, which is one reason why we say that event streaming and Kafka are [turning the database inside out](https://www.confluent.io/blog/turning-the-database-inside-out-with-apache-samza/). ![image](../../media/Event-driven-architecture-image3.jpg) + ![image](../../media/Event-driven-architecture-image4.jpg) @@ -179,8 +181,11 @@ Task queues manage background work that must be executed outside the usual HTTP ## Why are task queues necessary? Tasks are handled asynchronously either because they are not initiated by an HTTP request or because they are long-running jobs that would dramatically reduce the performance of an HTTP response. + For example, a web application could poll the GitHub API every 10 minutes to collect the names of the top 100 starred repositories. A task queue would handle invoking code to call the GitHub API, process the results and store them in a persistent database for later use. + Another example is when a database query would take too long during the HTTP request-response cycle. The query could be performed in the background on a fixed interval with the results stored in the database. When an HTTP request comes in that needs those results a query would simply fetch the precalculated result instead of re-executing the longer query. This precalculation scenario is a form of [caching](https://www.fullstackpython.com/caching.html) enabled by task queues. + Other types of jobs for task queues include - spreading out large numbers of independent database inserts over time instead of inserting everything at once @@ -193,6 +198,7 @@ Other types of jobs for task queues include Message oriented middleware (MOM) refers to the software infrastructure supporting sending and receiving messages between distributed systems. AMQP and MQTT are the two most relevant protocols in this context. They are extensively used for exchanging messages since they provide an abstraction of the different participating system entities, alleviating their coordination and simplifying the communication programming details. The basic idea of MOM is that communication takes place by adding messages to distributed queues, and by getting messages from those queues. Based on the model of Message Oriented Middleware, many protocols have been developed, e.g. DDS, STOMP, XMPP. The two most widely used proposals are: the Advanced Message Queuing Protocol (AMQP) and the Message Queuing Telemetry Transport (MQTT). + See also: - AMQP diff --git a/docs/computer-science/system-design/microservice-architecture/design-patterns.md b/docs/computer-science/system-design/microservice-architecture/design-patterns.md index fffc3c8f439..25e69f2282f 100755 --- a/docs/computer-science/system-design/microservice-architecture/design-patterns.md +++ b/docs/computer-science/system-design/microservice-architecture/design-patterns.md @@ -46,6 +46,7 @@ Functional decomposition is a term that engineers use to describea set of steps - UI patterns: - [Server-side page fragment composition](https://microservices.io/patterns/ui/server-side-page-fragment-composition.html) - [Client-side UI composition](https://microservices.io/patterns/ui/client-side-ui-composition.html) + ## Catalog of patterns diff --git a/docs/computer-science/testing/load-performance-testing-qa-tools.md b/docs/computer-science/testing/load-performance-testing-qa-tools.md index 9a8adeca7ba..c672dec1364 100755 --- a/docs/computer-science/testing/load-performance-testing-qa-tools.md +++ b/docs/computer-science/testing/load-performance-testing-qa-tools.md @@ -86,13 +86,9 @@ Goad takes full advantage of the power of Amazon Lambdas for distributed load te abis a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. -## See Also - -Locust - ## HTTP Load Testing Tools -- [wrk](https://github.com/wg/wrk) +### - [wrk](https://github.com/wg/wrk) ```bash wrk --duration 20s --threads 10 --connections 200 [URL] @@ -102,7 +98,7 @@ wrk -c 5 -t 5 -d 99999 -H "Connection: Close" wrk -c 5 -t 5 -d 99999 -H "Connection: Close" ``` -- **Apache Bench - [Apache HTTP Server Benchmarking Tool](https://httpd.apache.org/docs/2.4/programs/ab.html) (for percentiles)** +### - **Apache Bench - [Apache HTTP Server Benchmarking Tool](https://httpd.apache.org/docs/2.4/programs/ab.html) (for percentiles)** ```bash apt install apache2 @@ -129,7 +125,7 @@ ab -c 50 -n 5000 -s 90 -p data.json -T application/json -rk @@ -145,10 +141,11 @@ hey ``` -- +### - + Open source load testing tool and SaaS for engineering teams -- [**https://fortio.org/**](https://fortio.org/) +### - [**https://fortio.org/**](https://fortio.org/) Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. Fortio runs at a specified query per second (qps) and records an histogram of execution time and calculates percentiles (e.g. p99 ie the response time such as 99% of the requests take less than that number (in seconds, SI unit)). It can run for a set duration, for a fixed number of calls, or until interrupted (at a constant target QPS, or max speed/load per connection/thread). @@ -166,21 +163,19 @@ Fortio runs at a specified query per second (qps) and records an histogram of ex -## References - - - ## Locust Locust is an easy-to-use, distributed, user load testing tool. It is intended for load-testing websites (or other systems) and figuring out how many concurrent users a system can handle. + Locust is a scalable load testing framework written in Python + Locust is completely event-based, and therefore it's possible to support thousands of concurrent users on a single machine. In contrast to many other event-based apps it doesn't use callbacks. Instead it uses light-weight processes, through [gevent](http://www.gevent.org/). Each locust swarming your site is actually running inside its own process (or greenlet, to be correct). This allows you to write very expressive scenarios in Python without complicating your code with callbacks. -## Running Locust Distributed +### Running Locust Distributed You start one instance of Locust in master mode using the--masterflag. This is the instance that will be running Locust's web interface where you start the test and see live statistics. The master node doesn't simulate any users itself. Instead you have to start one or -most likely - multiple slave Locust nodes using the--slaveflag, together with the--master-host(to specify the IP/hostname of the master node). -## Commands +### Commands ```bash locust -f tasks.py --host localhost:5000 @@ -271,3 +266,5 @@ Subscribe ## Others + + diff --git a/docs/computer-science/testing/terms.md b/docs/computer-science/testing/terms.md index f3e035ad7bc..2ef08df5893 100755 --- a/docs/computer-science/testing/terms.md +++ b/docs/computer-science/testing/terms.md @@ -328,6 +328,7 @@ In order to keep a system secure, it is advisable to conduct a pentest on a regu - [Web Application Testing](https://www.tutorialspoint.com/software_testing_dictionary/web_application_testing.htm) - [White box Testing](https://www.tutorialspoint.com/software_testing_dictionary/white_box_testing.htm) - [Workflow Testing](https://www.tutorialspoint.com/software_testing_dictionary/workflow_testing.htm) + diff --git a/docs/data-structures/graph/digraphs-directed-graphs.md b/docs/data-structures/graph/digraphs-directed-graphs.md index 1ab86fe6817..3ca82c7c2be 100755 --- a/docs/data-structures/graph/digraphs-directed-graphs.md +++ b/docs/data-structures/graph/digraphs-directed-graphs.md @@ -40,4 +40,4 @@ We use adjacency-list representation for representing a weighted graph, where ea ## See also -- Topological Sort +[Topological Sort](algorithms/graphtheory/topological-sort-algorithm.md) diff --git a/docs/data-structures/hashtable/count-min-sketch.md b/docs/data-structures/hashtable/count-min-sketch.md index a8487016097..7abc2a7e444 100755 --- a/docs/data-structures/hashtable/count-min-sketch.md +++ b/docs/data-structures/hashtable/count-min-sketch.md @@ -5,4 +5,5 @@ Count-min sketch is a probabilitstic data strucure that is used to count the fre Count-Min sketch is a probabilistic sub-linear space streaming algorithm. It is somewhat similar to bloom filter. The main difference is that bloom filter represents a set as a bitmap, while Count-Min sketch represents a multi-set which keeps a frequency distribution summary. ![image](../../media/Count-min-Sketch-image1.jpg) + diff --git a/docs/data-structures/hashtable/hashing-techniques.md b/docs/data-structures/hashtable/hashing-techniques.md index 3a2995d54b8..75efff5edd9 100755 --- a/docs/data-structures/hashtable/hashing-techniques.md +++ b/docs/data-structures/hashtable/hashing-techniques.md @@ -74,6 +74,7 @@ A common optimization (so common in fact, that it is almost to be considered a p Example:A coalescing hash table array with *M* = 10 and *N* = 3 ![image](../../media/Hashing-Techniques-image5.jpg) + ### Robin hood hashing diff --git a/docs/databases/nosql-databases/aws-dynamodb/working.md b/docs/databases/nosql-databases/aws-dynamodb/working.md index d1b7ef22a5e..33a8ae37980 100755 --- a/docs/databases/nosql-databases/aws-dynamodb/working.md +++ b/docs/databases/nosql-databases/aws-dynamodb/working.md @@ -39,8 +39,10 @@ Replicated write capacity unit (rWCU)- One**read capacity unit**represents one s - One**write capacity unit**represents one write per second for items up to 1 KB in size. If you need to write an item that is larger than 1 KB, DynamoDB will need to consume additional write capacity units. The total number of write capacity units required depends on the item size. ![image](../../../media/AWS-DynamoDB_Working-image1.jpg)- Secondary Indexes - - Local secondary indexes - - Global secondary indexes (asynchronous) + +- Local secondary indexes +- Global secondary indexes (asynchronous) + ## NoSQL Data Modeling diff --git a/docs/databases/nosql-databases/cassandra/working.md b/docs/databases/nosql-databases/cassandra/working.md index 5cf06602d31..31e13e0b688 100755 --- a/docs/databases/nosql-databases/cassandra/working.md +++ b/docs/databases/nosql-databases/cassandra/working.md @@ -54,6 +54,7 @@ - Consistency < All performs read repair in background (read_repair_chance -default 10% of reads) ![image](../../../media/Cassandra_Working-image2.jpg)**Compaction** + - Data updates accumulate over time and SSTables and logs need to be compacted - The process of compaction merges SSTables, i.e., by merging updates for a key - Run periodically and locally at each server- TimeWindowCompactionStrategy diff --git a/docs/databases/nosql-databases/druid/architecture.md b/docs/databases/nosql-databases/druid/architecture.md index 0aab05e304c..6312fcca305 100755 --- a/docs/databases/nosql-databases/druid/architecture.md +++ b/docs/databases/nosql-databases/druid/architecture.md @@ -25,6 +25,7 @@ Druid's process types are: - Returning supervisor and task status to callers- [**Router**](http://druid.io/docs/latest/development/router.html) processes areoptionalprocesses that provide a unified API gateway in front of Druid Brokers, Overlords, and Coordinators. They are optional since you can also simply contact the Druid Brokers, Overlords, and Coordinators directly. ![image](../../../media/Druid_Architecture-image1.jpg) + Druid processes can be deployed individually (one per physical server, virtual server, or container) or can be colocated on shared servers. One common colocation plan is a three-type plan: diff --git a/docs/databases/nosql-databases/redis/redis-data-types.md b/docs/databases/nosql-databases/redis/redis-data-types.md index 1c43ceafbae..21f0109be46 100755 --- a/docs/databases/nosql-databases/redis/redis-data-types.md +++ b/docs/databases/nosql-databases/redis/redis-data-types.md @@ -350,6 +350,7 @@ Redis is also able to perform the union of HLLs Another way to reduce latency associated with high command volume is to pipeline several commands together so that you reduce latency due to network usage. Rather than sending 10 client commands to the Redis server individually and taking the network latency hit 10 times, pipelining the commands will send them all at once and pay the network latency cost only once. Pipelining commands is supported by the Redis server and by most clients. This is only beneficial if network latency is significantly larger than your instance's ![image](../../../media/Redis_Redis-Data-Types-image1.jpg) + ## Redis commands with high time complexity diff --git a/docs/databases/others/etl-extract-transform-load.md b/docs/databases/others/etl-extract-transform-load.md index 847f413afc0..13531a38cef 100755 --- a/docs/databases/others/etl-extract-transform-load.md +++ b/docs/databases/others/etl-extract-transform-load.md @@ -8,4 +8,5 @@ In [computing](https://en.wikipedia.org/wiki/Computing), **extract, transform, l Since the data extraction takes time, it is common to execute the three phases in parallel. While the data is being extracted, another transformation process executes while processing the data already received and prepares it for loading while the data loading begins without waiting for the completion of the previous phases. ![image](../../media/ETL-(Extract-Transform-Load)-image1.jpg) + diff --git a/docs/databases/sql-databases/aws-redshift/documentation.md b/docs/databases/sql-databases/aws-redshift/documentation.md index d11e3dda5c1..09dbdc65ca2 100755 --- a/docs/databases/sql-databases/aws-redshift/documentation.md +++ b/docs/databases/sql-databases/aws-redshift/documentation.md @@ -110,6 +110,7 @@ Interleaved sort gives equal weight to each column in the Redshift sort keys. As - Less then 10000 rows, don't sort, since all will be in a single zone map + - To have Amazon Redshift choose the appropriate sort order, specifyAUTOfor the sort key. - If recent data is queried most frequently, specify the timestamp column as the leading column for the sort key. Queries are more efficient because they can skip entire blocks that fall outside the time range. diff --git a/docs/mathematics/calculus/essence-of-calculus-3blue1brown.md b/docs/mathematics/calculus/essence-of-calculus-3blue1brown.md index c0b236610e7..afc24d1d933 100755 --- a/docs/mathematics/calculus/essence-of-calculus-3blue1brown.md +++ b/docs/mathematics/calculus/essence-of-calculus-3blue1brown.md @@ -257,5 +257,3 @@ Finding the average of a continuous thing. ## References [Essence of calculus](https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr) - -![image](../../media/Essence-of-Calculus-3Blue1Brown-image89.jpg) diff --git a/docs/mathematics/calculus/gradient.md b/docs/mathematics/calculus/gradient.md index b238d6d461e..c186c1a77a9 100755 --- a/docs/mathematics/calculus/gradient.md +++ b/docs/mathematics/calculus/gradient.md @@ -1,16 +1,11 @@ # Gradient In [mathematics](https://en.wikipedia.org/wiki/Mathematics), the **gradient** is a multi-variable generalization of the [derivative](https://en.wikipedia.org/wiki/Derivative). While a derivative can be defined on functions of a single variable, for [functions of several variables](https://en.wikipedia.org/wiki/Function_of_several_variables), the gradient takes its place. The gradient is a [vector-valued function](https://en.wikipedia.org/wiki/Vector-valued_function), as opposed to a derivative, which is [scalar-valued](https://en.wikipedia.org/wiki/Scalar-valued_function). -Like the derivative, the gradient represents the [slope](https://en.wikipedia.org/wiki/Slope) of the [tangent](https://en.wikipedia.org/wiki/Tangent) of the [graph of the function](https://en.wikipedia.org/wiki/Graph_of_a_function). More precisely, the gradient points in the direction of the greatest rate of increase of the function, and its [magnitude](https://en.wikipedia.org/wiki/Magnitude_(mathematics)) is the slope of the graph in that direction. The components of the gradient in coordinates are the coefficients of the variables in the equation of the [tangent space](https://en.wikipedia.org/wiki/Tangent_space) to the graph. This characterizing property of the gradient allows it to be defined independently of a choice of coordinate system, as a [vector field](https://en.wikipedia.org/wiki/Vector_field) whose components in a coordinate system will transform when going from one coordinate system to another. + +Like the derivative, the gradient represents the [slope](https://en.wikipedia.org/wiki/Slope) of the [tangent](https://en.wikipedia.org/wiki/Tangent) of the [graph of the function](https://en.wikipedia.org/wiki/Graph_of_a_function). More precisely, the gradient points in the direction of the greatest rate of increase of the function, and its [magnitude](https://en.wikipedia.org/wiki/Magnitude_(mathematics)) is the slope of the graph in that direction. The components of the gradient in coordinates are the coefficients of the variables in the equation of the [tangent space](https://en.wikipedia.org/wiki/Tangent_space) to the graph. This characterising property of the gradient allows it to be defined independently of a choice of coordinate system, as a [vector field](https://en.wikipedia.org/wiki/Vector_field) whose components in a coordinate system will transform when going from one coordinate system to another. ![image](../../media/Gradient-image1.jpg) In the above two images, the values of the function are represented in black and white, black representing higher values, and its corresponding gradient is represented by blue arrows. -## See also - -- Computer Scient > Others > Computer Vision > Image Gradient - -## References - diff --git a/docs/mathematics/calculus/product-rule-for-derivatives.md b/docs/mathematics/calculus/product-rule-for-derivatives.md index 1b9b4b78b59..a88f9683342 100755 --- a/docs/mathematics/calculus/product-rule-for-derivatives.md +++ b/docs/mathematics/calculus/product-rule-for-derivatives.md @@ -3,6 +3,7 @@ ![image](../../media/Product-Rule-for-Derivatives-image1.jpg) Fifth is *function composition* + ![image](../../media/Product-Rule-for-Derivatives-image2.jpg) 3. Product Rule @@ -22,5 +23,3 @@ Fifth is *function composition* ## References [Product Rule for Derivatives (Calculus)](https://www.youtube.com/watch?v=8Qw2aPjqW9c) - -![image](../../media/Product-Rule-for-Derivatives-image9.jpg) diff --git a/docs/mathematics/calculus/quotient-rule.md b/docs/mathematics/calculus/quotient-rule.md index a9046464946..a796b2bfbec 100755 --- a/docs/mathematics/calculus/quotient-rule.md +++ b/docs/mathematics/calculus/quotient-rule.md @@ -9,5 +9,3 @@ ## References [The Quotient Rule (Calculus)](https://www.youtube.com/watch?v=OPjN7Gvb4-8) - -![image](../../media/Quotient-Rule-image4.jpg) diff --git a/docs/mathematics/calculus/tangent-line-and-the-derivative.md b/docs/mathematics/calculus/tangent-line-and-the-derivative.md index 78da7fdff68..4eeb079f5da 100755 --- a/docs/mathematics/calculus/tangent-line-and-the-derivative.md +++ b/docs/mathematics/calculus/tangent-line-and-the-derivative.md @@ -48,5 +48,3 @@ A line that touches the curve at two points. ## References [The Tangent Line and the Derivative (Calculus)](https://www.youtube.com/watch?v=O_cwTAfjgAQ) - -![image](../../media/Tangent-Line-and-the-Derivative-image13.jpg) diff --git a/docs/mathematics/general/gcd-lcm.md b/docs/mathematics/general/gcd-lcm.md index e28f15d88b1..98add4a4a15 100755 --- a/docs/mathematics/general/gcd-lcm.md +++ b/docs/mathematics/general/gcd-lcm.md @@ -3,6 +3,7 @@ ## GCD Greatest Common Divisor (GCD) of two integers A and B is the **largest integer that divides both A and B.** + ### Synonyms 1. Greatest Common Divisor (GCD) @@ -31,11 +32,11 @@ The **Euclidean algorithm**, or **Euclid's algorithm**, is an efficient method f ```python def gcd(x, y): - - while (y): - x, y = y, x%y - - return x + + while (y): + x, y = y, x%y + + return x ``` ### Applications @@ -72,7 +73,7 @@ math.lcm(6,9,10) # using gcd def lcm(a,b): - return (a // gcd(a,b))* b + return (a // gcd(a,b))* b ``` [Program to find LCM of two numbers - GeeksforGeeks](https://www.geeksforgeeks.org/program-to-find-lcm-of-two-numbers/) diff --git a/docs/mathematics/general/logic.md b/docs/mathematics/general/logic.md index acb7a82e7c9..97c38800341 100755 --- a/docs/mathematics/general/logic.md +++ b/docs/mathematics/general/logic.md @@ -100,6 +100,7 @@ Gxyz - 3 slots (x, y, z), Valency - 3 ![image](../../media/Logic-image15.jpg) ![image](../../media/Logic-image16.jpg)# Logical Operators/Connectives + - **Logical conjuction** - join symbols with "and" (. & Λ) - conjuction with statements p.q @@ -209,5 +210,3 @@ This only supports the conclusion *It's tragic.* Not that A is C. ## References [Logic & Language - a short introduction to logic](https://www.youtube.com/playlist?list=PL48654681292CF456) - -![image](../../media/Logic-image38.jpg) diff --git a/docs/mathematics/general/pie.md b/docs/mathematics/general/pie.md index 8b0f5a56454..8b5b75fd5f0 100755 --- a/docs/mathematics/general/pie.md +++ b/docs/mathematics/general/pie.md @@ -4,7 +4,4 @@ Pie is the ratio of circumference of a circle to its diameter [What is Pi?](https://www.youtube.com/watch?v=DLcjed7qy4I) -![image](../../media/Pie-image1.jpg) [Area of a circle, how to get the formula.](https://www.youtube.com/watch?v=YokKp3pwVFc) - -![image](../../media/Pie-image2.jpg) diff --git a/docs/media/Essence-of-Calculus-3Blue1Brown-image89.jpg b/docs/media/Essence-of-Calculus-3Blue1Brown-image89.jpg deleted file mode 100755 index b15a20f7e87..00000000000 Binary files a/docs/media/Essence-of-Calculus-3Blue1Brown-image89.jpg and /dev/null differ diff --git a/docs/media/Forward-Error-Correction-image3.jpg b/docs/media/Forward-Error-Correction-image3.jpg deleted file mode 100755 index de7344b2c42..00000000000 Binary files a/docs/media/Forward-Error-Correction-image3.jpg and /dev/null differ diff --git a/docs/media/Logic-image38.jpg b/docs/media/Logic-image38.jpg deleted file mode 100755 index c8b1fa4ae19..00000000000 Binary files a/docs/media/Logic-image38.jpg and /dev/null differ diff --git a/docs/media/Pie-image1.jpg b/docs/media/Pie-image1.jpg deleted file mode 100755 index 4bad2032adf..00000000000 Binary files a/docs/media/Pie-image1.jpg and /dev/null differ diff --git a/docs/media/Pie-image2.jpg b/docs/media/Pie-image2.jpg deleted file mode 100755 index 4a4da5fd9ea..00000000000 Binary files a/docs/media/Pie-image2.jpg and /dev/null differ diff --git a/docs/media/Product-Rule-for-Derivatives-image9.jpg b/docs/media/Product-Rule-for-Derivatives-image9.jpg deleted file mode 100755 index 8042044823a..00000000000 Binary files a/docs/media/Product-Rule-for-Derivatives-image9.jpg and /dev/null differ diff --git a/docs/media/Quotient-Rule-image4.jpg b/docs/media/Quotient-Rule-image4.jpg deleted file mode 100755 index b24155b104f..00000000000 Binary files a/docs/media/Quotient-Rule-image4.jpg and /dev/null differ diff --git a/docs/media/Tangent-Line-and-the-Derivative-image13.jpg b/docs/media/Tangent-Line-and-the-Derivative-image13.jpg deleted file mode 100755 index 11d4fe1cf2b..00000000000 Binary files a/docs/media/Tangent-Line-and-the-Derivative-image13.jpg and /dev/null differ diff --git a/docs/media/Type-Systems-image2.jpg b/docs/media/Type-Systems-image2.jpg deleted file mode 100755 index a3969348285..00000000000 Binary files a/docs/media/Type-Systems-image2.jpg and /dev/null differ diff --git a/docs/networking/networking-concepts/forward-error-correction.md b/docs/networking/networking-concepts/forward-error-correction.md index fa176f7feed..d5f63c5200f 100755 --- a/docs/networking/networking-concepts/forward-error-correction.md +++ b/docs/networking/networking-concepts/forward-error-correction.md @@ -39,6 +39,7 @@ There are four popularly used error correction codes. In [telecommunication](https://en.wikipedia.org/wiki/Telecommunication), Hamming codesare a family of [linear error-correcting codes](https://en.wikipedia.org/wiki/Linear_code). Hamming codes can detect up to two-bit errors or correct one-bit errors without detection of uncorrected errors. By contrast, the simple [parity code](https://en.wikipedia.org/wiki/Parity_bit) cannot correct errors, and can detect only an odd number of bits in error. Hamming codes are [perfect codes](https://en.wikipedia.org/wiki/Perfect_code), that is, they achieve the highest possible [rate](https://en.wikipedia.org/wiki/Block_code#The_rate_R) for codes with their [block length](https://en.wikipedia.org/wiki/Block_code#The_block_length_n) and [minimum distance](https://en.wikipedia.org/wiki/Block_code#The_distance_d) of three.[Richard W. Hamming](https://en.wikipedia.org/wiki/Richard_Hamming) invented Hamming codes in 1950 as a way of automatically correcting errors introduced by [punched card](https://en.wikipedia.org/wiki/Punched_card) readers. In his original paper, Hamming elaborated his general idea, but specifically focused on the [Hamming(7,4)](https://en.wikipedia.org/wiki/Hamming(7,4)) code which adds three parity bits to four bits of data. - **Binary Convolution Code−** Here, an encoder processes an input sequence of bits of arbitrary length and generates a sequence of output bits. + - **Reed-Solomon Code−** They are block codes that are capable of correcting burst errors in the received data block. - **Low-Density Parity Check Code−** It is a block code specified by a parity-check matrix containing a low density of 1s. They are suitable for large block sizes in very noisy channels. @@ -50,8 +51,6 @@ In [telecommunication](https://en.wikipedia.org/wiki/Telecommunication), Hamming [Hamming codes, h■w to ov■rco■e n■ise.](https://www.youtube.com/watch?v=X8jsijhllIA) -![image](../../media/Forward-Error-Correction-image3.jpg) - ## Binary Goley Code In [mathematics](https://en.wikipedia.org/wiki/Mathematics) and [electronics engineering](https://en.wikipedia.org/wiki/Electronics_engineering), abinary Golay codeis a type of linear [error-correcting code](https://en.wikipedia.org/wiki/Error-correcting_code) used in [digital communications](https://en.wikipedia.org/wiki/Digital_communication). The binary Golay code, along with the [ternary Golay code](https://en.wikipedia.org/wiki/Ternary_Golay_code), has a particularly deep and interesting connection to the theory of [finite sporadic groups](https://en.wikipedia.org/wiki/Finite_sporadic_group) in mathematics.These codes are named in honor of [Marcel J. E. Golay](https://en.wikipedia.org/wiki/Marcel_J._E._Golay) whose 1949 paperintroducing them has been called, by [E. R. Berlekamp](https://en.wikipedia.org/wiki/E._R._Berlekamp), the "best single published page" in coding theory. diff --git a/docs/networking/networking-concepts/intro.md b/docs/networking/networking-concepts/intro.md index 200b936461d..668ef5b9f3a 100755 --- a/docs/networking/networking-concepts/intro.md +++ b/docs/networking/networking-concepts/intro.md @@ -70,6 +70,7 @@ There are four pieces to the DMVPN puzzle: - NHRP (Next Hop Resolution Protocol) - Routing (RIP, EIGRP, OSPF, BGP, etc.) - IPsec (not required but recommended) + ## Bridge diff --git a/docs/networking/networking-concepts/sockets.md b/docs/networking/networking-concepts/sockets.md index 1100c9a4267..6314b696e07 100755 --- a/docs/networking/networking-concepts/sockets.md +++ b/docs/networking/networking-concepts/sockets.md @@ -34,4 +34,5 @@ sock_object.sendto(b"hello", ("127.0.0.1", 8000)) ## TCP socket tcp_socket = socket(AF_INET, SOCK_STREAM) + diff --git a/docs/networking/others/other.md b/docs/networking/others/other.md index 04722d18846..ba1dc466924 100755 --- a/docs/networking/others/other.md +++ b/docs/networking/others/other.md @@ -99,6 +99,7 @@ Ribbon is a client side IPC library that is battle-tested in cloud. It provides ## mininet Emulator for rapid prototyping of Software Defined Networks (SDN) + ## RSS diff --git a/docs/networking/protocols/http-status-code.md b/docs/networking/protocols/http-status-code.md index 96626215b2b..b02513d37df 100755 --- a/docs/networking/protocols/http-status-code.md +++ b/docs/networking/protocols/http-status-code.md @@ -79,6 +79,7 @@ HTTP 499 in Nginx means that the**client closed the connection**before the serve - [510Not Extended](https://httpstatuses.com/510) - [511Network Authentication Required](https://httpstatuses.com/511) - [599Network Connect Timeout Error](https://httpstatuses.com/599) + diff --git a/docs/networking/protocols/intro.md b/docs/networking/protocols/intro.md index 28c7b4fee1b..b61ad741e45 100755 --- a/docs/networking/protocols/intro.md +++ b/docs/networking/protocols/intro.md @@ -49,6 +49,7 @@ - MAC (Ethernet / DSL / ISDN / FDDI) - Carrier-sense multiple access with collision detection(CSMA/CD) - Carrier-sense multiple access with collision avoidance(CSMA/CA) + ## Networking Protocols diff --git a/docs/networking/protocols/others.md b/docs/networking/protocols/others.md index dd310efb31b..fa176847392 100755 --- a/docs/networking/protocols/others.md +++ b/docs/networking/protocols/others.md @@ -85,7 +85,7 @@ Modbus has become a [*de facto*](https://en.wikipedia.org/wiki/De_facto)[standar Modbus enables communication among many devices connected to the same network, for example, a system that measures temperature and humidity and communicates the results to a [computer](https://en.wikipedia.org/wiki/Computer). Modbus is often used to connect a supervisory computer with a [remote terminal unit](https://en.wikipedia.org/wiki/Remote_terminal_unit)(RTU) in supervisory control and data acquisition ([SCADA](https://en.wikipedia.org/wiki/SCADA)) systems. Many of the data types are named from its use in driving relays: a single-bit physical output is called a*coil*, and a single-bit physical input is called a*discrete input*or a*contact*. -## See also +### See also BACnet Protocol (Building Automation and Control networks) @@ -95,7 +95,7 @@ BACnet Protocol (Building Automation and Control networks) ## Zenoh -## Zero Overhead Pub/sub, Store/Query and Compute +Zero Overhead Pub/sub, Store/Query and Compute zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks. @@ -113,7 +113,7 @@ OPC Unified Architecture(OPC UA) is a [machine to machine](https://en.wikipedia. - Offers [security](https://en.wikipedia.org/wiki/Information_security) functionality for authentication, authorization, integrity and confidentiality - Integral [information model](https://en.wikipedia.org/wiki/Information_model), which is the foundation of the infrastructure necessary for information integration where vendors and organizations can model their complex data into an OPC UA namespace to take advantage of the rich service-oriented architecture of OPC UA. There are over 35 collaborations with the OPC Foundation currently. Key industries include [pharmaceutical](https://en.wikipedia.org/wiki/Pharmaceutical_industry), [oil and gas](https://en.wikipedia.org/wiki/Oil_and_gas_industry), [building automation](https://en.wikipedia.org/wiki/Building_automation), [industrial robotics](https://en.wikipedia.org/wiki/Industrial_robotics), security, manufacturing and [process control](https://en.wikipedia.org/wiki/Process_control). -## Specification +### Specification The OPC UA specification is a multi-part specification and consists of the following parts: diff --git a/docs/python/advanced/python-tricks.md b/docs/python/advanced/python-tricks.md index ee39ebedfad..6e2d38b4391 100755 --- a/docs/python/advanced/python-tricks.md +++ b/docs/python/advanced/python-tricks.md @@ -104,6 +104,7 @@ t.substitute(name=name) - Just like any other tool in the software development toolbox, decorators are not a cure-all and they should not be overused. It's important to balance the need to "get stuff done" with the goal of "not getting tangled up in a horrible, unmaintainable code base." [Python: How Decorators Function](https://www.youtube.com/watch?v=vtoXyxcfmUo&t=2s&ab_channel=CodingTech) + 5. **Function argument unpacking**