Articles

Rest ๐Ÿ‡บ๐Ÿ‡ธ

Representational State Transfer, often referred to as REST, is an architectural style used to design web services. It uses a stateless communication model between clients and servers, relies on standard HTTP methods, and focuses on simple but powerful conventions. These notes explore the core princi...

Messaging System Integration ๐Ÿ‡บ๐Ÿ‡ธ

In modern distributed architectures, messaging systems form an essential backbone for decoupling services, handling asynchronous communication, and enabling more resilient data flows. They allow separate applications or microservices to interact by sending and receiving messages through well-defined...

Static Dynamic Content ๐Ÿ‡บ๐Ÿ‡ธ

Web servers deliver two main types of content: static and dynamic. Static content usually consists of files (HTML, CSS, images, JavaScript) that rarely change and can be served directly from the file system or a cache. Dynamic content is generated on the fly by server-side logic (such as PHP, Node.j...

Content Delivery Networks ๐Ÿ‡บ๐Ÿ‡ธ

A Content Delivery Network (CDN) is a geographically distributed system of servers that deliver web assets such as images, videos, and other media to users based on their proximity to the servers. This design is helpful for reducing latency and improving the performance of websites or applications t...

Pub Sub vs Queue ๐Ÿ‡บ๐Ÿ‡ธ

Message queues enable asynchronous, decoupled communication in distributed systems by allowing publishers to send messages to a queue that consumers process independently, typically in first-in, first-out order. This approach reduces direct dependencies between services, enhances reliability and sca...

Distributed Database Systems ๐Ÿ‡บ๐Ÿ‡ธ

A distributed database system (DDS) is a collection of logically interrelated databases distributed across multiple physical locations, connected by a network. The data in these systems might be replicated and/or partitioned among different sites, but the system should ideally appear to the user as ...

Reverse Proxies ๐Ÿ‡บ๐Ÿ‡ธ

A reverse proxy is a special server that receives incoming requests from external clients and forwards them to one or more internal web servers. By acting as an intermediary, it hides the details of the internal network, providing a single entry point that can improve load balancing, security, cachi...

Json ๐Ÿ‡บ๐Ÿ‡ธ

JSON, or JavaScript Object Notation, is a lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate. It is a text format that is completely language independent but uses conventions familiar to programmers of the C family of languages, ...

Tomcat ๐Ÿ‡บ๐Ÿ‡ธ

Apache Tomcat, often referred to as Tomcat, is an open-source web server and servlet container that implements the Java Servlet, JavaServer Pages (JSP), and WebSocket specifications. Maintained by the Apache Software Foundation, Tomcat serves as a robust and lightweight platform for hosting Java-bas...

Protocol Buffers ๐Ÿ‡บ๐Ÿ‡ธ

Protocol Buffers (often referred to as protobuf) is a language-neutral, platform-independent method for serializing structured data. Originally created at Google, it excels at enabling efficient data interchange between services, storing information in a compact binary format, and sustaining backwar...

Web Server Overview ๐Ÿ‡บ๐Ÿ‡ธ

Backend engineers are responsible for setting up and maintaining servers that host web applications, APIs, and databases. A solid understanding of server management principles is crucial for delivering robust, high-performing, and secure systems...

Yaml ๐Ÿ‡บ๐Ÿ‡ธ

YAML, or "YAML Ain't Markup Language," is a human-readable data serialization format. It is commonly used for configuration files and data exchange between languages with different data structures. YAML is designed to be readable and concise, with a focus on data readability over markup verbosity...

Load Balancing ๐Ÿ‡บ๐Ÿ‡ธ

Load balancing is central to designing robust distributed systems. It ensures that incoming requests or workloads are equitably distributed across multiple servers or nodes, thereby preventing any single server from becoming a bottleneck. This technique also boosts system resilience, providing highe...

Xml ๐Ÿ‡บ๐Ÿ‡ธ

XML, or Extensible Markup Language, is a markup language used to encode documents in a format that is both human-readable and machine-readable. It is widely used for the representation of arbitrary data structures, such as those used in web services...

Nginx ๐Ÿ‡บ๐Ÿ‡ธ

Nginx is a high-performance web server, reverse proxy, and load balancer that has grown popular for its speed, scalability, and flexibility. It can serve static files extremely quickly, proxy requests to application servers, balance traffic across multiple backends, terminate SSL/TLS connections, an...

Apache ๐Ÿ‡บ๐Ÿ‡ธ

Apache HTTP Server (commonly referred to as โ€œApacheโ€) is one of the most widely used web servers in the world. It is maintained by the Apache Software Foundation and offers robust, flexible, and highly configurable capabilities for serving static and dynamic content. Over the decades, Apache has bec...

Third Party Cookies Vulnerabilities ๐Ÿ‡บ๐Ÿ‡ธ

Third-party cookies are often inserted into a userโ€™s browser by domains other than the website the user is directly visiting. While first-party cookies (from the visited domain) are essential for maintaining user sessions and preferences, third-party cookies commonly facilitate cross-site tracking a...

Forward Proxies ๐Ÿ‡บ๐Ÿ‡ธ

Proxies function as intermediaries in the communication flow between clients and servers, performing tasks such as request routing, caching, encryption offloading, and IP masking. By inserting themselves between the client and the destination server, proxies can manage connections in ways that provi...

Auth ๐Ÿ‡บ๐Ÿ‡ธ

Authentication is the process of verifying a user's identity, while authorization is the management of access rights to resources...

Tls ๐Ÿ‡บ๐Ÿ‡ธ

Transport Layer Security, commonly abbreviated as TLS, is a cryptographic protocol that protects data transmissions over computer networks. It succeeds the older SSL (Secure Sockets Layer), and though the term โ€œSSLโ€ is still widely used, most modern โ€œSSLโ€ connections are really TLS. The protocol aim...

Security Best Practices and Measures ๐Ÿ‡บ๐Ÿ‡ธ

Security is a multi-layered concern involving networks, systems, applications, and user access. A single misconfiguration or overlooked patch can allow attackers to breach systems, steal data, or disrupt services. This document aims to outline key security best practices and measures organizations s...

Windows Code Signing ๐Ÿ‡บ๐Ÿ‡ธ

This document describes the Windows code signing implementation for Standard of Iron...

Macos Signing ๐Ÿ‡บ๐Ÿ‡ธ

This document explains how to set up macOS code signing and notarization for the Standard of Iron project...

Rendering Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Picture this: you've got thousands of soldiers on screen, each with unique armor, weapons, and animations. Grass is swaying, rivers are flowing, and you need all of this running at 60 frames per second. How do you pull that off without your GPU catching fire...

Mission Framework ๐Ÿ‡บ๐Ÿ‡ธ

The Mission Framework provides a formal authoring layer for creating structured gameplay experiences in Standard of Iron. It separates playable maps from mission logic, allowing designers to create reusable missions and organize them into campaigns...

Ai Architecture ๐Ÿ‡บ๐Ÿ‡ธ

Imagine you're playing against four AI opponents, each controlling hundreds of units. They need to decide when to attack, when to defend, when to retreat, and when to expandโ€”all while the player is actively trying to destroy them. And they need to do this without lagging the game, even on modest har...

Autocorrelation Function ๐Ÿ‡บ๐Ÿ‡ธ

In time series analysis, understanding the relationships between observations at different time lags is crucial for model identification and forecasting. Two essential tools for analyzing these relationships are the Autocorrelation Function (ACF) and the Partial Autocorrelation Function (PACF)...

Autoregressive Models ๐Ÿ‡บ๐Ÿ‡ธ

Autoregressive (AR) models are fundamental tools in time series analysis, used to describe and forecast time-dependent data. An AR model predicts future values based on a linear combination of past observations. The order of an AR model, denoted as $p$, indicates how many lagged past values are used...

Random Walk ๐Ÿ‡บ๐Ÿ‡ธ

The random walk is a fundamental and widely used time series model, often applied in finance to represent stock prices and other economic indicators. The idea behind the random walk is that the value of the process at time $t$ is the sum of its value at time $t-1$ and a random shock (or noise). Esse...

Forecasting ๐Ÿ‡บ๐Ÿ‡ธ

Time series forecasting is a technique used to predict future values based on historical data. It is widely used in various fields, such as finance, economics, and meteorology. In this section, we will discuss the basics of time series forecasting...

Seasonality and Trends ๐Ÿ‡บ๐Ÿ‡ธ

Seasonality and trends are fundamental components in time series data that significantly impact analysis and forecasting. Understanding and correctly modeling these elements are useful for accurate predictions and effective time series modeling...

Stationarity ๐Ÿ‡บ๐Ÿ‡ธ

Stationarity is an important idea in time series analysis. A time series is considered stationary if its statistical propertiesโ€”like the mean, variance, and autocovarianceโ€”stay constant over time. This matters because methods like ARIMA and ARMA are designed to work with stationary data, so itโ€™s a g...

Arima Models ๐Ÿ‡บ๐Ÿ‡ธ

ARMA, ARIMA, and SARIMA are models commonly used to analyze and forecast time series data. ARMA (AutoRegressive Moving Average) combines two ideas: using past values to predict current ones (autoregression) and smoothing out noise using past forecast errors (moving average). ARIMA (AutoRegressive In...

Moving Average Models ๐Ÿ‡บ๐Ÿ‡ธ

Moving Average (MA) models are a fundamental class of univariate time series models used for forecasting and understanding temporal data. Unlike Autoregressive (AR) models, which rely on past values of the series itself, MA models utilize past forecast errors to model the current value of the series...

Autocovariance Function ๐Ÿ‡บ๐Ÿ‡ธ

Autocovariance functions describe how values of a time series relate to their lagged counterparts, measuring the joint variability between a series at time $t$ and its value at a previous time $t-k$ (where $k$ is the lag). In autoregressive models, these relationships are expressed through coefficie...