Articles

Newton Polynomial 🇺🇸

Newton’s Polynomial, often referred to as Newton’s Interpolation Formula, is another classical approach to polynomial interpolation. Given a set of data points $(x_0,y_0),(x_1,y_1),\dots,(x_n,y_n)$ with distinct $x_i$ values, Newton’s method constructs an interpolating polynomial in a form that make...

Filters and Algorithms 🇺🇸

VTK’s filters and algorithms allow you to convert your data from “a static dataset” to a dynamic pipeline: you generate something, clean it up, extract meaning, and reshape it into a form that’s easier to analyze or visualize. Think of it like a workshop line: raw material comes in, tools operate on...

Data Types and Structures 🇺🇸

VTK is built to carry real-world 2D/3D data all the way from “numbers in memory” to “something you can see and reason about.” That means it needs data types that store values, but also store where those values live in space and how they connect. If you pick the right structure early, everything down...

Typ Wyliczeniowy 🇵🇱

Typ wyliczeniowy (enum) pozwala opisać zamknięty zbiór możliwych wartości pod czytelnymi nazwami. Zamiast “magicznych liczb” (np. 0,1,2) używasz sensownych identyfikatorów (Poniedzialek, Wtorek), co poprawia czytelność i zmniejsza liczbę błędów...

Liczby Losowe 🇵🇱

W języku C++ liczby losowe generuje się za pomocą standardowej biblioteki . Proces losowania zaczyna się od utworzenia generatora liczb pseudolosowych, np. std::mt19937, który bazuje na algorytmie Mersenne Twister. Aby uzyskać bardziej losowe wyniki, generator inicjalizuje się za pomocą unik...

L Wartosci R Wartosci 🇵🇱

W C++ bardzo dużo rzeczy kręci się wokół pytania: czy dane wyrażenie wskazuje na „konkretny obiekt w pamięci”, czy jest tylko tymczasowym wynikiem obliczeń. Z tego biorą się L-wartości (lvalues) i R-wartości (rvalues). Zrozumienie tego tematu odblokowuje m.in....

Database Caching 🇺🇸

Database caching stores frequently used query results or objects in a cache, bringing them closer to the application for faster data retrieval. This reduces load on the primary database and shortens response times, ultimately improving user experience...

Backward Difference 🇺🇸

The backward difference method is a finite difference technique employed to approximate the derivatives of functions. Unlike the forward difference method, which uses information from points ahead of the target point, the backward difference method relies on function values from points preceding the...

Forward Difference 🇺🇸

The forward difference method is a fundamental finite difference technique utilized for approximating the derivatives of functions. Unlike the central and backward difference methods, which use information from both sides or preceding points, respectively, the forward difference method relies solely...

Central Difference 🇺🇸

The central‐difference method is a finite‐difference scheme for estimating derivatives that combines forward and backward differences via Taylor‐series expansions. By evaluating the function at points symmetrically placed around the target, it cancels out many of the lower‐order error terms, yieldin...

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...

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...

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...

Macos Signing 🇺🇸

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

Windows Code Signing 🇺🇸

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

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 ...

Security Vulnerabilities 🇺🇸

Backend systems form the backbone of web applications, and their security vulnerabilities can pose significant threats to data integrity and user privacy. This guide outlines common backend vulnerabilities with concrete examples and provides best practices to mitigate these risks...

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...

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...

Auth 🇺🇸

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

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

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...

Batch Processing 🇺🇸

Batch processing is a method for handling large volumes of data by grouping them into a single batch, typically without immediate user interaction. It is often useful in scenarios where tasks can be processed independently and do not require real-time results, such as nightly analytics jobs, buildin...

Stream Processing 🇺🇸

Stream processing involves ingesting, analyzing, and taking action on data as it is produced. This near-real-time or real-time methodology is helpful for applications that need to respond quickly to continuously updating information, such as IoT sensor readings, financial transactions, or social med...

Grpc 🇺🇸

gRPC is a high-performance open-source framework that was developed at Google for remote procedure calls. It uses the Protocol Buffers (protobuf) serialization format by default and runs over HTTP/2 to support features like full-duplex streaming and efficient compression. Many microservices architec...

State Management 🇺🇸

Stateful and stateless designs are common terms in software architecture. They describe how an application handles data over multiple interactions. This set of notes explains the differences between applications that remember information between requests and those that treat every request as a fresh...