Compilation of notes containing key takeaways and study summaries to document learning paths on topics that I find interesting.
-
Featured
- Encrypted Messaging : Messaging with end-to-end encryption to ensure privacy and security.
- Video Conferencing : Real-time communication between multiple participants via video and audio.
- JPEG Encoder : Algorithm for encoding digital images in the JPEG format.
- Signal Protocol : End to end encryption protocol and messaging application.
- Bit Torrent : Peer-to-peer file-sharing protocol for distributing large amounts of data.
- XMPP : Extensible Messaging and Presence Protocol: Open technology for real-time communication.
- Linking : Process of connecting or combining separate components into a unified whole.
- EVM : Runtime environment for executing smart contracts on Ethereum.
- Certificate : Digital certificate used to verify the identity of a person, device, or organization.
- WebRTC : API for real-time communication between web browsers.
- Network Layer : OSI model layer responsible for network routing and addressing.
- Game Server : Server responsible for hosting and managing multiplayer online games.
- Encoding : Process of converting data into a format suitable for transmission or storage.
- Garbage Collection : Automatic memory management technique for reclaiming unused memory.
- Raft : Consensus algorithm for managing replicated logs in distributed systems.
- TCP IP Illustrated - vol 1 : Book providing in-depth TCP/IP protocol suite coverage.
-
Concepts
- Video Streaming : Transmission of video content over a network for playback in real-time.
- Remote Attestation : Process of verifying the integrity and authenticity of remote systems.
- Error Correction : Techniques for detecting and correcting errors in transmitted data.
- Networking : Communication between computing devices over a network.
- Serialization : Process of converting data structures or objects into a format suitable for transmission.
- File Format : Structure and organization of data within a file.
- Async : Programming paradigm emphasizing asynchronous execution.
- Encoding : Process of converting data into a format suitable for transmission or storage.
- BPF : Berkeley Packet Filter, an in-kernel virtual machine for filtering and processing network packets.
- Reactive : Programming paradigm emphasizing the propagation of changes and asynchronous data streams.
- Functional Programming : Programming paradigm centered around the evaluation of mathematical functions.
- Docker : Platform for developing, shipping, and running applications using containerization.
- Garbage Collection : Automatic memory management technique for reclaiming unused memory.
- Static Dynamic Library : Libraries linked at compile time and runtime.
-
Systems
- LLVM : Low-Level Virtual Machine: Compiler infrastructure supporting various programming languages.
- Profiling : Process of analyzing software performance characteristics.
- JVM : Java Virtual Machine: Runtime environment for executing Java bytecode.
- Audio : Sound-related topics, including recording, playback, and processing.
- Shell code : Code written to be executed by a command-line shell.
- Build System : Tool or process for automating software building.
- Codec : Algorithm for encoding and decoding data streams or signals.
- TLB : Cache used to improve virtual address translation speeds.
- Probabilistic algorithm : Algorithm that employs randomness or probability.
- Audio Programming : Development of software for audio processing or synthesis.
- Kernel: Core component of an operating system responsible for managing hardware and resources.
- misc
- VM : Software emulation of a physical computer system.
- Compression : Process of reducing the size of data for storage or transmission.
- Jpeg Encoder : Algorithm for encoding digital images in the JPEG format.
-
Architecture
- Video Streaming : Transmission of video content over a network for playback in real-time.
- Game Server : Server responsible for hosting and managing multiplayer online games.
- Video Conferencing : Real-time communication between multiple participants via video and audio.
- Browser : Software application used for accessing information.
- p2p : Network architecture where each node can act as both a client and a server.
- Web Assembly : Binary instruction format for a stack-based virtual machine used to run code in web browsers.
- Messaging Server : Server responsible for handling and delivering messages between users or systems.
-
Database
- Cockroachdb : Distributed SQL database.
- Time Series DB : Database optimized for handling time series data.
- MySQL : Relational database management system.
- Graph Database : Database designed to treat the relationships between data as equally important to the data itself.
- Decentralized Storage : Storage system where data is distributed across multiple nodes without a central authority.
- Elastic Search : Distributed, RESTful search and analytics engine.
- SQlite : Self-contained, serverless, zero-configuration SQL database engine.
- Mnesia : Distributed, soft real-time database management system.
- Embedded Database : Database system designed to be embedded into an application.
- MongoDB : NoSQL database program, using JSON-like documents with optional schemas.
-
Crypto
- Lightening Network : A layer-two scaling solution for Bitcoin, enabling faster and cheaper transactions.
- Nearcore : A blockchain protocol focusing on scalability and developer friendliness.
- Ethereum : A decentralized platform enabling smart contracts and decentralized applications (dApps).
- Token economics : Study of how tokens function within blockchain ecosystems and their economic impact.
- EVM : Runtime environment for executing smart contracts on Ethereum.
- Substrate : A blockchain development framework by Parity Technologies, allowing the creation of custom blockchains.
- Waku : P2P messaging protocol designed for privacy and censorship resistance.
- Solana : High-performance blockchain designed for decentralized applications and crypto-currencies.
- Avalanche : Scalable, decentralized blockchain platform for building custom dApps and enterprise applications.
- Zero Knowledge : Cryptographic method enabling one party to prove knowledge of something to another without revealing the information itself.
-
DevOps
- Kafka : A distributed streaming platform for building real-time data pipelines and streaming applications.
- Parser : Utility script
- Nginx : High-performance web server and reverse proxy.
- ProxySQL : High-performance SQL proxy for MySQL.
- SSH : Network protocol providing secure communication over an unsecured network.
- VScode : VScode autocomplete script
-
Courses
- Distributed System : Network of independent computers that work together to achieve a common goal.
- Advanced Programming in the Unix Environment : Book covering advanced UNIX programming concepts and APIs.
-
Papers
- Solving Big Data Challenges for Enterprise Application Performance Management : Focus on strategies and techniques for managing application performance in the context of big data.
-
Distributed
- File System : Method for storing and organizing data on a storage device.
- Messaging : Communication between distributed components or systems.
- Raft : Consensus algorithm for managing replicated logs in distributed systems.
- Testground : Framework for testing and benchmarking distributed systems.
- Distributed Systems : Network of independent computers that work together to achieve a common goal.
- Libp2p : Modular network stack for peer-to-peer applications and protocols.
- Clock : Mechanism for measuring time or synchronization in distributed systems.
-
Security
- GPG : Encryption software implementing the OpenPGP standard.
- eSecurity CourseWork : Coursework related to security topics.
- TLS : Cryptographic protocol securing communications over a computer network.
- Encrypted Messaging : Messaging with end-to-end encryption to ensure privacy and security.
- Vault : Tool for managing secrets and protecting sensitive data.
- Encryption : Diffie Hellman, RSA, AES
- Signal Protocol : End to end encryption protocol and messaging application.
- Certificate : Digital certificate used to verify the identity of a person, device, or organization.
- Kernel Exploitation : Techniques for exploiting vulnerabilities in operating system kernels.
-
Networking
- Network Devices : Hub, router, switch, ARP.
- Network Layer : OSI model layer responsible for network routing and addressing.
- Socket : Communication endpoint for sending and receiving data between nodes on a network.
- Layers : Components of a network protocol stack.
- IP + NAT : Protocol for routing and translating network addresses.
- TCP Congestion : Management algorithms for controlling congestion in TCP/IP networks.
- Transport Layer : OSI model layer responsible for end-to-end communication.
- WebRTC : API for real-time communication between web browsers.
-
Languages
- Swift : Programming language primarily used for iOS, macOS, watchOS, and tvOS development.
- Go : Programming language developed by Google, known for its simplicity and efficiency.
- Python : High-level programming language emphasizing readability and simplicity.
- Java : Object-oriented programming language commonly used for building enterprise-scale applications.
- JS : JavaScript programming language.
- C++
- Cast : Conversion of data types from one to another.
- Optimizations : Techniques for improving the performance or efficiency of code.
- Threadpool : Pool of threads used to execute tasks concurrently.
- Rust
- ABI : Interface between two binary program modules.
- Smart Pointer : Data type that simulates a pointer while providing additional functionality, such as automatic memory management.
- Rust : Systems programming language emphasizing safety and concurrency.
- Memory Profiler : Tool for analyzing memory usage and identifying memory-related issues.
- Async: Programming paradigm emphasizing asynchronous execution.
- Procedural Macros : Macros in Rust that operate on the abstract syntax tree of Rust code.
- Benchmark : Evaluation or comparison of performance metrics.
- C++ : General-purpose programming language known for its performance and versatility.
- SIMD : Parallel computing technique for performing the same operation on multiple data points simultaneously.
- Lambda : Anonymous function used for functional programming.
- Pinning: Process of associating a resource with a particular location or instance.
- Erlang
- Concept
- Linking : Process of connecting or combining separate components into a unified whole.
- Lambda Calculus : Formal system in mathematical logic for expressing computation.
- Concepts : Functional, concurrent programming language built on the Erlang VM.
-
Books
- Distributed Systems Concept and Design : Book focusing on principles and practices of distributed systems.
- Accelerated C++ : Book providing in-depth coverage of C++ programming techniques and best practices.
- Linkers and Loaders : Book covering the principles and practices of linking and loading in software development.
- Mastering Redis : Book focusing on advanced usage and optimization of the Redis database.
- Effective Modern C++ : Book detailing modern C++ programming techniques and idioms.
- Erlang in anger : Book discussing real-world Erlang programming scenarios and solutions.
- Mastering Ethereum : Book covering advanced topics in Ethereum blockchain development.
- System Design Interview : Preparation guide for technical interviews focusing on system design questions.
- Design Pattern: Elements of reusable object oriented software : Book cataloging software design patterns and best practices.
- ZeroMQ : Lightweight messaging library for building distributed applications.
- C plusplus concurrency in action : Book covering concurrent programming techniques in C++.
- Container Security : Practices and techniques for securing containerized applications and environments.
- TCP IP Illustrated - vol 1 : Book providing in-depth TCP/IP protocol suite coverage.
- Building secure and reliable systems : Book focusing on principles and practices of building secure and reliable software systems.
- Programming in Erlang : Book introducing Erlang programming language concepts and techniques.
- Concurrennt programming in erlang : Book focusing on concurrent programming patterns and best practices in Erlang.
- Enterprise integration pattern : Book detailing patterns for integrating enterprise systems.
-
Mobile
- iOS
- SwiftUI : Framework for building user interfaces in Swift programming language.
- Build Process : Series of steps for compiling, testing, and deploying software.
- Grand Central Dispatch : Technology for managing concurrent tasks in macOS and iOS.
- xcodeproj : File format used by Xcode IDE for macOS and iOS development projects.
- iOS : Operating system for Apple's mobile devices, such as iPhone and iPad.
- Android
- NDK : Native Development Kit: Set of tools for developing Android applications using native code.
- Gradle : Build automation tool used primarily for Android development.
- Android : Operating system for mobile devices developed by Google.
- ADB : Android Debug Bridge: Command-line tool for interacting with Android devices.
- iOS
-
Open Source Study
- Kafka : Distributed streaming platform for building real-time data pipelines and streaming applications.
- RabbitMQ : Message broker software implementing the Advanced Message Queuing Protocol (AMQP).
- Owncast : Self-hosted live streaming server software.
- Nano : Golang based game server.
- Tokio : Asynchronous runtime for Rust programming language.
- Leveldb : Key-value storage library developed by Google.
- Unicycle : High-performance TCP/IP stack for FreeBSD.
- Ejabberd : XMPP (Extensible Messaging and Presence Protocol) server implementation.
- Cassandra : Distributed NoSQL database management system designed for handling large volumes of data across multiple commodity servers
- Syncthing : Decentralized file synchronization tool.
- React : JavaScript library for building user interfaces.
- VM2 : Virtual machine implementation in JavaScript.
- Misc : Bevy, Amethyst, TiKV etc
- Oboe : C++ library for low-latency audio playback.
- Mini key value : Small-scale key-value store.
- Nats : Lightweight and high-performance messaging system.
- Zookeeper Client : Client library for Apache ZooKeeper, a distributed coordination service.
- Nodejs : JavaScript runtime for server-side development.
- Napajs : JavaScript runtime for building high-performance applications.
- Conflux : Layer 1 blockchain
-
Protocols
- HTTP : Hypertext Transfer Protocol: Application protocol for information systems.
- Live Streaming : Real-time transmission of multimedia content over a network.
- Bit Torrent : Peer-to-peer file-sharing protocol for distributing large amounts of data.
- XMPP : Extensible Messaging and Presence Protocol: Open technology for real-time communication.
- AMQP : Open standard application layer protocol for message-oriented middleware.
This repository mostly contains a confused bunch of notes Iโve taken occasionally, serving as a reference for my future self. This never really had the ambition to be broadly useful or to attract readers.
That being said, if you find yourself reading something, be kind and donโt be surprised by the poor quality of some of the posts. If you want to help to improve the content, you are welcome. Please open a PR on github.
Except where otherwise noted, content on this site is licensed under CC0, โno rights reservedโ.