hkucuk

Concurrency in Go: Channels, Goroutines, and Synchronization Mechanisms

November 23, 2024 • ☕️☕️ 11 min read • 🏷 computer, software, algorithm

Go (Golang) is a modern programming language designed by Google in 2007 and published as open source in 2009, focusing on developing high-performance and scalable software. Thanks to its simple and understandable syntax, it can be easily learned by both experienced and novice developers. At the same time, since it is a lightweight and fast-compiling language, C-like performance can be achieved.

CRDTs (Conflict-free Replicated Data Types): Data Consistency in Distributed Systems

October 15, 2024 • ☕️☕️ 8 min read • 🏷 computer, software, algorithm

Distributed systems have become increasingly popular today. Microservices architectures, replications between data centers, geographically distributed databases, applications with multiple access points, and similar scenarios make ensuring data consistency quite complex. Conflicts can arise when data is simultaneously located, updated, or read from multiple locations. This is where the concept of CRDT (Conflict-free Replicated Data Types) comes into play.

UNIX: The Basis of Modern Operating Systems

August 19, 2024 • ☕️ 3 min read • 🏷 computer, software, os

In the world of computers, while some technologies are forgotten over time, others take root and form the basis for many other innovations. The UNIX operating system falls into this category. Developed by Dennis M. Ritchie and Ken Thompson in the early 1970s, UNIX is a revolutionary software that forms the basis of many modern operating systems today.

OSI Model: An In-Depth Review

June 8, 2024 • ☕️☕️ 8 min read • 🏷 computer, software, network

In the field of networking and information technologies, a common framework is needed so that different systems can work in harmony with each other. In this context, the OSI (Open Systems Interconnection) Model is a basic conceptual model used to understand how various networks and communication protocols work and how they interact with each other.

What is MoSCoW Prioritization?

June 5, 2024 • ☕️ 4 min read • 🏷 computer, software

MoSCoW is a methodology used to determine priorities in software projects and other project management processes. This method helps clarify which elements take priority by classifying the project's requirements and features.

Event Sourcing

June 2, 2024 • ☕️ 7 min read • 🏷 computer, software, software-architecture

Event sourcing is a modern and effective pattern used in data management and system design. It differs significantly from traditional data management approaches. In traditional methods, data is usually stored in its final state; That is, the current state of an object is kept directly in the database and this latest state is updated when any changes are made.

Banker's Algorithm: Anti-Deadlock Algorithm

March 27, 2024 • ☕️ 4 min read • 🏷 computer, software, algorithm, os

The Banker's Algorithm is an algorithm used in operating systems that helps reduce the possibility of deadlocks. Deadlock is a situation that occurs as a result of processes or resources that need each other waiting for each other and prevents progress in the system. The Banker's Algorithm is designed to prevent such deadlocks and is especially used in systems that require resource management.

Borůvka's Algorithm: An Efficient Method for Finding Minimum Spanning Trees

March 20, 2024 • ☕️ 5 min read • 🏷 computer, software, algorithm, graph

Borůvka's algorithm is an efficient graph algorithm used to find minimum spanning trees. This algorithm, which has an important place in graph theory, creates minimum spanning trees by selecting the least weighted edges in a graph and combining these edges. Its basic principle is to divide each node in the graph into trees and then connect these trees by merging them.

Ford-Fulkerson Algorithm: Finding Maximum Flow

March 10, 2024 • ☕️ 5 min read • 🏷 computer, software, algorithm, graph, network

Ford-Fulkerson algorithm is a graph algorithm that has an important place in network theory and aims to determine the maximum flow in a network. It is used to find the largest flow reaching a destination from a source in flow networks. To find this maximum flow, the algorithm discovers ascending paths and increases the flow along these paths.

Ellipsoidal Distance Algorithm: Precise Geographic Distance Calculation

February 9, 2024 • ☕️ 4 min read • 🏷 computer, software, algorithm

Geographic distance calculations are important to accurately calculate the distance between points, taking into account the complexity and curvature of the earth's surface. For such precise calculations, Lambert's ellipsoidal distance algorithm is often preferred. Lambert's algorithm calculates the distance between two points, taking into account the ellipsoidal shape of the earth's surface.

12345678910111213141516171819