| Ko

VS Code Best Keyboard Shortcuts

Visual Studio Code (VS Code) is a free open-source code editor released by Microsoft in 2015. Built on the Electron framework, it provides the same experience across Windows, macOS, and Linux. With its lightweight execution speed and rich extension ecosystem, it has become the most widely used editor among developers worldwide. To maximize VS Code productivity, mastering shortcuts is essential. Minimizing mouse usage and working keyboard-centrically significantly improves coding speed. This guide organizes VS Code’s core shortcuts by category and explains practical usage. ...

June 21, 2024 · 5 min · 936 words · In-Jun

Floyd-Warshall Algorithm

The Floyd-Warshall algorithm is a dynamic programming algorithm for finding the shortest paths between every pair of vertices in a graph. Robert Floyd and Stephen Warshall published it independently in 1962. Unlike Dijkstra’s and Bellman-Ford algorithms, it computes all-pairs shortest paths in a single run. With O(V³) time complexity, it can handle negative edge weights and detect negative cycles, making it useful for tasks such as network diameter calculation, transitive closure, and database query optimization. ...

June 17, 2024 · 12 min · 2508 words · In-Jun

Bellman-Ford Algorithm

The Bellman-Ford algorithm finds the shortest paths from a single source vertex to all other vertices in a weighted graph. Independently discovered by Richard Bellman and Lester Ford Jr. in the 1950s, it stands out from Dijkstra’s algorithm because it can handle negative edge weights and detect negative cycles in the graph. It uses a dynamic programming approach with O(VE) time complexity and serves as a core component in real-world applications such as network routing protocols, arbitrage detection in financial markets, and minimum cost flow problems. ...

June 17, 2024 · 12 min · 2473 words · In-Jun

Dijkstra's Shortest Path Algorithm

Dijkstra’s algorithm is a fundamental method for finding the shortest paths from a starting vertex to all other vertices in a weighted graph. Invented by Dutch computer scientist Edsger Wybe Dijkstra in 1956, it remains a core tool in fields such as network routing, GPS navigation, and game AI. The algorithm uses a greedy approach to make the best choice at each step, and with a priority queue it runs in O(E log V), making it practical for large-scale graphs. ...

June 17, 2024 · 11 min · 2148 words · In-Jun

Understanding CI/CD Continuous Integration, Delivery, and Deployment

CI/CD stands for Continuous Integration and Continuous Delivery or Continuous Deployment. It refers to a set of practices that automate how code changes are built, tested, and deployed during software development. In modern software teams, CI/CD is a core part of DevOps because it helps developers integrate and release code more frequently and with less risk. As a result, teams can shorten release cycles and catch bugs earlier. History and Origins of CI/CD CI/CD emerged during the wave of software development methodology innovation in the 1990s. It began as one of the core practices of Extreme Programming (XP) and has continued to evolve ever since. ...

June 10, 2024 · 12 min · 2548 words · In-Jun

Network Sockets

A socket is a software interface that abstracts network communication endpoints, first appearing in the 4.2BSD Unix operating system developed at UC Berkeley in 1983 and remaining a fundamental technology underlying internet communication to this day. It identifies unique communication points on a network through the combination of IP address and port number, providing a standardized API that enables data exchange between processes. History and Evolution of Sockets The Birth of Berkeley Sockets ...

June 8, 2024 · 7 min · 1449 words · In-Jun

JPA First-Level and Second-Level Cache

History and Concepts of Hibernate Cache Architecture Hibernate has included caching as a core performance feature since Gavin King first developed it in 2001. Since then, its cache architecture has evolved into a two-level hierarchy consisting of first-level and second-level cache, reducing database access and improving application performance. The first-level cache is a mandatory feature that has existed since Hibernate’s early versions alongside Session (now EntityManager). The persistence context itself serves as the first-level cache, guaranteeing entity identity within a transaction and providing the foundation for Dirty Checking. ...

June 8, 2024 · 9 min · 1767 words · In-Jun

Understanding JPA Persistence Context

Concept and History of Persistence Context The persistence context is the scope in which JPA manages entity instances. It is a core JPA concept that manages entity lifecycles between the application and the database while also providing several optimization features. This idea first appeared as Hibernate’s Session, introduced by Gavin King in 2001. Hibernate’s Session abstracted database access, tracked entity state, and maintained a consistent view of data within a transaction. When JPA 1.0 was introduced in 2006, the concept was standardized as the persistence context and EntityManager. ...

June 8, 2024 · 6 min · 1259 words · In-Jun

JPA Dirty Checking

Concept and History of Dirty Checking Dirty Checking is one of Hibernate’s core features. It automatically detects changes to entities managed by the persistence context and reflects those changes in the database. Gavin King introduced this mechanism when he first developed Hibernate in 2001 as part of the framework’s Transparent Persistence model. The goal was simple: let developers update the database by changing an object’s state, without writing explicit UPDATE statements. ...

June 8, 2024 · 7 min · 1436 words · In-Jun

Understanding the JPA N+1 Query Problem

What is the N+1 Problem? The N+1 problem is a common performance issue in Object-Relational Mapping (ORM) where N additional queries are executed when retrieving associated entities. As a result, the total number of queries becomes N+1. As the number of queries increases, database round trips increase, network latency grows, and the risk of database connection pool exhaustion rises, which can significantly degrade performance. History and Background of the N+1 Problem The N+1 problem emerged alongside ORM frameworks and is particularly common when using Lazy Loading strategies in Hibernate and JPA. ORM frameworks adopt lazy loading as the default strategy to handle data in an object-oriented manner by deferring the loading of associated entities until needed. This approach has advantages such as preventing unnecessary data loading and improving initial loading speed. However, when developers access associated entities inside loops without recognizing the relationships, individual queries are executed for each entity, causing the N+1 problem. It has been a persistent performance issue from the early versions of Hibernate to the present. ...

June 8, 2024 · 7 min · 1364 words · In-Jun
[email protected]