Software Engineering How Email Systems Are Designed? Through this article, you will get a good insight into "How Email Systems like GMail and Outlook are Designed?". The key is to understand that email is a default way of communication on the web and is not same as a instant messaging platform.
Data Structures LogLog (Probabilistic Data Structure for Cardinality) LogLog is a Probabilistic Data Structure that uses the idea of hashing to compute Cardinality of a given set.
Data Structures MinHash (Probabilistic Data Structure for Similarity) MinHash was originally an algorithm to quickly estimate the jaccard similarity between two sets but can be designed as a probabilistic data structure that quickly estimates how similar two sets are.
Data Structures Probabilistic Data Structures This is a general overview of probabilistic data structures (with examples of data structures over 5 different categories).
Data Structures Count Min Sketch A count min sketch data structure is a probabilistic data structure (a data structure that provides an approximate solution) that keeps track of frequency.
Data Structures Radix Tree [Compact version of Trie] radix tree is a compact version of a trie. It takes advantage of this and will store multiple characters / string of text in an edge instead to reduce the number of extra edges and nodes needed.
Data Structures Two Stack Model / Split Buffer for Text Editors In two stack model, one stack will represent all the contents left of the cursor while the other stack will represent all the contents right of the cursor. Similar is the idea behind Split buffer.
Data Structures Data Structures used in Text Editors A text editor uses a wide range of data structures to implement different features like search, replacing text and much more. These include char buffer, gap buffer, two stack model, doubly linked list and much more.
Machine Learning (ML) Multinomial/ Multimodal Naive Bayes Multimodal naive bayes is a specialized version of naive bayes designed to handle text documents using word counts as it's underlying method of calculating probability.
Machine Learning (ML) Byte Pair Encoding for Natural Language Processing (NLP) Byte Pair Encoding is originally a compression algorithm that was adapted for NLP usage. Byte Pair Encoding comes in handy for handling the vocabulary issue through a bottom-up process.
Software Engineering Command Pattern in Java Command pattern is a behavioral-based design pattern that encapsulates a request/action in an object without knowing the internal operations. We have explored it in depth in Java.